Skip to content
Snippets Groups Projects
Commit b8da2a95 authored by Jan Frederik Engels's avatar Jan Frederik Engels :new_moon:
Browse files

Expand testing of mtime_timedelta routines

As a first step, generate tests from the example code in
ac66aeae .
parent 5bcba659
No related branches found
No related tags found
No related merge requests found
...@@ -689,6 +689,17 @@ START_TEST(test_event_at_end_of_month) ...@@ -689,6 +689,17 @@ START_TEST(test_event_at_end_of_month)
} while (compareDatetime(model_time, stop_date) <= 0); } while (compareDatetime(model_time, stop_date) <= 0);
} }
END_TEST END_TEST
START_TEST(test_getTimeDeltaFromDateTime)
{
// These test are taken from ac66aeaef2dde828aa31b63f88076070a8282b49
assertGetTimeDeltaFromDateTime("1979-03-01T00:00:00.000", "1979-01-01T01:00:00.000", "P01M27DT23H");
assertGetTimeDeltaFromDateTime("1979-07-01T00:00:00.000", "1979-01-01T01:00:00.000", "P05M29DT23H");
assertGetTimeDeltaFromDateTime("1979-12-01T00:00:00.000", "1979-01-01T01:00:00.000", "P10M29DT23H");
assertGetTimeDeltaFromDateTime("1980-01-01T00:00:00.000", "1979-01-01T01:00:00.000", "P11M30DT23H");
}
END_TEST
static void setup_ProlepticGregorian(void) static void setup_ProlepticGregorian(void)
{ {
initCalendar(PROLEPTIC_GREGORIAN); initCalendar(PROLEPTIC_GREGORIAN);
...@@ -722,6 +733,7 @@ void add_mtime_timedelta_test_to_suite(Suite* suite) ...@@ -722,6 +733,7 @@ void add_mtime_timedelta_test_to_suite(Suite* suite)
tcase_add_test(tcase_ProlepticGregorian, test_timeDeltaToJulianDelta_ProlepticGregorian_2); tcase_add_test(tcase_ProlepticGregorian, test_timeDeltaToJulianDelta_ProlepticGregorian_2);
tcase_add_test(tcase_ProlepticGregorian, test_timeDeltaToJulianDelta_ProlepticGregorian_3); tcase_add_test(tcase_ProlepticGregorian, test_timeDeltaToJulianDelta_ProlepticGregorian_3);
tcase_add_test(tcase_ProlepticGregorian, test_timeDeltaToJulianDelta_highDeltas); tcase_add_test(tcase_ProlepticGregorian, test_timeDeltaToJulianDelta_highDeltas);
tcase_add_test(tcase_ProlepticGregorian, test_getTimeDeltaFromDateTime);
TCase *tcase_YearOf365Days = tcase_create("mtime_time_test_YearOf365Days"); TCase *tcase_YearOf365Days = tcase_create("mtime_time_test_YearOf365Days");
suite_add_tcase(suite, tcase_YearOf365Days); suite_add_tcase(suite, tcase_YearOf365Days);
...@@ -856,3 +868,34 @@ void assertTimeDeltaToJulianDeltaWithoutExpectations(const char* timedelta_strin ...@@ -856,3 +868,34 @@ void assertTimeDeltaToJulianDeltaWithoutExpectations(const char* timedelta_strin
deallocateDateTime(datetime); deallocateDateTime(datetime);
deallocateJulianDelta(juliandelta); deallocateJulianDelta(juliandelta);
} }
// FIXME: Fill with content
void assertJulianDeltaToTimeDelta ()
{
}
// It seems we need this tested too.
void assertGetTimeDeltaFromDateTime (const char* dt1_string, const char* dt2_string, const char* expected_td_string)
{
struct _datetime* dt1 = newDateTime(dt1_string);
ck_assert(dt1 != NULL);
struct _datetime* dt2 = newDateTime(dt2_string);
ck_assert(dt2 != NULL);
struct _timedelta td;
void* err = getTimeDeltaFromDateTime(dt1, dt2, &td);
ck_assert(err != NULL);
struct _timedelta* expected_td = newTimeDelta(expected_td_string);
ck_assert(expected_td != NULL);
ck_assert(compareTimeDelta(&td, expected_td) == equal_to);
deallocateDateTime(dt1);
deallocateDateTime(dt2);
deallocateTimeDelta(expected_td);
}
...@@ -13,4 +13,5 @@ void assertInvalidTimeDelta(const char* input_string); ...@@ -13,4 +13,5 @@ void assertInvalidTimeDelta(const char* input_string);
void assertTimeDeltaToJulianDelta(const char* timedelta_string, const char* base_datetime_string, char expected_jd_sign, int64_t expected_jd_day, int64_t expected_jd_ms); void assertTimeDeltaToJulianDelta(const char* timedelta_string, const char* base_datetime_string, char expected_jd_sign, int64_t expected_jd_day, int64_t expected_jd_ms);
void assertTimeDeltaToJulianDeltaWithoutExpectations(const char* timedelta_string, const char* base_datetime_string, char expected_jd_sign); void assertTimeDeltaToJulianDeltaWithoutExpectations(const char* timedelta_string, const char* base_datetime_string, char expected_jd_sign);
void assertGetTimeDeltaFromDateTime (const char* dt1_string, const char* dt2_string, const char* expected_td_string);
#endif #endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment