/*
**********************************************************************
* Copyright (c) 2010,International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
**********************************************************************
*/
#include "dtfmtrtperf.h"
#include "uoptions.h"
#include <stdio.h>
#include <iostream>
using namespace std;
DateTimeRoundTripPerfTest::DateTimeRoundTripPerfTest(int32_t argc, const char* argv[], UErrorCode& status)
: UPerfTest(argc,argv,status) { }
DateTimeRoundTripPerfTest::~DateTimeRoundTripPerfTest() { }
UPerfFunction* DateTimeRoundTripPerfTest::runIndexedTest(int32_t index, UBool exec,const char* &name, char* par) {
switch (index)
{
TESTCASE(0,RoundTripLocale1); // 1 locale
TESTCASE(1,RoundTripLocale10); // 10 locales
TESTCASE(2,RoundTripLocale11); // 11 locales
TESTCASE(3,RoundTripLocale21); // 21 locales w/ reverse order
default:
name = "";
return NULL;
}
return NULL;
}
UPerfFunction* DateTimeRoundTripPerfTest::RoundTripLocale1(){
DateTimeRoundTripFunction* func= new DateTimeRoundTripFunction(1);
return func;
}
UPerfFunction* DateTimeRoundTripPerfTest::RoundTripLocale10(){
DateTimeRoundTripFunction* func= new DateTimeRoundTripFunction(10);
return func;
}
UPerfFunction* DateTimeRoundTripPerfTest::RoundTripLocale11(){
DateTimeRoundTripFunction* func= new DateTimeRoundTripFunction(11);
return func;
}
UPerfFunction* DateTimeRoundTripPerfTest::RoundTripLocale21(){
DateTimeRoundTripFunction* func= new DateTimeRoundTripFunction(21);
return func;
}
int main(int argc, const char* argv[]){
cout << "ICU version - " << U_ICU_VERSION << endl;
UErrorCode status = U_ZERO_ERROR;
DateTimeRoundTripPerfTest test(argc, argv, status);
if(U_FAILURE(status)){
cout << "initialization failed! " << status << endl;
return status;
}
if(test.run()==FALSE){
cout << "run failed!" << endl;
fprintf(stderr,"FAILED: Tests could not be run please check the arguments.\n");
return -1;
}
cout << "done!" << endl;
return 0;
}