1 /* 2 *********************************************************************** 3 * Copyright (C) 2016 and later: Unicode, Inc. and others. 4 * License & terms of use: http://www.unicode.org/copyright.html#License 5 *********************************************************************** 6 *********************************************************************** 7 * Copyright (c) 2010,International Business Machines 8 * Corporation and others. All Rights Reserved. 9 *********************************************************************** 10 *********************************************************************** 11 */ 12 13 #include "dtfmtrtperf.h" 14 #include "uoptions.h" 15 #include <stdio.h> 16 17 #include <iostream> 18 using namespace std; 19 20 DateTimeRoundTripPerfTest::DateTimeRoundTripPerfTest(int32_t argc, const char* argv[], UErrorCode& status) 21 : UPerfTest(argc,argv,status) { } 22 23 DateTimeRoundTripPerfTest::~DateTimeRoundTripPerfTest() { } 24 25 UPerfFunction* DateTimeRoundTripPerfTest::runIndexedTest(int32_t index, UBool exec,const char* &name, char* par) { 26 27 switch (index) 28 { 29 TESTCASE(0,RoundTripLocale1); // 1 locale 30 TESTCASE(1,RoundTripLocale10); // 10 locales 31 TESTCASE(2,RoundTripLocale11); // 11 locales 32 TESTCASE(3,RoundTripLocale21); // 21 locales w/ reverse order 33 default: 34 name = ""; 35 return NULL; 36 } 37 return NULL; 38 39 } 40 41 UPerfFunction* DateTimeRoundTripPerfTest::RoundTripLocale1(){ 42 DateTimeRoundTripFunction* func= new DateTimeRoundTripFunction(1); 43 return func; 44 } 45 46 UPerfFunction* DateTimeRoundTripPerfTest::RoundTripLocale10(){ 47 DateTimeRoundTripFunction* func= new DateTimeRoundTripFunction(10); 48 return func; 49 } 50 51 UPerfFunction* DateTimeRoundTripPerfTest::RoundTripLocale11(){ 52 DateTimeRoundTripFunction* func= new DateTimeRoundTripFunction(11); 53 return func; 54 } 55 56 UPerfFunction* DateTimeRoundTripPerfTest::RoundTripLocale21(){ 57 DateTimeRoundTripFunction* func= new DateTimeRoundTripFunction(21); 58 return func; 59 } 60 61 int main(int argc, const char* argv[]){ 62 63 cout << "ICU version - " << U_ICU_VERSION << endl; 64 65 UErrorCode status = U_ZERO_ERROR; 66 DateTimeRoundTripPerfTest test(argc, argv, status); 67 if(U_FAILURE(status)){ 68 cout << "initialization failed! " << status << endl; 69 return status; 70 } 71 72 if(test.run()==FALSE){ 73 cout << "run failed!" << endl; 74 fprintf(stderr,"FAILED: Tests could not be run please check the arguments.\n"); 75 return -1; 76 } 77 78 cout << "done!" << endl; 79 return 0; 80 } 81