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