#!/usr/bin/perl
#  ********************************************************************
#  * COPYRIGHT:
#  * Copyright (c) 2002, 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);


