X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/84d8eabd81c4d29da165bbdd7a331dd6ee525d54..fdb97de42b8a1491257566fb7bbd343916f1f2b8:/tests/datetime/datetimetest.cpp?ds=sidebyside diff --git a/tests/datetime/datetimetest.cpp b/tests/datetime/datetimetest.cpp index 17d02966dd..d60aae81b6 100644 --- a/tests/datetime/datetimetest.cpp +++ b/tests/datetime/datetimetest.cpp @@ -175,23 +175,23 @@ struct Date wxString Format() const { wxString s; - s.Printf(_T("%02d:%02d:%02d %10s %02d, %4d%s"), + s.Printf(wxT("%02d:%02d:%02d %10s %02d, %4d%s"), hour, min, sec, wxDateTime::GetMonthName(month).c_str(), day, abs(wxDateTime::ConvertYearToBC(year)), - year > 0 ? _T("AD") : _T("BC")); + year > 0 ? wxT("AD") : wxT("BC")); return s; } wxString FormatDate() const { wxString s; - s.Printf(_T("%02d-%s-%4d%s"), + s.Printf(wxT("%02d-%s-%4d%s"), day, wxDateTime::GetMonthName(month, wxDateTime::Name_Abbr).c_str(), abs(wxDateTime::ConvertYearToBC(year)), - year > 0 ? _T("AD") : _T("BC")); + year > 0 ? wxT("AD") : wxT("BC")); return s; } }; @@ -306,7 +306,7 @@ void DateTimeTestCase::TestLeapYears() { const LeapYearTestData& y = years[n]; - CPPUNIT_ASSERT( wxDateTime::IsLeapYear(y.year) == y.isLeap ); + CPPUNIT_ASSERT_EQUAL( y.isLeap, wxDateTime::IsLeapYear(y.year) ); } } @@ -324,7 +324,7 @@ void DateTimeTestCase::TestTimeSet() wxString s1 = d1.Format(), s2 = d2.Format(); - CPPUNIT_ASSERT( s1 == s2 ); + CPPUNIT_ASSERT_EQUAL( s1, s2 ); } } @@ -357,7 +357,7 @@ void DateTimeTestCase::TestTimeWDays() wxDateTime dt(d.day, d.month, d.year, d.hour, d.min, d.sec); wxDateTime::WeekDay wday = dt.GetWeekDay(); - CPPUNIT_ASSERT( wday == d.wday ); + CPPUNIT_ASSERT_EQUAL( d.wday, wday ); } // test SetToWeekDay() @@ -374,21 +374,21 @@ void DateTimeTestCase::TestTimeWDays() wxString s, which; switch ( nWeek < -1 ? -nWeek : nWeek ) { - case 1: which = _T("first"); break; - case 2: which = _T("second"); break; - case 3: which = _T("third"); break; - case 4: which = _T("fourth"); break; - case 5: which = _T("fifth"); break; + case 1: which = wxT("first"); break; + case 2: which = wxT("second"); break; + case 3: which = wxT("third"); break; + case 4: which = wxT("fourth"); break; + case 5: which = wxT("fifth"); break; - case -1: which = _T("last"); break; + case -1: which = wxT("last"); break; } if ( nWeek < -1 ) { - which += _T(" from end"); + which += wxT(" from end"); } - s.Printf(_T("The %s %s of %s in %d"), + s.Printf(wxT("The %s %s of %s in %d"), which.c_str(), wxDateTime::GetWeekDayName(wday).c_str(), wxDateTime::GetMonthName(month).c_str(), @@ -555,6 +555,8 @@ for n in range(20): { { 16, wxDateTime::Oct, 1942, 0, 0, 0, 0.0, wxDateTime::Inv_WeekDay, 0 }, 42, 3, 3, 289 }, { { 30, wxDateTime::Dec, 2003, 0, 0, 0, 0.0, wxDateTime::Inv_WeekDay, 0 }, 1, 5, 5, 364 }, { { 2, wxDateTime::Jan, 2004, 0, 0, 0, 0.0, wxDateTime::Inv_WeekDay, 0 }, 1, 1, 1, 2 }, + { { 5, wxDateTime::Jan, 2010, 0, 0, 0, 0.0, wxDateTime::Inv_WeekDay, 0 }, 1, 2, 2, 5 }, + { { 3, wxDateTime::Jan, 2011, 0, 0, 0, 0.0, wxDateTime::Inv_WeekDay, 0 }, 1, 2, 2, 3 }, }; for ( size_t n = 0; n < WXSIZEOF(weekNumberTestDates); n++ ) @@ -570,10 +572,14 @@ for n in range(20): wmon2 = dt.GetWeekOfMonth(wxDateTime::Sunday_First), dnum = dt.GetDayOfYear(); - CPPUNIT_ASSERT( dnum == wn.dnum ); - CPPUNIT_ASSERT( wmon == wn.wmon ); - CPPUNIT_ASSERT( wmon2 == wn.wmon2 ); - CPPUNIT_ASSERT( week == wn.week ); + WX_ASSERT_EQUAL_MESSAGE( ("day of year for %s", d.Format()), + wn.dnum, dnum ); + WX_ASSERT_EQUAL_MESSAGE( ("week of month (Monday) for %s", d.Format()), + wn.wmon, wmon ); + WX_ASSERT_EQUAL_MESSAGE( ("week of month (Sunday) for %s", d.Format()), + wn.wmon2, wmon2 ); + WX_ASSERT_EQUAL_MESSAGE( ("week of year for %s", d.Format()), + wn.week, week ); int year = d.year; if ( week == 1 && d.month != wxDateTime::Jan ) @@ -584,7 +590,7 @@ for n in range(20): wxDateTime dt2 = wxDateTime::SetToWeekOfYear(year, week, dt.GetWeekDay()); - CPPUNIT_ASSERT( dt2 == dt ); + CPPUNIT_ASSERT_EQUAL( dt, dt2 ); } } @@ -771,7 +777,7 @@ void DateTimeTestCase::TestTimeFormat() break; case CompareNone: - wxFAIL_MSG( _T("unexpected") ); + wxFAIL_MSG( wxT("unexpected") ); break; } } @@ -786,6 +792,14 @@ void DateTimeTestCase::TestTimeFormat() CPPUNIT_ASSERT_EQUAL( 1856, dt.GetYear() ); #endif + // also test %l separately + CPPUNIT_ASSERT( dt.ParseFormat("12:23:45.678", "%H:%M:%S.%l") ); + CPPUNIT_ASSERT_EQUAL( 678, dt.GetMillisecond() ); + + // test special case of %l matching 0 milliseconds + CPPUNIT_ASSERT( dt.ParseFormat("12:23:45.000", "%H:%M:%S.%l") ); + CPPUNIT_ASSERT_EQUAL( 0, dt.GetMillisecond() ); + // test partially specified dates too wxDateTime dtDef(26, wxDateTime::Sep, 2008); CPPUNIT_ASSERT( dt.ParseFormat("17", "%d") ); @@ -975,7 +989,7 @@ void DateTimeTestCase::TestDateParse() // special cases wxDateTime dt; - CPPUNIT_ASSERT( dt.ParseDate(_T("today")) ); + CPPUNIT_ASSERT( dt.ParseDate(wxT("today")) ); CPPUNIT_ASSERT_EQUAL( wxDateTime::Today(), dt ); for ( size_t n = 0; n < WXSIZEOF(parseTestDates); n++ ) @@ -1085,8 +1099,23 @@ void DateTimeTestCase::TestDateTimeParse() bool good; } parseTestDates[] = { - { "Thu 22 Nov 2007 07:40:00 PM", - { 22, wxDateTime::Nov, 2007, 19, 40, 0}, true }, + { + "Thu 22 Nov 2007 07:40:00 PM", + { 22, wxDateTime::Nov, 2007, 19, 40, 0 }, + true + }, + + { + "2010-01-04 14:30", + { 4, wxDateTime::Jan, 2010, 14, 30, 0 }, + true + }, + + { + "bloordyblop", + { 1, wxDateTime::Jan, 9999, 0, 0, 0}, + false + }, }; // the test strings here use "PM" which is not available in all locales so @@ -1141,9 +1170,9 @@ void DateTimeTestCase::TestTimeArithmetics() dt1 = dt + span; dt2 = dt - span; - CPPUNIT_ASSERT( dt1 - span == dt ); - CPPUNIT_ASSERT( dt2 + span == dt ); - CPPUNIT_ASSERT( dt2 + 2*span == dt1 ); + CPPUNIT_ASSERT_EQUAL( dt, dt1 - span ); + CPPUNIT_ASSERT_EQUAL( dt, dt2 + span ); + CPPUNIT_ASSERT_EQUAL( dt1, dt2 + 2*span ); } }