#define TWO_HOURS_FIFTEEN_MINUTES 8100
#define FOUR_HOURS_FIFTY_FIVE_MINITUES 17100
#define FIVE_HOURS 18000
+#define SIX_HOURS_THIRTY_MINUTES 23400
+#define SIX_HOURS_FOURTY_FIVE_MINUTES 24300
#define FIFTEEN_MINUTES 900
#define THIRTY_MINUTES 1800
+#define FOURTY_FIVE_MINITUES 2700
int get_break_time(long worktime)
{
+ if (worktime > SIX_HOURS_FOURTY_FIVE_MINUTES)
+ return FOURTY_FIVE_MINITUES;
+
+ if (worktime > SIX_HOURS_THIRTY_MINUTES)
+ return worktime - SIX_HOURS_THIRTY_MINUTES + THIRTY_MINUTES;
+
if (worktime > FIVE_HOURS)
return THIRTY_MINUTES;
assert_int_equal(breaktime, 1800);
}
-void five_and_one_minute_hours_minutes_thirty_minute_break()
+void five_hours_and_one_minute_hours_minutes_thirty_minute_break()
{
long worktime = 18060;
assert_int_equal(breaktime, 1800);
}
+void six_hours_and_thirty_minute_hours_minutes_thirty_minute_break()
+{
+ long worktime = 23400;
+
+ int breaktime = get_break_time(worktime);
+
+ assert_int_equal(breaktime, 1800);
+}
+
+void six_hours_and_thirty_one_minute_hours_minutes_thirty_one_minute_break()
+{
+ long worktime = 23460;
+
+ int breaktime = get_break_time(worktime);
+
+ assert_int_equal(breaktime, 1860);
+}
+
+void six_hours_and_thirty_two_minute_hours_minutes_thirty_two_minute_break()
+{
+ long worktime = 23520;
+
+ int breaktime = get_break_time(worktime);
+
+ assert_int_equal(breaktime, 1920);
+}
+
+void six_hours_and_fouty_five_minute_hours_minutes_fourty_five_minute_break()
+{
+ long worktime = 24300;
+
+ int breaktime = get_break_time(worktime);
+
+ assert_int_equal(breaktime, 2700);
+}
+
+void six_hours_and_fouty_six_minute_hours_minutes_fourty_five_minute_break()
+{
+ long worktime = 24360;
+
+ int breaktime = get_break_time(worktime);
+
+ assert_int_equal(breaktime, 2700);
+}
+
int main()
{
const struct CMUnitTest tests[] = {
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),
+ cmocka_unit_test(five_hours_and_one_minute_hours_minutes_thirty_minute_break),
+ cmocka_unit_test(six_hours_and_thirty_minute_hours_minutes_thirty_minute_break),
+ cmocka_unit_test(six_hours_and_thirty_one_minute_hours_minutes_thirty_one_minute_break),
+ cmocka_unit_test(six_hours_and_thirty_two_minute_hours_minutes_thirty_two_minute_break),
+ cmocka_unit_test(six_hours_and_fouty_five_minute_hours_minutes_fourty_five_minute_break),
+ cmocka_unit_test(six_hours_and_fouty_six_minute_hours_minutes_fourty_five_minute_break),
};
return cmocka_run_group_tests(tests, NULL, NULL);