]> gitweb.hhaalo.de Git - feierabend.git/commitdiff
add test for thirty minutes break
authorBastian Dehn <hhaalo@arcor.de>
Sun, 9 Jun 2024 08:45:11 +0000 (10:45 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 9 Jun 2024 08:45:11 +0000 (10:45 +0200)
src/break.c
tests/main.c

index 4135db631248bc6940c0adba3d5375e5c10d39e9..3e9b7acdeeaab60044c5bff79d39fa8c8f5b0983 100644 (file)
@@ -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;
 
index eb8e7b3f3afe6ae46d59d72e0be9e3f31db0c07b..efa67cf5da1a24240e10a9eb2218ab3496f594a7 100644 (file)
@@ -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);