| Index: source/test/intltest/rndmcoll.cpp
|
| diff --git a/source/test/intltest/rndmcoll.cpp b/source/test/intltest/rndmcoll.cpp
|
| deleted file mode 100644
|
| index be15570c67b313ea3fddb8b72dc2799150083ccc..0000000000000000000000000000000000000000
|
| --- a/source/test/intltest/rndmcoll.cpp
|
| +++ /dev/null
|
| @@ -1,176 +0,0 @@
|
| -/*
|
| - ******************************************************************************
|
| - * Copyright (C) 2005-2007, International Business Machines Corporation and *
|
| - * others. All Rights Reserved. *
|
| - ******************************************************************************
|
| - */
|
| -#include <stdio.h>
|
| -#include <string.h>
|
| -#include <stdlib.h>
|
| -#include <time.h>
|
| -#include "rndmcoll.h"
|
| -#include "wbnf.h"
|
| -
|
| -
|
| -#if !UCONFIG_NO_COLLATION
|
| -
|
| -//Raymond: Following comments are copied from Java implementation
|
| -//
|
| -// each rule can be:
|
| -// "[" command "]"
|
| -// "& [" position "]"
|
| -// "&" before chars
|
| -// relation "[variable top]"
|
| -// relation (chars "|")? chars ("/" chars)?
|
| -// plus, a reset must come before a relation
|
| -
|
| -
|
| -static const char collationBNF[] =
|
| - "$s = ' '? 50%;"
|
| - "$crlf = '\r\n';"
|
| -
|
| - "$alternateOptions = non'-'ignorable | shifted;"
|
| - "$onoff = on | off;"
|
| - "$caseFirstOptions = off | upper | lower;"
|
| - "$strengthOptions = '1' | '2' | '3' | '4' | 'I';"
|
| - "$commandList = '['"
|
| - " ( alternate ' ' $alternateOptions"
|
| - " | backwards' 2'"
|
| - " | normalization ' ' $onoff "
|
| - " | caseLevel ' ' $onoff "
|
| - " | hiraganaQ ' ' $onoff"
|
| - " | caseFirst ' ' $caseFirstOptions"
|
| - " | strength ' ' $strengthOptions"
|
| - " ) ']';"
|
| - "$command = $commandList $crlf;"
|
| -
|
| - "$ignorableTypes = (tertiary | secondary | primary) ' ' ignorable;"
|
| - "$allTypes = variable | regular | implicit | trailing | $ignorableTypes;"
|
| - "$positionList = '[' (first | last) ' ' $allTypes ']';"
|
| -
|
| - "$beforeList = '[before ' ('1' | '2' | '3') ']';"
|
| -
|
| - "$relationList = ("
|
| - " '<'"
|
| - " | '<<'"
|
| - " | ';'"
|
| - " | '<<<'"
|
| - " | ','"
|
| - " | '='"
|
| - ");"
|
| - "$string = $chars{1,5}~@;"
|
| - "$chars = a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z| '<'| '&'| '['| ']';"
|
| - "$rel1 = '[variable top]' $s;"
|
| - "$p1 = ($string $s '|' $s)? 25%;"
|
| - "$p2 = ('/' $s $string $s)? 25%;"
|
| - "$rel2 = $p1 $string $s $p2;"
|
| - "$relation = $relationList $s ($rel1 | $rel2) $crlf;"
|
| -
|
| - "$reset = '&' $s ($beforeList $s)? 10% ($positionList 1% | $string 10%) $crlf;"
|
| - "$mostRules = $command 1% | $reset 5% | $relation 25%;"
|
| - "$root = $command{0,5} $reset $mostRules{1,20};";
|
| -
|
| -
|
| -void RandomCollatorTest::Test2(){
|
| - // See ticket 5747 about reenabling this test.
|
| - errln("TestWbnf is incorrectly implemented.\nThis test should be modeled to use the existing test frame work for naming tests.\n");
|
| - TestWbnf();
|
| -}
|
| -
|
| -
|
| -void RandomCollatorTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* ){
|
| - if (exec) logln("TestSuite RandomCollatorTest: ");
|
| - switch (index) {
|
| - TESTCASE(0, Test);
|
| - TESTCASE(1, Test2);
|
| - default: name = ""; break;
|
| - }
|
| -}
|
| -
|
| -/*
|
| -class TestColltorCompare{
|
| -public:
|
| - UBool operator()(Collator &coll, int count = 1000){
|
| - UnicodeString a(test_string.get_a_string());
|
| - UnicodeString b(test_string.get_a_string());
|
| - UnicodeString c(test_string.get_a_string());
|
| - do{
|
| - if (check_transitivity(coll, a, b, c)){
|
| - a = b;
|
| - b = c;
|
| - c = UnicodeString(test_string.get_a_string());
|
| - }
|
| - }while(count-- >= 0 );
|
| -
|
| - return FALSE;
|
| - }
|
| - TestColltorCompare():test_string("$s = $c{1,8};", "$s", "$c", new Magic_SelectOneChar("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]&<")){
|
| - }
|
| -private:
|
| - UBool check_transitivity(const Collator & coll, const UnicodeString &a, const UnicodeString &b, const UnicodeString &c){
|
| - int ab = coll.compare(a,b), ba = coll.compare(b,a);
|
| - int bc = coll.compare(b,c), cb = coll.compare(c,b);
|
| - int ca = coll.compare(c,a), ac = coll.compare(a,c);
|
| - // a
|
| - // / \
|
| - // b - c
|
| - //
|
| - if (//counter-clockwise, maximum
|
| - (ab >=0 && bc >=0 && ac <0)
|
| - ||(bc >=0 && ca >=0 && ba <0)
|
| - ||(ca >=0 && ab >=0 && cb <0)
|
| -
|
| - //counter-clockwise, minimum
|
| - ||(ab <=0 && bc <=0 && ca >0)
|
| - ||(bc <=0 && ca <=0 && ba >0)
|
| - ||(ca <=0 && ab <=0 && cb >0)
|
| - ){
|
| - return FALSE;
|
| - }
|
| - return TRUE;
|
| - }
|
| -
|
| - LanguageGenerator test_string;
|
| -};*/
|
| -
|
| -void RandomCollatorTest::Test(){
|
| - // See ticket 5747 about reenabling this test.
|
| - errln("This test needs to be fixed.\n");
|
| -
|
| - LanguageGenerator test_rule;
|
| - if (test_rule.parseBNF(collationBNF, "$root", TRUE) != LanguageGenerator::OK){
|
| - errln("The test code itself is wrong.");
|
| - return;
|
| - };
|
| -
|
| - //TestColltorCompare coll_test;
|
| -
|
| - static const int CONSTRUCT_RANDOM_COUNT = 1000;
|
| - int i;
|
| - for (i=0; i < CONSTRUCT_RANDOM_COUNT; i++){
|
| - const char * rule = test_rule.next();
|
| - logln("\n-----------------------------------%d\n",i);
|
| - logln(UnicodeString(rule, strlen(rule)));
|
| -
|
| - UnicodeString newRule(rule); // potential bug
|
| - UErrorCode status = U_ZERO_ERROR;
|
| - logln( "===========================================\n");
|
| - fwrite(rule, strlen(rule),1,stdout);
|
| - logln("\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
|
| -
|
| - Collator * c = new RuleBasedCollator(newRule,status);
|
| -
|
| - if (U_FAILURE(status)) {
|
| - errln( "Could not create Collator for the %d(th) generated rule.\n"
|
| - "Error Name: %s\n"
|
| - "The rule is ",
|
| - i, u_errorName(status));
|
| - return;
|
| - }
|
| -
|
| - delete c;
|
| - }
|
| -}
|
| -
|
| -#endif /* #if !UCONFIG_NO_COLLATION */
|
| -
|
|
|