#!/usr/bin/perl
#  ********************************************************************
#  * COPYRIGHT:
#  * Copyright (c) 2002-2007, International Business Machines
#  * Corporation and others. All Rights Reserved.
#  ********************************************************************

use strict;

#Assume we are running outside of the ICU source
use lib './ICU-3.0/ICU/source/test/perf/perldriver';

use PerfFramework;

my $options = {
	       "title"=>"Unicode String performance regression (ICU 2.8 and 3.0)",
	       "headers"=>"ICU28 ICU30",
	       "operationIs"=>"Unicode String",
	       "passes"=>"10",
	       "time"=>"5",
	       #"outputType"=>"HTML",
	       "dataDir"=>"c:/src/perf/data",
	       "outputDir"=>"results_ICU4C"
	      };

# programs

my $p1 = "icu-2.8/icu/bin/stringperf28.exe -b -u";
my $p2 = "icu-3.0/icu/bin/stringperf30.exe -b -u";

my $dataFiles = {
		 "",
		 [
		  "TestNames_Asian.txt",
		  "TestNames_Chinese.txt",
		  "TestNames_Japanese.txt",
		  "TestNames_Japanese_h.txt",
		  "TestNames_Japanese_k.txt",
		  "TestNames_Korean.txt",
		  "TestNames_Latin.txt",
		  "TestNames_SerbianSH.txt",
		  "TestNames_SerbianSR.txt",
		  "TestNames_Thai.txt",
		  "Testnames_Russian.txt",
#		  "th18057.txt",
#		  "thesis.txt",
#		  "vfear11a.txt",
		 ]
		};


my $tests = { 
"Object Construction(empty string)",      ["$p1 TestCtor"         , "$p2 TestCtor"         ],
"Object Construction(single char)",       ["$p1 TestCtor1"        , "$p2 TestCtor1"        ],
"Object Construction(another string)",    ["$p1 TestCtor2"        , "$p2 TestCtor2"        ],
"Object Construction(string literal)",    ["$p1 TestCtor3"        , "$p2 TestCtor3"        ],
"String Assignment(helper)",     		  ["$p1 TestAssign"       , "$p2 TestAssign"       ],
"String Assignment(string literal)",      ["$p1 TestAssign1"      , "$p2 TestAssign1"      ],
"String Assignment(another string)",      ["$p1 TestAssign2"      , "$p2 TestAssign2"      ],
"Get String or Character",      		  ["$p1 TestGetch"        , "$p2 TestGetch"        ],
"Concatenation",   						  ["$p1 TestCatenate"     , "$p2 TestCatenate"     ],
"String Scanning(char)",     		      ["$p1 TestScan"         , "$p2 TestScan"         ],
"String Scanning(string)",       		  ["$p1 TestScan1"        , "$p2 TestScan1"        ],
"String Scanning(char set)",       	      ["$p1 TestScan2"        , "$p2 TestScan2"        ],
};


runTests($options, $tests, $dataFiles);