home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 6 / AACD06.ISO / AACD / Programming / ICU / src / icu / source / test / intltest / itformat.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1999-10-21  |  13.1 KB  |  441 lines

  1.  
  2. /*
  3. ********************************************************************
  4. * COPYRIGHT: 
  5. * (C) Copyright Taligent, Inc., 1997
  6. * (C) Copyright International Business Machines Corporation, 1997 - 1998
  7. * Licensed Material - Program-Property of IBM - All Rights Reserved. 
  8. * US Government Users Restricted Rights - Use, duplication, or disclosure 
  9. * restricted by GSA ADP Schedule Contract with IBM Corp. 
  10. *
  11. ********************************************************************
  12. */
  13.  
  14. /**
  15.  * IntlTestFormat is the medium level test class for everything in the directory "format".
  16.  */
  17.  
  18. #include "utypes.h"
  19. #include "itformat.h"
  20. #include "tsdate.h"
  21. #include "tsnmfmt.h"
  22. #include "caltest.h"
  23. #include "callimts.h"
  24. #include "tztest.h"
  25. #include "tzbdtest.h"
  26. #include "tsdcfmsy.h"       // DecimalFormatSymbols
  27. #include "tchcfmt.h"
  28. #include "tsdtfmsy.h"       // DateFormatSymbols
  29. #include "dcfmapts.h"       // DecimalFormatAPI
  30. #include "tfsmalls.h"       // Format Small Classes
  31. #include "nmfmapts.h"       // NumberFormatAPI
  32. #include "numfmtst.h"       // NumberFormatTest
  33. #include "sdtfmtts.h"       // SimpleDateFormatAPI
  34. #include "dtfmapts.h"       // DateFormatAPI
  35. #include "dtfmttst.h"       // DateFormatTest
  36. #include "tmsgfmt.h"        // TestMessageFormat
  37. #include "dtfmrgts.h"       // DateFormatRegressionTest
  38. #include "msfmrgts.h"       // MessageFormatRegressionTest
  39. #include "miscdtfm.h"       // DateFormatMiscTests
  40. #include "nmfmtrt.h"        // NumberFormatRoundTripTest
  41. #include "numrgts.h"        // NumberFormatRegressionTest
  42. #include "dtfmtrtts.h"      // DateFormatRoundTripTest
  43. #include "pptest.h"         // ParsePositionTest
  44. #include "calregts.h"       // CalendarRegressionTest
  45. #include "tzregts.h"        // TimeZoneRegressionTest
  46. #include "usettest.h"       // UnicodeSetTest
  47.  
  48. void IntlTestFormat::runIndexedTest( int32_t index, bool_t exec, char* &name, char* par )
  49. {
  50.     // for all format tests, always set default Locale and TimeZone to ENGLISH and PST.
  51.     TimeZone* saveDefaultTimeZone;
  52.     Locale  saveDefaultLocale = Locale::getDefault();
  53.     if (exec) {
  54.         saveDefaultTimeZone = TimeZone::createDefault();
  55.         TimeZone *tz = TimeZone::createTimeZone("PST");
  56.         TimeZone::setDefault(*tz);
  57.         delete tz;
  58.         UErrorCode status = U_ZERO_ERROR;
  59.         Locale::setDefault( Locale::ENGLISH, status );
  60.         if (U_FAILURE(status)) {
  61.             errln("itformat: couldn't set default Locale to ENGLISH!");
  62.         }
  63.     }
  64.     if (exec) logln("TestSuite Format: ");
  65.     switch (index) {
  66.         case 0: 
  67.             name = "DateFormat"; 
  68.             if (exec) {
  69.                 logln("DateFormat test---"); logln("");
  70.                 IntlTestDateFormat test;
  71.                 callTest( test, par );
  72.             }
  73.             break;
  74.  
  75.         case 1: 
  76.             name = "NumberFormat"; 
  77.             if (exec) {
  78.                 logln("NumberFormat test---"); logln("");
  79.                 IntlTestNumberFormat test;
  80.                 callTest( test, par );
  81.             }
  82.             break;
  83.  
  84.         case 2:
  85.             name = "TestCalendar";
  86.             if (exec) {
  87.                 logln("TestCalendar---"); logln("");
  88.                 CalendarTest test;
  89.                 callTest( test, par );
  90.             }
  91.             break;
  92.  
  93.         case 3:
  94.             name = "TestCalendarLimit";
  95.             if (exec) {
  96.                 logln("TestCalendarLimit---"); logln("");
  97.                 CalendarLimitTest test;
  98.                 callTest( test, par );
  99.             }
  100.             break;
  101.  
  102.         case 4:
  103.             name = "TestTimeZone";
  104.             if (exec) {
  105.                 logln("TestTimeZone---"); logln("");
  106.                 TimeZoneTest test;
  107.                 callTest( test, par );
  108.             }
  109.             break;
  110.  
  111.         case 5:
  112.             name = "TestTimeZoneBoundary";
  113.             if (exec) {
  114.                 logln("TestTimeZoneBoundary---"); logln("");
  115.                 TimeZoneBoundaryTest test;
  116.                 callTest( test, par );
  117.             }
  118.             break;
  119.  
  120.         case 6: name = "chc"; 
  121.                 if (exec) { 
  122.                     logln("TestSuite Format/ChoiceFormat---"); logln();
  123.                     TestChoiceFormat test;
  124.                     callTest( test, par );
  125.                 }
  126.                 break;
  127.         
  128.         case 7: 
  129.             name = "DecimalFormatSymbols"; 
  130.             if (exec) {
  131.                 logln("DecimalFormatSymbols test---"); logln("");
  132.                 IntlTestDecimalFormatSymbols test;
  133.                 callTest( test, par );
  134.             }
  135.             break;
  136.  
  137.         case 8: 
  138.             name = "DateFormatSymbols"; 
  139.             if (exec) {
  140.                 logln("DateFormatSymbols test---"); logln("");
  141.                 IntlTestDateFormatSymbols test;
  142.                 callTest( test, par );
  143.             }
  144.             break;
  145.  
  146.         case 9: 
  147.             name = "DecimalFormatAPI"; 
  148.             if (exec) {
  149.                 logln("DecimalFormatAPI test---"); logln("");
  150.                 IntlTestDecimalFormatAPI test;
  151.                 callTest( test, par );
  152.             }
  153.             break;
  154.  
  155.         case 10: 
  156.             name = "sma"; 
  157.             if (exec) {
  158.                 logln("TestSuite Format/SmallClasses---"); logln("");
  159.                 TestFormatSmallClasses test;
  160.                 callTest( test, par );
  161.             }
  162.             break;
  163.  
  164.         case 11: 
  165.             name = "NumberFormatAPI"; 
  166.             if (exec) {
  167.                 logln("NumberFormatAPI test---"); logln("");
  168.                 IntlTestNumberFormatAPI test;
  169.                 callTest( test, par );
  170.             }
  171.             break;
  172.  
  173.         case 12: 
  174.             name = "SimpleDateFormatAPI"; 
  175.             if (exec) {
  176.                 logln("SimpleDateFormatAPI test---"); logln("");
  177.                 IntlTestSimpleDateFormatAPI test;
  178.                 callTest( test, par );
  179.             }
  180.             break;
  181.  
  182.         case 13: 
  183.             name = "DateFormatAPI"; 
  184.             if (exec) {
  185.                 logln("DateFormatAPI test---"); logln("");
  186.                 IntlTestDateFormatAPI test;
  187.                 callTest( test, par );
  188.             }
  189.             break;
  190.  
  191.         case 14: 
  192.             name = "TestDateFormat"; 
  193.             if (exec) {
  194.                 logln("TestDateFormat test---"); logln("");
  195.                 DateFormatTest test;
  196.                 callTest( test, par );
  197.             }
  198.             break;
  199.  
  200.         case 15:
  201.             name = "msg"; 
  202.             if (exec) {
  203.                 logln("TestMessageFormat test---"); logln("");
  204.                 TestMessageFormat test;
  205.                 callTest( test, par );
  206.             }
  207.             break;
  208.  
  209.         case 16: 
  210.             name = "TestNumberFormat"; 
  211.             if (exec) {
  212.                 logln("TestNumberFormat test---"); logln("");
  213.                 NumberFormatTest test;
  214.                 callTest( test, par );
  215.             }
  216.             break;
  217.  
  218.         case 17: 
  219.             name = "DateFormatRegression"; 
  220.             if (exec) {
  221.                 logln("DateFormatRegression test---"); logln("");
  222.                 DateFormatRegressionTest test;
  223.                 callTest( test, par );
  224.             }
  225.             break;
  226.  
  227.         case 18: 
  228.             name = "MessageFormatRegression"; 
  229.             if (exec) {
  230.                 logln("MessageFormatRegression test---"); logln("");
  231.                 MessageFormatRegressionTest test;
  232.                 callTest( test, par );
  233.             }
  234.             break;
  235.  
  236.         case 19: 
  237.             name = "DateFormatMisc"; 
  238.             if (exec) {
  239.                 logln("DateFormatMisc test---"); logln("");
  240.                 DateFormatMiscTests test;
  241.                 callTest( test, par );
  242.             }
  243.             break;
  244.  
  245.         case 20: 
  246.             name = "NumberFormatRoundTrip"; 
  247.             if (exec) {
  248.                 logln("NumberFormatRoundTrip test---"); logln("");
  249.                 NumberFormatRoundTripTest test;
  250.                 callTest( test, par );
  251.             }
  252.             break;
  253.  
  254.         case 21: 
  255.             name = "NumberFormatRegression"; 
  256.             if (exec) {
  257.                 logln("NumberFormatRegression test---"); logln("");
  258.                 NumberFormatRegressionTest test;
  259.                 callTest( test, par );
  260.             }
  261.             break;
  262.  
  263.         case 22: 
  264.             name = "DateFormatRoundTrip"; 
  265.             if (exec) {
  266.                 logln("DateFormatRoundTrip test---"); logln("");
  267.                 DateFormatRoundTripTest test;
  268.                 callTest( test, par );
  269.             }
  270.             break;
  271.  
  272.         case 23: 
  273.             name = "ParsePosition"; 
  274.             if (exec) {
  275.                 logln("ParsePosition test---"); logln("");
  276.                 ParsePositionTest test;
  277.                 callTest( test, par );
  278.             }
  279.             break;
  280.  
  281.  
  282.         case 24: 
  283.             name = "CalendarRegression"; 
  284.             if (exec) {
  285.                 logln("CalendarRegression test---"); logln("");
  286.                 CalendarRegressionTest test;
  287.                 callTest( test, par );
  288.             }
  289.             break;
  290.  
  291.         case 25: 
  292.             name = "TimeZoneRegression"; 
  293.             if (exec) {
  294.                 logln("TimeZoneRegression test---"); logln("");
  295.                 TimeZoneRegressionTest test;
  296.                 callTest( test, par );
  297.             }
  298.             break;
  299.  
  300.         case 26:
  301.             name = "UnicodeSetTest";
  302.             if (exec) {
  303.                 logln("UnicodeSetTest---"); logln();
  304.                 UnicodeSetTest test;
  305.                 callTest(test, par);
  306.             }
  307.             break;
  308.         /*
  309.         case 28: 
  310.             name = "DateFormatSymbolsCAPI"; 
  311.             if (exec) {
  312.                 logln("DateFormatSymbols C API test---"); logln("");
  313.                 IntlTestDateFormatSymbolsC test;
  314.                 callTest( test, par );
  315.             }
  316.             break;
  317.  
  318.         case 29: 
  319.             name = "DecimalFormatSymbolsCAPI"; 
  320.             if (exec) {
  321.                 logln("DecimalFormatSymbols C API test---"); logln("");
  322.                 IntlTestDecimalFormatSymbolsC test;
  323.                 callTest( test, par );
  324.             }
  325.             break;
  326.  
  327.         case 30: 
  328.             name = "SimpleDateFormatCAPI"; 
  329.             if (exec) {
  330.                 logln("SimpleDateFormat C API test---"); logln("");
  331.                 IntlTestSimpleDateFormatAPIC test;
  332.                 callTest( test, par );
  333.             }
  334.             break;
  335.  
  336.         case 31: 
  337.             name = "DateFormatCAPI"; 
  338.             if (exec) {
  339.                 logln("DateFormat C API test---"); logln("");
  340.                 IntlTestDateFormatAPIC test;
  341.                 callTest( test, par );
  342.             }
  343.             break;
  344.  
  345.  
  346.         case 32: 
  347.             name = "DecimalFormatCAPI"; 
  348.             if (exec) {
  349.                 logln("Decimal Format C API test---"); logln("");
  350.                 IntlTestDecimalFormatAPIC test;
  351.                 callTest( test, par );
  352.             }
  353.             break;
  354.  
  355.         case 33: 
  356.             name = "NumberFormatCAPI"; 
  357.             if (exec) {
  358.                 logln("NumberFormat C API test---"); logln("");
  359.                 IntlTestNumberFormatAPIC test;
  360.                 callTest( test, par );
  361.             }
  362.             break;
  363.  
  364.         case 34:
  365.             name = "NumberSpelloutFormatCAPI";
  366.             if (exec) {
  367.                 logln("NumberSpelloutFormat C API test---"); logln("");
  368.                 CNumberSpelloutFormatTest test;
  369.                 callTest(test, par);
  370.             }
  371.             break;
  372.  
  373.         case 35:
  374.             name = "NumberSpelloutFormatCRoundTrip";
  375.             if (exec) {
  376.                 logln("NumberSpelloutFormat C Round Trip test---"); logln("");
  377.                 CNumberSpelloutFormatRoundTripTest test;
  378.                 callTest(test, par);
  379.             }
  380.             break;
  381.         case 36:
  382.             name = "FormatSmallClassesCAPI";
  383.             if (exec) {
  384.                 logln("Format Small Classes C-API test---"); logln();
  385.                 TestCwrapperFormatSmallClasses test;
  386.                 callTest(test, par);
  387.             }
  388.             break;
  389.  
  390.         case 37:
  391.             name = "MessageFormatCAPI";
  392.             if (exec) {
  393.                 logln("MessageFormat C-API test---"); logln();
  394.                 TestCwrapperMessageFormat test;
  395.                 callTest(test, par);
  396.             }
  397.             break;
  398.  
  399.         case 38:
  400.             name = "ChoiceFormatCAPI";
  401.             if (exec) {
  402.                 logln("ChoiceFormat C-API test---"); logln();
  403.                 TestCwrapperChoiceFormat test;
  404.                 callTest(test, par);
  405.             }
  406.             break;
  407.  
  408.         case 39:
  409.             name = "CalendarCAPI";
  410.             if (exec) {
  411.                 logln("Calendar C-API test---"); logln();
  412.                 TestCwrapperCalendar test;
  413.                 callTest(test, par);
  414.             }
  415.             break;
  416.  
  417.         case 40:
  418.             name = "TimeZoneCAPI";
  419.             if (exec) {
  420.                 logln("TimeZone C-API test---"); logln();
  421.                 TestCwrapperTimeZone test;
  422.                 callTest(test, par);
  423.             }
  424.             break;
  425.         */
  426.  
  427.         default: name = ""; break; //needed to end loop
  428.     }
  429.     if (exec) {
  430.         // restore saved Locale and TimeZone
  431.         TimeZone::adoptDefault(saveDefaultTimeZone);
  432.         UErrorCode status = U_ZERO_ERROR;
  433.         Locale::setDefault( saveDefaultLocale, status );
  434.         if (U_FAILURE(status)) {
  435.             errln("itformat: couldn't re-set default Locale!");
  436.         }
  437.     }
  438. }
  439.  
  440.  
  441.