summaryrefslogtreecommitdiffstats
path: root/libtdeedu/extdate/test_extdate.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libtdeedu/extdate/test_extdate.cc')
-rw-r--r--libtdeedu/extdate/test_extdate.cc334
1 files changed, 334 insertions, 0 deletions
diff --git a/libtdeedu/extdate/test_extdate.cc b/libtdeedu/extdate/test_extdate.cc
new file mode 100644
index 00000000..63b2120b
--- /dev/null
+++ b/libtdeedu/extdate/test_extdate.cc
@@ -0,0 +1,334 @@
+#include <stdlib.h>
+#include <iostream>
+#include "extdatetime.h"
+
+
+void test1_unit(int a_year)
+{
+ std::cout << a_year << " (TQDate|ExtDate): " << ((TQDate::leapYear(a_year)) ? "yes" : "no")
+ <<"|"<< ((ExtDate::leapYear(a_year)) ? "yes" : "no") << std::endl;
+}
+
+void test1()
+{
+ int a_set_of_years[] =
+ {
+ 1996,
+ 1997,
+ 1998,
+ 2000,
+ 1999,
+ 2001,
+ 1900,
+ 1800,
+ 1700,
+ 1600,
+ 2100,
+ 2200,
+ 2300,
+ 0,
+ -1,
+ -4,
+ -100,
+ -200,
+ -300,
+ -400,
+ -500
+ };
+ uint i;
+ std::cout << "Checking Leap Years:\n" << std::endl;
+ for (i = 0 ; i < sizeof(a_set_of_years)/sizeof(a_set_of_years[0]) ; i++)
+ {
+ test1_unit(a_set_of_years[i]);
+ }
+ std::cout << "--------------------" << std::endl;
+}
+
+void test2_unit(int y, int m, int d)
+{
+ TQDate q(y, m, d);
+ ExtDate e(y, m, d);
+ int q_week_number = q.dayOfWeek();
+ int e_week_number = e.dayOfWeek();
+ int q_day_of_year = q.dayOfYear();
+ int e_day_of_year = e.dayOfYear();
+ std::cout << "(" << y << ", " << m << ", " << d << ") :: "
+ << q.toString("dd.MMM.yyyy").local8Bit() << " : "
+ << q.dayOfWeek() << " : " << q_week_number << " : " << q_day_of_year << " :: "
+ << e.toString("%d.%b.%Y").local8Bit() << " : "
+ << e.dayOfWeek() << " : " << e_week_number << " : " << e_day_of_year << std::endl;
+}
+
+void test2()
+{
+ int a_set_of_dates[][3] =
+ {
+ {0, 1, 1},
+ {1, 1, 1},
+ {2, 1, 1},
+ {3, 1, 1},
+ {4, 1, 1},
+ {5, 1, 1},
+ {99, 1, 1},
+ {100, 1, 1},
+ {100, 12, 31},
+ {101, 1, 1},
+ {102, 1, 1},
+ {103, 1, 1},
+ {104, 1, 1},
+ {399, 1, 1},
+ {400, 1, 1},
+ {401, 1, 1},
+ {402, 1, 1},
+ {403, 1, 1},
+ {404, 1, 1},
+ {2003, 1, 1},
+ {2003, 1, 2},
+ {2003, 1, 3},
+ {2003, 1, 4},
+ {2003, 1, 5},
+ {2003, 1, 6},
+ {2003, 1, 7},
+ {2003, 1, 8},
+ {2003, 1, 9},
+ {2003, 1, 10},
+ {2003, 1, 11},
+ {2003, 1, 12},
+ {2003, 1, 13},
+ {2003, 1, 14},
+ {2003, 1, 15},
+ {2003, 1, 16},
+ {2003, 1, 17},
+ {2003, 1, 18},
+ {2003, 12, 19},
+ {2003, 12, 20},
+ {2003, 12, 21},
+ {2003, 12, 22},
+ {2003, 12, 23},
+ {2003, 12, 24},
+ {2003, 12, 25},
+ {2003, 12, 26},
+ {2003, 12, 27},
+ {2003, 12, 28},
+ {2003, 12, 29},
+ {2003, 12, 30},
+ {2003, 12, 31},
+ {2004, 1, 1},
+ {2003, 11, 2}
+ };
+ uint i;
+ std::cout << "(y, m, d) :: TQDate : Q.dayOfWeek() : Q.weekNumber() : Q.dayOfYear() :: ExtDate : E.dayOfWeek() : E.weekNumber() : E.dayOfYear()\n" << std::endl;
+
+ for (i = 0 ; i < sizeof(a_set_of_dates)/sizeof(a_set_of_dates[0]) ; i++)
+ {
+ test2_unit(a_set_of_dates[i][0], a_set_of_dates[i][1], a_set_of_dates[i][2]);
+ }
+ std::cout << "--------------------" << std::endl;
+}
+
+void test3_unit(int y, int m, int d, int dm)
+{
+ TQDate q(y, m, d);
+ ExtDate e(y, m, d);
+ TQDate q2 = q.addMonths(dm);
+ ExtDate e2 = e.addMonths(dm);
+ std::cout << e.toString("%d.%b.%Y").local8Bit() << " + " << dm
+ << " months :: ExtDate : " << e2.toString("%d.%b.%Y").local8Bit()
+ << " TQDate : " << q2.toString("dd.MMM.yyyy").local8Bit() << std::endl;
+}
+
+void test3()
+{
+ int a_set_of_dates_delta[][4] =
+ {
+ {2003, 11, 5, 0},
+ {2003, 11, 5, 1},
+ {2003, 11, 5, -1},
+ {2003, 11, 5, 2},
+ {2003, 11, 5, 3}
+ };
+ uint i;
+ std::cout << "Adding Months:\n" << std::endl;
+ for (i = 0 ; i < sizeof(a_set_of_dates_delta)/sizeof(a_set_of_dates_delta[0]) ; i++)
+ {
+ test3_unit(a_set_of_dates_delta[i][0], a_set_of_dates_delta[i][1], a_set_of_dates_delta[i][2], a_set_of_dates_delta[i][3]);
+ }
+ std::cout << "--------------------" << std::endl;
+}
+void test4_unit(int y, int m, int d, int dy)
+{
+ TQDate q(y, m, d);
+ ExtDate e(y, m, d);
+ TQDate q2 = q.addYears(dy);
+ ExtDate e2 = e.addYears(dy);
+ std::cout << e.toString("%d.%m.%Y").local8Bit() << " + " << dy << " years :: ExtDate : "
+ << e2.toString().local8Bit() << " TQDate : "
+ << q2.toString().local8Bit() << std::endl;
+}
+
+void test4()
+{
+ int a_set_of_dates_delta[][4] =
+ {
+ {-1, 11, 5, 0},
+ {-1, 11, 5, 1},
+ {-1, 11, 5, 2},
+ {2003, 11, 5, 1},
+ {2003, 11, 5, -1},
+ {2003, 11, 5, 2},
+ {2003, 11, 5, 3}
+ };
+ uint i;
+ std::cout << "Adding years:\n" << std::endl;
+ for (i = 0 ; i < sizeof(a_set_of_dates_delta)/sizeof(a_set_of_dates_delta[0]) ; i++)
+ {
+ test4_unit(a_set_of_dates_delta[i][0], a_set_of_dates_delta[i][1], a_set_of_dates_delta[i][2], a_set_of_dates_delta[i][3]);
+ }
+ std::cout << "--------------------" << std::endl;
+}
+
+void test5_unit(int y, int m, int d, const char *qformat, const char *eformat)
+{
+ TQDate q(y, m, d);
+ ExtDate e(y, m, d);
+
+ if ( TQString(qformat) == "<default>" )
+ std::cout << eformat << " : " << e.toString().local8Bit() << " :: "
+ << qformat << " : " << q.toString().local8Bit() << std::endl;
+ else
+ std::cout << eformat << " : " << e.toString(eformat).local8Bit() << " :: "
+ << qformat << " : " << q.toString(qformat).local8Bit() << std::endl;
+}
+
+void test5()
+{
+ const char *q_set_of_formats[7] =
+ {
+ "d.M.yy",
+ "dd.MM.yy",
+ "ddd.MMM.yy",
+ "ddd dd.MMM.yy",
+ "dddd.MMMM.yy",
+ ">dd.M.yyyy<",
+ "<default>"
+ };
+ const char *e_set_of_formats[7] =
+ {
+ "%e.%n.%y",
+ "%d.%m.%y",
+ "%d.%b.%y",
+ "%a %d.%b.%y",
+ "%A.%B.%y",
+ ">%d.%n.%Y<",
+ "<default>"
+ };
+
+ uint i;
+ std::cout << "Date.toString(\"...\")" << std::endl;
+ std::cout << "Ext Format : ExtDate :: Q Format : TQDate\n" << std::endl;
+
+ for (i = 0 ; i < sizeof(q_set_of_formats)/sizeof(q_set_of_formats[0]) ; i++)
+ {
+ test5_unit(2003, 11, 5, q_set_of_formats[i], e_set_of_formats[i]);
+ }
+ std::cout << "--------------------" << std::endl;
+}
+
+void test6_unit(int y, int m, int d)
+{
+ std::cout << d << "/" << m << "/" << y << " :: "
+ << ( ExtDate::isValid(y, m, d) ? "TRUE" : "FALSE" ) << " : "
+ << ( TQDate::isValid(y, m, d) ? "TRUE" : "FALSE" ) << std::endl;
+}
+
+void test6()
+{
+ int a_set_of_dates[][3] =
+ {
+ {-1, 11, 5},
+ {-1, 11, 5},
+ {-1, 11, 5},
+ {2003, 11, 5},
+ {2003, -1, 5},
+ {2003, 0, 5},
+ {2003, 12, 5},
+ {2003, 13, 5},
+ {2003, 11, -2},
+ {2003, 11, 0},
+ {2003, 11, 40},
+ {2004, 2, 28},
+ {2004, 2, 29},
+ {2004, 2, 30},
+ {2003, 2, 28},
+ {2003, 2, 29},
+ {2003, 2, 30}
+ };
+ uint i;
+ std::cout << "Date.isValid()" << std::endl;
+ std::cout << "d/m/y :: ExtDate.isValid() : TQDate.isValid()\n" << std::endl;
+
+ for (i = 0 ; i < sizeof(a_set_of_dates)/sizeof(a_set_of_dates[0]) ; i++)
+ {
+ test6_unit(a_set_of_dates[i][0], a_set_of_dates[i][1], a_set_of_dates[i][2]);
+ }
+ std::cout << "--------------------" << std::endl;
+}
+
+void test7()
+{
+ std::cout << "Express the current date:\n" << std::endl;
+ TQDate q = TQDate::tqcurrentDate(TQt::LocalTime);
+ ExtDate e = ExtDate::tqcurrentDate(TQt::TimeSpec(TQt::LocalTime));
+ std::cout << "TQt::LocalTime :: ExtDate : " << e.toString().local8Bit() << " TQDate : "
+ << q.toString().local8Bit() << std::endl;
+ q = TQDate::tqcurrentDate(TQt::UTC);
+ e = ExtDate::tqcurrentDate(TQt::UTC);
+ std::cout << "TQt::UTC :: ExtDate : " << e.toString().local8Bit() << " TQDate : "
+ << q.toString().local8Bit() << std::endl;
+ q = TQDate::tqcurrentDate();
+ e = ExtDate::tqcurrentDate();
+ std::cout << "<default> :: ExtDate : " << e.toString().local8Bit() << " TQDate : "
+ << q.toString().local8Bit() << std::endl;
+ std::cout << "--------------------" << std::endl;
+}
+
+void test8() {
+ std::cout << "Set dates using days 1-32 for Jan and Feb (some will be invalid): \n" << std::endl;
+ std::cout << " TQDate : ExtDate" << std::endl;
+
+ for ( uint m=1; m<=2; ++m ) {
+ for ( uint d=1; d<=32; ++d ) {
+
+ TQDate test1( 2004, m, d );
+ ExtDate test2( 2004, m, d );
+ std::cout << test1.toString( "ddd dd.MMM.yy" ).local8Bit() << " : "
+ << test2.toString( "%a %d.%b.%y" ).local8Bit() << std::endl;
+ }
+ }
+
+ std::cout << "--------------------" << std::endl;
+}
+
+void test9() {
+ std::cout << "TQDateTime : ExtDateTime: \n" << std::endl;
+ TQDateTime q = TQDateTime::tqcurrentDateTime();
+ ExtDateTime e = ExtDateTime::tqcurrentDateTime();
+
+ std::cout << q.toString().local8Bit() << " : " << e.toString().local8Bit() << std::endl;
+ std::cout << "--------------------" << std::endl;
+}
+
+int main(int argc, char *argv[])
+{
+ test1();
+ test2();
+ test3();
+ test4();
+ test5();
+ test6();
+ test7();
+ test8();
+ test9();
+ exit(0);
+}
+