#define SIX_HOURS 21600
#define NINE_HOURS 32400
#define THIRTY_MINUTES 1800
+#define FOURTY_FIVE_MINITUES 2700
time_t get_break_time(const time_t worktime)
{
- if (worktime >= SIX_HOURS && worktime < NINE_HOURS)
+ if (worktime > SIX_HOURS && worktime < NINE_HOURS)
return THIRTY_MINUTES;
+ if (worktime > NINE_HOURS)
+ return FOURTY_FIVE_MINITUES;
+
return 0;
}
#endif
\ No newline at end of file
#endif
#ifndef BEFORE_AUG_2026
+void before_six_hour_zero_break_test(time_t worktime)
+{
+ const time_t breaktime = get_break_time(worktime);
+
+ assert_int_equal(breaktime, 0);
+}
+
+void before_six_hour_zero_break_tests()
+{
+ const time_t six_hour = 21601;
+
+ for (time_t i = 0; i < six_hour; i++) {
+ before_six_hour_zero_break_test(i);
+ }
+}
+
void six_to_nine_hour_thirdy_minutes_break_test(time_t worktime)
{
const time_t breaktime = get_break_time(worktime);
void six_to_nine_hour_thirdy_minutes_break_tests()
{
- const time_t six_hour = 21600;
+ const time_t six_hour = 21601;
const time_t nine_hour = 32400;
for (time_t i = six_hour; i < nine_hour; i++) {
}
}
+void after_nine_hour_fourty_five_minutes_break_test(time_t worktime)
+{
+ const time_t breaktime = get_break_time(worktime);
+
+ assert_int_equal(breaktime, 2700);
+}
+
+void after_nine_hour_fourty_five_minutes_break_tests()
+{
+ const time_t nine_hour = 32401;
+ const time_t twenty_four_hour = 86400;
+
+ for (time_t i = nine_hour; i < twenty_four_hour; i++) {
+ after_nine_hour_fourty_five_minutes_break_test(i);
+ }
+}
+
int run_break_tests()
{
const struct CMUnitTest break_tests[] = {
- cmocka_unit_test(six_to_nine_hour_thirdy_minutes_break_tests)
+ cmocka_unit_test(before_six_hour_zero_break_tests),
+ cmocka_unit_test(six_to_nine_hour_thirdy_minutes_break_tests),
+ cmocka_unit_test(after_nine_hour_fourty_five_minutes_break_tests)
};
return cmocka_run_group_tests(break_tests, NULL, NULL);