1290001Sglebius#include "config.h" 2290001Sglebius#include "ntp_calendar.h" 3290001Sglebius#include "unity.h" 4290001Sglebius 5290001Sglebiusvoid test_DateGivenMonthDay(void); 6290001Sglebiusvoid test_DateGivenYearDay(void); 7290001Sglebiusvoid test_DateLeapYear(void); 8290001Sglebiusvoid test_WraparoundDateIn2036(void); 9290001Sglebius 10290001Sglebiusvoid 11290001Sglebiustest_DateGivenMonthDay(void) { 12290001Sglebius // 2010-06-24 12:50:00 13290001Sglebius struct calendar input = {2010, 0, 6, 24, 12, 50, 0}; 14290001Sglebius 15290001Sglebius u_long expected = 3486372600UL; // This is the timestamp above. 16290001Sglebius 17290001Sglebius TEST_ASSERT_EQUAL_UINT(expected, caltontp(&input)); 18290001Sglebius} 19290001Sglebius 20290001Sglebiusvoid 21290001Sglebiustest_DateGivenYearDay(void) { 22290001Sglebius // 2010-06-24 12:50:00 23290001Sglebius // This is the 175th day of 2010. 24290001Sglebius struct calendar input = {2010, 175, 0, 0, 12, 50, 0}; 25290001Sglebius 26290001Sglebius u_long expected = 3486372600UL; // This is the timestamp above. 27290001Sglebius 28290001Sglebius TEST_ASSERT_EQUAL_UINT(expected, caltontp(&input)); 29290001Sglebius} 30290001Sglebius 31290001Sglebiusvoid 32290001Sglebiustest_DateLeapYear(void) { 33290001Sglebius // 2012-06-24 12:00:00 34290001Sglebius // This is the 176th day of 2012 (since 2012 is a leap year). 35290001Sglebius struct calendar inputYd = {2012, 176, 0, 0, 12, 00, 00}; 36290001Sglebius struct calendar inputMd = {2012, 0, 6, 24, 12, 00, 00}; 37290001Sglebius 38290001Sglebius u_long expected = 3549528000UL; 39290001Sglebius 40290001Sglebius TEST_ASSERT_EQUAL_UINT(expected, caltontp(&inputYd)); 41290001Sglebius TEST_ASSERT_EQUAL_UINT(expected, caltontp(&inputMd)); 42290001Sglebius} 43290001Sglebius 44290001Sglebiusvoid 45290001Sglebiustest_WraparoundDateIn2036(void) { 46290001Sglebius // 2036-02-07 06:28:16 47290001Sglebius // This is (one) wrapping boundary where we go from ULONG_MAX to 0. 48290001Sglebius struct calendar input = {2036, 0, 2, 7, 6, 28, 16}; 49290001Sglebius 50290001Sglebius u_long expected = 0UL; 51290001Sglebius 52290001Sglebius TEST_ASSERT_EQUAL_UINT(expected, caltontp(&input)); 53290001Sglebius} 54