From c2bf740bd8b7152dcdb90acbc96cd1b455d376c3 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 9 Jun 2024 10:35:20 +0200 Subject: [PATCH] add break with two hours and bigger --- src/break.c | 7 ++++++- tests/main.c | 40 ++++++++++++++++++++++++++++++++++------ 2 files changed, 40 insertions(+), 7 deletions(-) diff --git a/src/break.c b/src/break.c index a8f0945..4135db6 100644 --- a/src/break.c +++ b/src/break.c @@ -1,11 +1,16 @@ #include "break.h" #define TWO_HOURS 7200 +#define TWO_HOURS_FIFTEEN_MINUTES 8100 +#define FIFTEEN_MINUTES 900 int get_break_time(long worktime) { + if (worktime > TWO_HOURS_FIFTEEN_MINUTES) + return FIFTEEN_MINUTES; + if (worktime > TWO_HOURS) - return 1; + return worktime - TWO_HOURS; return 0; } \ No newline at end of file diff --git a/tests/main.c b/tests/main.c index 617a8de..eb8e7b3 100644 --- a/tests/main.c +++ b/tests/main.c @@ -8,8 +8,7 @@ void two_hours_zero_break() { - const long TWO_HOURS = 7200; - long worktime = TWO_HOURS; + long worktime = 7200; int breaktime = get_break_time(worktime); @@ -18,19 +17,48 @@ void two_hours_zero_break() void two_hours_and_one_minutes_one_minute_break() { - const long TWO_HOURS = 7260; - long worktime = TWO_HOURS; + long worktime = 7260; int breaktime = get_break_time(worktime); - assert_int_equal(breaktime, 1); + assert_int_equal(breaktime, 60); +} + +void two_hours_and_two_minutes_two_minute_break() +{ + long worktime = 7320; + + int breaktime = get_break_time(worktime); + + assert_int_equal(breaktime, 120); +} + +void two_hours_and_fifteen_minutes_fifteen_minute_break() +{ + long worktime = 8100; + + int breaktime = get_break_time(worktime); + + assert_int_equal(breaktime, 900); +} + +void two_hours_and_fifteen_one_minutes_fifteen_minute_break() +{ + long worktime = 8160; + + int breaktime = get_break_time(worktime); + + assert_int_equal(breaktime, 900); } int main() { const struct CMUnitTest tests[] = { cmocka_unit_test(two_hours_zero_break), - cmocka_unit_test(two_hours_and_one_minutes_one_minute_break) + cmocka_unit_test(two_hours_and_one_minutes_one_minute_break), + cmocka_unit_test(two_hours_and_two_minutes_two_minute_break), + cmocka_unit_test(two_hours_and_fifteen_minutes_fifteen_minute_break), + cmocka_unit_test(two_hours_and_fifteen_one_minutes_fifteen_minute_break) }; return cmocka_run_group_tests(tests, NULL, NULL); -- 2.39.5