From 63ee1103594949153760ddeb8c72effdde188726 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 9 Jun 2024 10:45:11 +0200 Subject: [PATCH] add test for thirty minutes break --- src/break.c | 9 +++++++++ tests/main.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/src/break.c b/src/break.c index 4135db6..3e9b7ac 100644 --- a/src/break.c +++ b/src/break.c @@ -2,10 +2,19 @@ #define TWO_HOURS 7200 #define TWO_HOURS_FIFTEEN_MINUTES 8100 +#define FOUR_HOURS_FIFTY_FIVE_MINITUES 17100 +#define FIVE_HOURS 18000 #define FIFTEEN_MINUTES 900 +#define THIRTY_MINUTES 1800 int get_break_time(long worktime) { + if (worktime > FIVE_HOURS) + return THIRTY_MINUTES; + + if (worktime > FOUR_HOURS_FIFTY_FIVE_MINITUES) + return worktime - FOUR_HOURS_FIFTY_FIVE_MINITUES + FIFTEEN_MINUTES; + if (worktime > TWO_HOURS_FIFTEEN_MINUTES) return FIFTEEN_MINUTES; diff --git a/tests/main.c b/tests/main.c index eb8e7b3..efa67cf 100644 --- a/tests/main.c +++ b/tests/main.c @@ -51,6 +51,51 @@ void two_hours_and_fifteen_one_minutes_fifteen_minute_break() assert_int_equal(breaktime, 900); } +void four_hours_and_fourty_five_minutes_fifteen_minute_break() +{ + long worktime = 17100; + + int breaktime = get_break_time(worktime); + + assert_int_equal(breaktime, 900); +} + +void four_hours_and_fourty_six_minutes_sixteen_minute_break() +{ + long worktime = 17160; + + int breaktime = get_break_time(worktime); + + assert_int_equal(breaktime, 960); +} + +void four_hours_and_fourty_seven_minutes_seventeen_minute_break() +{ + long worktime = 17220; + + int breaktime = get_break_time(worktime); + + assert_int_equal(breaktime, 1020); +} + +void five_hours_minutes_thirty_minute_break() +{ + long worktime = 18000; + + int breaktime = get_break_time(worktime); + + assert_int_equal(breaktime, 1800); +} + +void five_and_one_minute_hours_minutes_thirty_minute_break() +{ + long worktime = 18060; + + int breaktime = get_break_time(worktime); + + assert_int_equal(breaktime, 1800); +} + int main() { const struct CMUnitTest tests[] = { @@ -58,7 +103,12 @@ int main() 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) + cmocka_unit_test(two_hours_and_fifteen_one_minutes_fifteen_minute_break), + cmocka_unit_test(four_hours_and_fourty_five_minutes_fifteen_minute_break), + cmocka_unit_test(four_hours_and_fourty_six_minutes_sixteen_minute_break), + cmocka_unit_test(four_hours_and_fourty_seven_minutes_seventeen_minute_break), + cmocka_unit_test(five_hours_minutes_thirty_minute_break), + cmocka_unit_test(five_and_one_minute_hours_minutes_thirty_minute_break), }; return cmocka_run_group_tests(tests, NULL, NULL); -- 2.39.5