From f2a6472659fdaffaf1e8758217dd9197132a9437 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antoine=20Vandecr=C3=A8me?= Date: Tue, 3 Jan 2023 18:18:11 +0100 Subject: [PATCH] Accept timezones really far from UTC --- src/sbml/annotation/Date.cpp | 5 +++-- src/sbml/annotation/test/TestModelHistory.c | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/sbml/annotation/Date.cpp b/src/sbml/annotation/Date.cpp index 414a531d17..462db96aea 100644 --- a/src/sbml/annotation/Date.cpp +++ b/src/sbml/annotation/Date.cpp @@ -368,7 +368,7 @@ Date::setSignOffset (unsigned int sign) int Date::setHoursOffset (unsigned int hour) { - if (/*hour < 0 ||*/ hour > 12) + if (/*hour < 0 ||*/ hour > 14) { mHoursOffset = 0; parseDateNumbersToString(); @@ -645,7 +645,8 @@ Date::representsValidDate() getMinute() > 59 || getSecond() > 59 || getSignOffset() > 1 || - getHoursOffset() > 11 || + (getSignOffset() == 0 && getHoursOffset() > 12) || + (getSignOffset() == 1 && getHoursOffset() > 14) || getMinutesOffset() > 59) { valid = false; diff --git a/src/sbml/annotation/test/TestModelHistory.c b/src/sbml/annotation/test/TestModelHistory.c index 479b8a122d..75042d715f 100644 --- a/src/sbml/annotation/test/TestModelHistory.c +++ b/src/sbml/annotation/test/TestModelHistory.c @@ -159,6 +159,23 @@ START_TEST (test_Date_getDateAsString) } END_TEST +START_TEST (test_Date_representsValidDate) +{ + Date_t * date = Date_createFromValues(2023, 1, 3, 18, 0, 23, 0, 12, 0); + + fail_unless(date != NULL); + fail_unless(Date_representsValidDate(date)); + + Date_setHoursOffset(date, 14); + fail_unless(!Date_representsValidDate(date)); + + Date_setSignOffset(date, 1); + fail_unless(Date_representsValidDate(date)); + + Date_free(date); +} +END_TEST + START_TEST(test_ModelCreator_create) { ModelCreator_t * mc = ModelCreator_create(); @@ -427,6 +444,7 @@ create_suite_ModelHistory (void) tcase_add_test( tcase, test_Date_createFromString ); tcase_add_test( tcase, test_Date_setters ); tcase_add_test( tcase, test_Date_getDateAsString ); + tcase_add_test( tcase, test_Date_representsValidDate ); tcase_add_test( tcase, test_ModelCreator_create ); tcase_add_test( tcase, test_ModelCreator_setters ); tcase_add_test( tcase, test_ModelHistory_create );