Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
7701de0
add (solution): add addition task
Nov 27, 2025
994853b
add (solution): add char_changer task
Nov 27, 2025
49a14a1
add (solution): add check_flags task
Nov 27, 2025
56194fb
add (solution): add length_lit task
Nov 27, 2025
fe91671
add (solution): add print_bits task
Nov 27, 2025
e190449
add (solution): add quadratic task
Nov 27, 2025
8f189d0
add (solution): add rms task
Nov 27, 2025
f6bbc50
Merge remote-tracking branch 'upstream/main'
Dec 5, 2025
e5611c6
add (solution): add func_array task
Dec 5, 2025
956cb37
add (solution): add last_of_us task
Dec 5, 2025
c7b264b
add (solution): add little_big task
Dec 5, 2025
70e206c
add (solution): add longest task
Dec 5, 2025
5c49bee
add (solution): add pretty_array task
Dec 5, 2025
71b7aea
add (solution): add swap_ptr task
Dec 5, 2025
1c9b3f8
Sync from upstream
Dec 17, 2025
4ce36e3
add (solution): add data_stats task
Dec 17, 2025
eab83c3
add (solution): add easy_compare task
Dec 17, 2025
22bafb4
add (solution): add enum_operators task
Dec 17, 2025
81f12bd
add (solution): add filter task
Dec 17, 2025
c0424e6
add (solution): add find_all task
Dec 17, 2025
b89ef76
add (solution): add minmax task
Dec 17, 2025
cb041fc
add (solution): add os_overload task
Dec 17, 2025
0aec85e
add (solution): add range task
Dec 17, 2025
91f363c
add (solution): add unique task
Dec 17, 2025
9baecb4
Delete 04_week folder
Dec 17, 2025
1c50d1a
add (solution): fix enum_operators task
Dec 17, 2025
6b17498
Update from original repo
Dec 25, 2025
58e4ee2
add (solution): add phasor task
Dec 25, 2025
6c3b3ba
add (solution): add queue task
Dec 25, 2025
e4d78df
add (solution): add ring_buffer task
Dec 25, 2025
93e031f
add (solution): add stack task
Dec 25, 2025
f12395c
add (solution): fix phasor task
Dec 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,11 @@ jobs:

echo "Changed files:"
echo "$changed_files"

tasks=("addition" "rms" "print_bits" "check_flags" "length_lit" "quadratic" "char_changer"
"swap_ptr" "func_array" "longest" "last_of_us" "little_big" "pretty_array")
"swap_ptr" "func_array" "longest" "last_of_us" "little_big" "pretty_array"
"data_stats" "unique" "range" "minmax" "find_all" "os_overload" "easy_compare" "filter" "enum_operators"
"stack" "queue" "ring_buffer" "phasor")

declare -i passed_count=0
declare -i failed_count=0
Expand Down
95 changes: 95 additions & 0 deletions .github/workflows/testing_week_01.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: Testing Tasks Week 01

on:
workflow_dispatch:
inputs:
tasks:
description: 'Select tasks to test'
required: true
type: choice
default: 'all'
options:
- all
- addition
- rms
- print_bits
- check_flags
- length_lit
- quadratic
- char_changer

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install compiler and CMake
run: sudo apt install -y cmake build-essential g++-14 libgtest-dev libgmock-dev

- name: Configure project
run: cmake -B build

- name: Determine tasks to run
id: get-tasks
run: |
if [ "${{ github.event.inputs.tasks }}" = "all" ]; then
# Find all tasks
TASKS=()
for dir in 01_week/tasks/*/; do
task=$(basename "$dir")
TASKS+=("$task")
done
echo "tasks=${TASKS[*]}" >> $GITHUB_OUTPUT
else
# Используем указанную задачу
echo "tasks=${{ github.event.inputs.tasks }}" >> $GITHUB_OUTPUT
fi

- name: Build and run tests for selected tasks
run: |

IFS=' ' read -ra tasks <<< "${{ steps.get-tasks.outputs.tasks }}"

declare -i passed_count=0
declare -i failed_count=0
declare -i task_count=0

echo "=== Starting tests for selected tasks ==="

for task in "${tasks[@]}"; do
task_count+=1
echo "=== Processing $task ==="

if cmake --build build --target test_$task; then
echo "✅ test_$task built successfully"

if ./build/tasks/test_$task; then
echo "✅ test_$task PASSED"
passed_count+=1
else
echo "❌ test_$task FAILED"
failed_count+=1
fi
else
echo "❌ test_$task build FAILED"
failed_count+=1
fi
done

echo "=== Test Results Summary ==="
echo "Total tasks in list: ${#tasks[@]}"
echo "Processed: $task_count"
echo "✅ Passed: $passed_count"
echo "❌ Failed: $failed_count"

if [ $failed_count -gt 0 ]; then
echo "❌ Some tasks failed!"
exit 1
elif [ $task_count -eq 0 ]; then
echo "No tasks were processed (no changes)"
exit 0
else
echo "✅ All processed tasks passed!"
exit 0
fi
94 changes: 94 additions & 0 deletions .github/workflows/testing_week_02.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: Testing Tasks Week 02

on:
workflow_dispatch:
inputs:
tasks:
description: 'Select tasks to test'
required: true
type: choice
default: 'all'
options:
- all
- swap_ptr
- func_array
- longest
- last_of_us
- little_big
- pretty_array

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install compiler and CMake
run: sudo apt install -y cmake build-essential g++-14 libgtest-dev libgmock-dev

- name: Configure project
run: cmake -B build

- name: Determine tasks to run
id: get-tasks
run: |
if [ "${{ github.event.inputs.tasks }}" = "all" ]; then
# Find all tasks
TASKS=()
for dir in 02_week/tasks/*/; do
task=$(basename "$dir")
TASKS+=("$task")
done
echo "tasks=${TASKS[*]}" >> $GITHUB_OUTPUT
else
# Используем указанную задачу
echo "tasks=${{ github.event.inputs.tasks }}" >> $GITHUB_OUTPUT
fi

- name: Build and run tests for selected tasks
run: |

IFS=' ' read -ra tasks <<< "${{ steps.get-tasks.outputs.tasks }}"

declare -i passed_count=0
declare -i failed_count=0
declare -i task_count=0

echo "=== Starting tests for selected tasks ==="

for task in "${tasks[@]}"; do
task_count+=1
echo "=== Processing $task ==="

if cmake --build build --target test_$task; then
echo "✅ test_$task built successfully"

if ./build/tasks/test_$task; then
echo "✅ test_$task PASSED"
passed_count+=1
else
echo "❌ test_$task FAILED"
failed_count+=1
fi
else
echo "❌ test_$task build FAILED"
failed_count+=1
fi
done

echo "=== Test Results Summary ==="
echo "Total tasks in list: ${#tasks[@]}"
echo "Processed: $task_count"
echo "✅ Passed: $passed_count"
echo "❌ Failed: $failed_count"

if [ $failed_count -gt 0 ]; then
echo "❌ Some tasks failed!"
exit 1
elif [ $task_count -eq 0 ]; then
echo "No tasks were processed (no changes)"
exit 0
else
echo "✅ All processed tasks passed!"
exit 0
fi
100 changes: 100 additions & 0 deletions .github/workflows/testing_week_03.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
name: Testing Tasks Week 03

on:
workflow_dispatch:
inputs:
tasks:
description: 'Select tasks to test'
required: true
type: choice
default: 'all'
options:
- all
- data_stats
- unique
- range
- minmax
- find_all
- os_overload
- easy_compare
- filter
- enum_operators

schedule:
- cron: '59 20 19 12 *' # UTC: 20:59 = 23:59 MSK 19 December

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install compiler and CMake
run: sudo apt install -y cmake build-essential g++-14 libgtest-dev libgmock-dev

- name: Configure project
run: cmake -B build

- name: Determine tasks to run
id: get-tasks
run: |
if [ "${{ github.event.inputs.tasks }}" = "all" ]; then
# Find all tasks
TASKS=()
for dir in 03_week/tasks/*/; do
task=$(basename "$dir")
TASKS+=("$task")
done
echo "tasks=${TASKS[*]}" >> $GITHUB_OUTPUT
else
# Используем указанную задачу
echo "tasks=${{ github.event.inputs.tasks }}" >> $GITHUB_OUTPUT
fi

- name: Build and run tests for selected tasks
run: |

IFS=' ' read -ra tasks <<< "${{ steps.get-tasks.outputs.tasks }}"

declare -i passed_count=0
declare -i failed_count=0
declare -i task_count=0

echo "=== Starting tests for selected tasks ==="

for task in "${tasks[@]}"; do
task_count+=1
echo "=== Processing $task ==="

if cmake --build build --target test_$task; then
echo "✅ test_$task built successfully"

if ./build/tasks/test_$task; then
echo "✅ test_$task PASSED"
passed_count+=1
else
echo "❌ test_$task FAILED"
failed_count+=1
fi
else
echo "❌ test_$task build FAILED"
failed_count+=1
fi
done

echo "=== Test Results Summary ==="
echo "Total tasks in list: ${#tasks[@]}"
echo "Processed: $task_count"
echo "✅ Passed: $passed_count"
echo "❌ Failed: $failed_count"

if [ $failed_count -gt 0 ]; then
echo "❌ Some tasks failed!"
exit 1
elif [ $task_count -eq 0 ]; then
echo "No tasks were processed (no changes)"
exit 0
else
echo "✅ All processed tasks passed!"
exit 0
fi
Loading