ICU-329 Fix tests to reflect API changes.

X-SVN-Rev: 5654
This commit is contained in:
Ram Viswanadha 2001-08-31 03:24:28 +00:00
parent e7042af1b8
commit 88f30a02e2
7 changed files with 202 additions and 116 deletions

View file

@ -44,11 +44,13 @@ void CompoundTransliteratorTest::runIndexedTest( int32_t index, UBool exec, cons
void CompoundTransliteratorTest::TestConstruction(){
logln("Testing the construction of the compound Transliterator");
UnicodeString names[]={"Greek-Latin", "Latin-Devanagari", "Devanagari-Latin", "Latin-Greek"};
Transliterator* t1=Transliterator::createInstance(names[0]);
Transliterator* t2=Transliterator::createInstance(names[1]);
Transliterator* t3=Transliterator::createInstance(names[2]);
Transliterator* t4=Transliterator::createInstance(names[3]);
if(t1 == 0 || t2 == 0 || t3 == 0 || t4 == 0){
UParseError parseError;
UErrorCode status=U_ZERO_ERROR;
Transliterator* t1=Transliterator::createInstance(names[0], UTRANS_FORWARD, parseError, status);
Transliterator* t2=Transliterator::createInstance(names[1], UTRANS_FORWARD, parseError, status);
Transliterator* t3=Transliterator::createInstance(names[2], UTRANS_FORWARD, parseError, status);
Transliterator* t4=Transliterator::createInstance(names[3], UTRANS_FORWARD, parseError, status);
if(U_FAILURE(status)){
errln("Transliterator construction failed");
return;
}
@ -74,8 +76,8 @@ void CompoundTransliteratorTest::TestConstruction(){
uint16_t i=0;
for(i=0; i<4; i++){
UErrorCode status = U_ZERO_ERROR;
CompoundTransliterator *cpdtrans=new CompoundTransliterator(IDs[i], status);
status = U_ZERO_ERROR;
CompoundTransliterator *cpdtrans=new CompoundTransliterator(IDs[i],parseError, status);
if (U_FAILURE(status)) {
errln("Construction using CompoundTransliterator(UnicodeString&, Direction, UnicodeFilter*) failed");
}
@ -101,7 +103,7 @@ void CompoundTransliteratorTest::TestConstruction(){
{
/*Test Jitterbug 914 */
UErrorCode err = U_ZERO_ERROR;
CompoundTransliterator cpdTrans(UnicodeString("Latin-Hangul"),UTRANS_REVERSE,NULL,err);
CompoundTransliterator cpdTrans(UnicodeString("Latin-Hangul"),UTRANS_REVERSE,NULL,parseError,err);
UnicodeString newID =cpdTrans.getID();
if(newID!=UnicodeString("Hangul-Latin")){
errln(UnicodeString("Test for Jitterbug 914 for cpdTrans(UnicodeString(\"Latin-Hangul\"),UTRANS_REVERSE,NULL,err) failed"));
@ -117,13 +119,14 @@ void CompoundTransliteratorTest::TestConstruction(){
void CompoundTransliteratorTest::TestCloneEqual(){
logln("Testing the clone() and equality operator functions of Compound Transliterator");
UErrorCode status = U_ZERO_ERROR;
CompoundTransliterator *ct1=new CompoundTransliterator("Greek-Latin;Latin-Devanagari", status);
UParseError parseError;
CompoundTransliterator *ct1=new CompoundTransliterator("Greek-Latin;Latin-Devanagari",parseError,status);
if(U_FAILURE(status)){
errln("construction failed");
delete ct1;
return;
}
CompoundTransliterator *ct2=new CompoundTransliterator("Greek-Latin", status);
CompoundTransliterator *ct2=new CompoundTransliterator("Greek-Latin", parseError, status);
if(U_FAILURE(status)){
errln("construction failed");
delete ct1;
@ -187,10 +190,11 @@ void CompoundTransliteratorTest::TestCloneEqual(){
void CompoundTransliteratorTest::TestGetCount(){
logln("Testing the getCount() API of CompoundTransliterator");
UErrorCode status = U_ZERO_ERROR;
CompoundTransliterator *ct1=new CompoundTransliterator("Halfwidth-Fullwidth;Fullwidth-Halfwidth", status);
CompoundTransliterator *ct2=new CompoundTransliterator("Any-Hex;Hex-Any;Cyrillic-Latin;Latin-Cyrillic", status);
UParseError parseError;
CompoundTransliterator *ct1=new CompoundTransliterator("Halfwidth-Fullwidth;Fullwidth-Halfwidth", parseError, status);
CompoundTransliterator *ct2=new CompoundTransliterator("Any-Hex;Hex-Any;Cyrillic-Latin;Latin-Cyrillic", parseError, status);
CompoundTransliterator *ct3=(CompoundTransliterator*)ct1;
CompoundTransliterator *ct4=new CompoundTransliterator("Latin-Devanagari", status);
CompoundTransliterator *ct4=new CompoundTransliterator("Latin-Devanagari", parseError, status);
CompoundTransliterator *ct5=new CompoundTransliterator(*ct4);
if (U_FAILURE(status)) {
@ -213,7 +217,8 @@ void CompoundTransliteratorTest::TestGetSetAdoptTransliterator(){
logln("Testing the getTransliterator() API of CompoundTransliterator");
UnicodeString ID("Latin-Greek;Greek-Latin;Latin-Devanagari;Devanagari-Latin;Latin-Cyrillic;Cyrillic-Latin;Any-Hex;Hex-Any");
UErrorCode status = U_ZERO_ERROR;
CompoundTransliterator *ct1=new CompoundTransliterator(ID, status);
UParseError parseError;
CompoundTransliterator *ct1=new CompoundTransliterator(ID, parseError, status);
if(U_FAILURE(status)){
errln("CompoundTransliterator construction failed");
delete ct1;
@ -237,8 +242,13 @@ void CompoundTransliteratorTest::TestGetSetAdoptTransliterator(){
array=split(ID2, 0x003b, count);
Transliterator** transarray=new Transliterator*[count];
for(i=0;i<count;i++){
transarray[i]=Transliterator::createInstance(*(array+i));
logln("The ID for the transltierator created is " + transarray[i]->getID());
transarray[i]=Transliterator::createInstance(*(array+i), UTRANS_FORWARD, parseError, status);
if(U_FAILURE(status)){
errln("Error could not create Transliterator with ID :"+*(array+i));
}else{
logln("The ID for the transltierator created is " + transarray[i]->getID());
}
status = U_ZERO_ERROR;
}
/*setTransliterator and adoptTransliterator */
@ -264,7 +274,7 @@ void CompoundTransliteratorTest::TestGetSetAdoptTransliterator(){
}*/
logln("Testing adoptTransliterator() API of CompoundTransliterator");
UnicodeString ID3("Latin-Kana");
Transliterator *transarray2[]={Transliterator::createInstance(ID3)};
Transliterator *transarray2[]={Transliterator::createInstance(ID3,UTRANS_FORWARD,parseError,status)};
if (transarray2[0] != 0) {
ct1->adoptTransliterators(transarray2, 1);
}
@ -308,7 +318,8 @@ UnicodeString* CompoundTransliteratorTest::split(const UnicodeString& str, UChar
void CompoundTransliteratorTest::TestTransliterate(){
logln("Testing the handleTransliterate() API of CompoundTransliterator");
UErrorCode status = U_ZERO_ERROR;
CompoundTransliterator *ct1=new CompoundTransliterator("Any-Hex;Hex-Any", status);
UParseError parseError;
CompoundTransliterator *ct1=new CompoundTransliterator("Any-Hex;Hex-Any",parseError, status);
if(U_FAILURE(status)){
errln("CompoundTransliterator construction failed");
}else {
@ -347,7 +358,8 @@ void CompoundTransliteratorTest::TestTransliterate(){
uint32_t i;
for(i=0; i<sizeof(Data)/sizeof(Data[0]); i=i+3){
UErrorCode status = U_ZERO_ERROR;
CompoundTransliterator *ct2=new CompoundTransliterator(Data[i+0], status);
CompoundTransliterator *ct2=new CompoundTransliterator(Data[i+0], parseError, status);
if(U_FAILURE(status)){
errln("CompoundTransliterator construction failed for " + Data[i+0]);
} else {

View file

@ -36,14 +36,16 @@ JamoTest::runIndexedTest(int32_t index, UBool exec,
void
JamoTest::TestJamo() {
Transliterator* latinJamo = Transliterator::createInstance("Latin-Jamo");
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator* latinJamo = Transliterator::createInstance("Latin-Jamo", UTRANS_FORWARD, parseError, status);
if (latinJamo == 0) {
if (latinJamo == 0 || U_FAILURE(status)) {
errln("FAIL: createInstance() returned 0");
return;
}
Transliterator* jamoLatin = latinJamo->createInverse();
Transliterator* jamoLatin = latinJamo->createInverse(status);
if (jamoLatin == 0) {
delete latinJamo;
@ -232,16 +234,18 @@ JamoTest::TestRealText() {
enum { WHAT_IS_UNICODE_length = sizeof(WHAT_IS_UNICODE) / sizeof(WHAT_IS_UNICODE[0]) };
Transliterator* latinJamo = Transliterator::createInstance("Latin-Jamo");
Transliterator* jamoHangul = Transliterator::createInstance("Jamo-Hangul");
if (latinJamo == 0 || jamoHangul == 0) {
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator* latinJamo = Transliterator::createInstance("Latin-Jamo", UTRANS_FORWARD, parseError, status);
Transliterator* jamoHangul = Transliterator::createInstance("Jamo-Hangul", UTRANS_FORWARD, parseError, status);
if (latinJamo == 0 || jamoHangul == 0 || U_FAILURE(status)) {
delete latinJamo;
delete jamoHangul;
errln("FAIL: createInstance returned NULL");
return;
}
Transliterator* jamoLatin = latinJamo->createInverse();
Transliterator* hangulJamo = jamoHangul->createInverse();
Transliterator* jamoLatin = latinJamo->createInverse(status);
Transliterator* hangulJamo = jamoHangul->createInverse(status);
if (jamoLatin == 0 || hangulJamo == 0) {
errln("FAIL: createInverse returned NULL");
delete latinJamo;

View file

@ -55,7 +55,7 @@ void TransliteratorAPITest::runIndexedTest( int32_t index, UBool exec, const cha
case 10: name = "TestGetAdoptFilter"; if (exec) TestGetAdoptFilter(); break;
case 11: name = "TestClone"; if (exec) TestClone(); break;
case 12: name = "TestNullTransliterator"; if (exec) TestNullTransliterator(); break;
case 13: name = "TestRegisterUnregister"; if(exec) TestRegisterUnregister(); break;
case 13: name = "TestRegisterUnregister"; if(exec) TestRegisterUnregister(); break;
default: name = ""; break; /*needed to end loop*/
}
}
@ -64,10 +64,13 @@ void TransliteratorAPITest::runIndexedTest( int32_t index, UBool exec, const cha
void TransliteratorAPITest::TestgetID() {
UnicodeString trans="Latin-Greek";
UnicodeString ID;
Transliterator* t= Transliterator::createInstance(trans);
if(t==0)
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator* t= Transliterator::createInstance(trans, UTRANS_FORWARD, parseError, status);
if(t==0 || U_FAILURE(status)){
errln("FAIL: construction");
else{
status = U_ZERO_ERROR;
}else{
ID= t->getID();
if(ID != trans)
errln("FAIL: getID returned " + ID + " instead of Latin-Greek");
@ -75,7 +78,7 @@ void TransliteratorAPITest::TestgetID() {
int i;
for (i=0; i<Transliterator::countAvailableIDs(); i++){
ID = (UnicodeString) Transliterator::getAvailableID(i);
t = Transliterator::createInstance(ID);
t = Transliterator::createInstance(ID, UTRANS_FORWARD, parseError, status);
if(t == 0){
errln("FAIL: " + ID);
continue;
@ -90,8 +93,8 @@ void TransliteratorAPITest::TestgetID() {
delete t;
Transliterator* t1=Transliterator::createInstance("Latin-Devanagari");
Transliterator* t2=Transliterator::createInstance("Latin-Hebrew");
Transliterator* t1=Transliterator::createInstance("Latin-Devanagari", UTRANS_FORWARD, parseError, status);
Transliterator* t2=Transliterator::createInstance("Latin-Hebrew", UTRANS_FORWARD, parseError, status);
if(t1 ==0 || t2 == 0){
errln("FAIL: construction");
return;
@ -105,7 +108,7 @@ void TransliteratorAPITest::TestgetID() {
errln("FAIL: getID or clone failed");
Transliterator* t5=Transliterator::createInstance("Latin-Devanagari");
Transliterator* t5=Transliterator::createInstance("Latin-Devanagari", UTRANS_FORWARD, parseError, status);
if(t5 == 0)
errln("FAIL: construction");
if(t1->getID() != t5->getID() || t5->getID() != t3->getID() || t1->getID() != t3->getID())
@ -120,17 +123,19 @@ void TransliteratorAPITest::TestgetID() {
}
void TransliteratorAPITest::TestgetInverse() {
Transliterator* t1 = Transliterator::createInstance("Kana-Latin");
Transliterator* invt1 = Transliterator::createInstance("Latin-Kana");
Transliterator* t2 = Transliterator::createInstance("Latin-Devanagari");
Transliterator* invt2 = Transliterator::createInstance("Devanagari-Latin");
UErrorCode status = U_ZERO_ERROR;
UParseError parseError;
Transliterator* t1 = Transliterator::createInstance("Kana-Latin", UTRANS_FORWARD, parseError, status);
Transliterator* invt1 = Transliterator::createInstance("Latin-Kana", UTRANS_FORWARD, parseError, status);
Transliterator* t2 = Transliterator::createInstance("Latin-Devanagari", UTRANS_FORWARD, parseError, status);
Transliterator* invt2 = Transliterator::createInstance("Devanagari-Latin", UTRANS_FORWARD, parseError, status);
if(t1 == 0 || invt1 == 0 || t2 == 0 || invt2 == 0) {
errln("FAIL: in instantiation");
return;
}
Transliterator* inverse1=t1->createInverse();
Transliterator* inverse2=t2->createInverse();
Transliterator* inverse1=t1->createInverse(status);
Transliterator* inverse2=t2->createInverse(status);
if(inverse1->getID() != invt1->getID() || inverse2->getID() != invt2->getID()
|| inverse1->getID() == invt2->getID() || inverse2->getID() == invt1->getID() )
errln("FAIL: getInverse() ");
@ -154,12 +159,12 @@ void TransliteratorAPITest::TestgetInverse() {
"Hex-Any"
};
for(uint32_t i=0; i<sizeof(TransID)/sizeof(TransID[0]); i=i+2){
t1=Transliterator::createInstance(TransID[i]);
t1=Transliterator::createInstance(TransID[i], UTRANS_FORWARD, parseError, status);
if(t1 == 0){
errln("FAIL: in instantiation for" + TransID[i]);
continue;
}
inverse1=t1->createInverse();
inverse1=t1->createInverse(status);
if(inverse1->getID() != TransID[i+1] )
errln("FAIL :getInverse() for " + TransID[i] + " returned " + inverse1->getID() + " instead of " + TransID[i+1]);
}
@ -172,8 +177,10 @@ void TransliteratorAPITest::TestgetInverse() {
void TransliteratorAPITest::TestClone(){
Transliterator *t1, *t2, *t3, *t4;
t1=Transliterator::createInstance("Latin-Devanagari");
t2=Transliterator::createInstance("Latin-Hebrew");
UErrorCode status = U_ZERO_ERROR;
UParseError parseError;
t1=Transliterator::createInstance("Latin-Devanagari", UTRANS_FORWARD, parseError, status);
t2=Transliterator::createInstance("Latin-Hebrew", UTRANS_FORWARD, parseError, status);
if(t1 == 0 || t2 == 0){
errln("FAIL: construction");
return;
@ -211,10 +218,13 @@ void TransliteratorAPITest::TestGetDisplayName() {
UnicodeString name="";
Transliterator* t;
UnicodeString message;
UErrorCode status = U_ZERO_ERROR;
UParseError parseError;
for (uint32_t i=0; i<sizeof(dispNames)/sizeof(dispNames[0]); i=i+2 ) {
t = Transliterator::createInstance(dispNames[i+0]);
t = Transliterator::createInstance(dispNames[i+0], UTRANS_FORWARD, parseError, status);
if(t==0){
errln("FAIL: construction: " + dispNames[i+0]);
status = U_ZERO_ERROR;
continue;
}
t->getDisplayName(t->getID(), name);
@ -239,10 +249,11 @@ void TransliteratorAPITest::TestTransliterate1(){
UnicodeString Data[]={
//ID, input string, transliterated string
"Any-Hex", "hello", UnicodeString("\\u0068\\u0065\\u006C\\u006C\\u006F", "") ,
"Any-Hex", "hello", UnicodeString("\\u0068\\u0065\\u006C\\u006C\\u006F", "") ,
"Hex-Any", UnicodeString("\\u0068\\u0065\\u006C\\u006C\\u006F", ""), "hello" ,
"Latin-Devanagari", "bhaarata", CharsToUnicodeString("\\u092D\\u093E\\u0930\\u0924") ,
"Devanagari-Latin", CharsToUnicodeString("\\u092D\\u093E\\u0930\\u0924"), "bhaarata" ,
"Latin-Devanagari","bhaarata", CharsToUnicodeString("\\u092D\\u093E\\u0930\\u0924") ,
"Devanagari-Latin", CharsToUnicodeString("\\u092D\\u093E\\u0930\\u0924"), UnicodeString("bhaarata"),
// "Contracted-Expanded", CharsToUnicodeString("\\u00C0\\u00C1\\u0042"), CharsToUnicodeString("\\u0041\\u0300\\u0041\\u0301\\u0042") ,
// "Expanded-Contracted", CharsToUnicodeString("\\u0041\\u0300\\u0041\\u0301\\u0042"), CharsToUnicodeString("\\u00C0\\u00C1\\u0042") ,
"Latin-Arabic", "aap", CharsToUnicodeString("\\u0627\\u06A4") ,
@ -254,16 +265,20 @@ void TransliteratorAPITest::TestTransliterate1(){
UnicodeString message;
Transliterator* t;
logln("Testing transliterate");
UErrorCode status = U_ZERO_ERROR;
UParseError parseError;
for(uint32_t i=0;i<sizeof(Data)/sizeof(Data[0]); i=i+3){
t=Transliterator::createInstance(Data[i+0]);
t=Transliterator::createInstance(Data[i+0], UTRANS_FORWARD, parseError, status);
if(t==0){
errln("FAIL: construction: " + Data[i+0]);
errln("FAIL: construction: " + Data[i+0] + " Error: " + u_errorName(status));
errln("PreContext: " + prettify(parseError.preContext) + " PostContext: " + prettify( parseError.postContext) );
status = U_ZERO_ERROR;
continue;
}
gotResult = Data[i+1];
t->transliterate(gotResult);
message=t->getID() + "->transliterate(UnicodeString, UnicodeString) for\n\t Source:" + Data[i+1];
message=t->getID() + "->transliterate(UnicodeString, UnicodeString) for\n\t Source:" + prettify(Data[i+1]);
doTest(message, gotResult, Data[i+2]);
//doubt here
@ -296,10 +311,13 @@ void TransliteratorAPITest::TestTransliterate2(){
UnicodeString gotResBuf;
UnicodeString temp;
int32_t start, limit;
UErrorCode status = U_ZERO_ERROR;
UParseError parseError;
for(uint32_t i=0; i<sizeof(Data2)/sizeof(Data2[0]); i=i+6){
t=Transliterator::createInstance(Data2[i+0]);
t=Transliterator::createInstance(Data2[i+0], UTRANS_FORWARD, parseError, status);
if(t==0){
errln("FAIL: construction: " + Data2[i+0]);
errln("FAIL: construction: " + prettify(Data2[i+0]));
continue;
}
start=getInt(Data2[i+2]);
@ -307,16 +325,17 @@ void TransliteratorAPITest::TestTransliterate2(){
Data2[i+1].extractBetween(start, limit, gotResBuf);
t->transliterate(gotResBuf);
// errln("FAIL: calling transliterate on " + t->getID());
doTest(t->getID() + ".transliterate(UnicodeString, int32_t, int32_t, UnicodeString):(" + start + "," + limit + ") for \n\t source: " + Data2[i+1], gotResBuf, Data2[i+4]);
doTest(t->getID() + ".transliterate(UnicodeString, int32_t, int32_t, UnicodeString):(" + start + "," + limit + ") for \n\t source: " + prettify(Data2[i+1]), gotResBuf, Data2[i+4]);
temp=Data2[i+1];
t->transliterate(temp, start, limit);
doTest(t->getID() + ".transliterate(Replaceable, int32_t, int32_t, ):(" + start + "," + limit + ") for \n\t source: " + Data2[i+1], temp, Data2[i+5]);
doTest(t->getID() + ".transliterate(Replaceable, int32_t, int32_t, ):(" + start + "," + limit + ") for \n\t source: " + prettify(Data2[i+1]), temp, Data2[i+5]);
status = U_ZERO_ERROR;
}
status = U_ZERO_ERROR;
logln("\n Try calling transliterate with illegal start and limit values");
t=Transliterator::createInstance("Any-Hex");
t=Transliterator::createInstance("Any-Hex", UTRANS_FORWARD, parseError, status);
gotResBuf = temp = "try start greater than limit";
t->transliterate(gotResBuf, 10, 5);
if(gotResBuf == temp)
@ -337,7 +356,9 @@ void TransliteratorAPITest::TestTransliterate3(){
};
int start, limit;
UnicodeString message;
Transliterator *t=Transliterator::createInstance("Any-Hex");
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator *t=Transliterator::createInstance("Any-Hex", UTRANS_FORWARD, parseError, status);
if(t == 0)
errln("FAIL : construction");
for(uint32_t i=0; i<sizeof(Data)/sizeof(Data[0]); i=i+3){
@ -352,7 +373,8 @@ void TransliteratorAPITest::TestTransliterate3(){
void TransliteratorAPITest::TestSimpleKeyboardTransliterator(){
logln("simple call to transliterate");
UErrorCode status=U_ZERO_ERROR;
Transliterator* t=Transliterator::createInstance("Any-Hex");
UParseError parseError;
Transliterator* t=Transliterator::createInstance("Any-Hex", UTRANS_FORWARD, parseError, status);
if(t == 0)
errln("FAIL : construction");
UTransPosition index={19,20,20,20};
@ -400,10 +422,11 @@ void TransliteratorAPITest::TestKeyboardTransliterator1(){
"", UnicodeString("\\u0061\\u0062\\u007A", "")
};
Transliterator* t=Transliterator::createInstance("Any-Hex");
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator* t=Transliterator::createInstance("Any-Hex", UTRANS_FORWARD, parseError, status);
//keyboardAux(t, Data);
UTransPosition index={0, 0, 0, 0};
UErrorCode status=U_ZERO_ERROR;
UnicodeString s;
uint32_t i;
logln("Testing transliterate(Replaceable, int32_t, UnicodeString, UErrorCode)");
@ -471,9 +494,10 @@ void TransliteratorAPITest::TestKeyboardTransliterator2(){
UnicodeString rs;
UnicodeString dataStr;
logln("Testing transliterate(Replaceable, int32_t, UnicodeString, UErrorCode)");
UErrorCode status = U_ZERO_ERROR;
UParseError parseError;
rs="Initial String: add--";
t=Transliterator::createInstance("Any-Hex");
t=Transliterator::createInstance("Any-Hex", UTRANS_FORWARD, parseError, status);
if(t == 0)
errln("FAIL : construction");
else {
@ -482,7 +506,7 @@ void TransliteratorAPITest::TestKeyboardTransliterator2(){
}
rs="Hindi --";
t=Transliterator::createInstance("Latin-Devanagari");
t=Transliterator::createInstance("Latin-Devanagari", UTRANS_FORWARD, parseError, status);
if(t == 0)
errln("FAIL : construction");
else
@ -506,9 +530,10 @@ void TransliteratorAPITest::TestKeyboardTransliterator3(){
};
UErrorCode status=U_ZERO_ERROR;
UParseError parseError;
UTransPosition index={0, 0, 0, 0};
logln("Testing transliterate(Replaceable, int32_t, UErrorCode)");
Transliterator *t=Transliterator::createInstance("Any-Hex");
Transliterator *t=Transliterator::createInstance("Any-Hex", UTRANS_FORWARD, parseError, status);
if(t == 0)
errln("FAIL : construction");
for(uint32_t i=0; i<sizeof(Data)/sizeof(Data[0]); i=i+4){
@ -560,9 +585,9 @@ void TransliteratorAPITest::TestNullTransliterator(){
void TransliteratorAPITest::TestRegisterUnregister(){
UErrorCode status=U_ZERO_ERROR;
UParseError parseError;
/* Make sure it doesn't exist */
if (Transliterator::createInstance("TestA-TestB") != NULL) {
if (Transliterator::createInstance("TestA-TestB", UTRANS_FORWARD, parseError, status) != NULL) {
errln("FAIL: TestA-TestB already registered\n");
return;
}
@ -573,6 +598,7 @@ void TransliteratorAPITest::TestRegisterUnregister(){
return;
}
*/
status =U_ZERO_ERROR;
/* Create it */
Transliterator *t = new RuleBasedTransliterator("TestA-TestB",
@ -582,7 +608,7 @@ void TransliteratorAPITest::TestRegisterUnregister(){
Transliterator::registerInstance(t);
/* Now check again -- should exist now*/
Transliterator *s = Transliterator::createInstance("TestA-TestB");
Transliterator *s = Transliterator::createInstance("TestA-TestB", UTRANS_FORWARD, parseError, status);
if (s == NULL) {
errln("FAIL: TestA-TestB not registered\n");
return;
@ -602,7 +628,7 @@ void TransliteratorAPITest::TestRegisterUnregister(){
/*unregister the instance*/
Transliterator::unregister("TestA-TestB");
/* now Make sure it doesn't exist */
if (Transliterator::createInstance("TestA-TestB") != NULL) {
if (Transliterator::createInstance("TestA-TestB", UTRANS_FORWARD, parseError, status) != NULL) {
errln("FAIL: TestA-TestB isn't unregistered\n");
return;
}
@ -650,7 +676,9 @@ class TestFilter3 : public UnicodeFilter {
void TransliteratorAPITest::TestGetAdoptFilter(){
Transliterator *t=Transliterator::createInstance("Any-Hex");
UErrorCode status;
UParseError parseError;
Transliterator *t=Transliterator::createInstance("Any-Hex", UTRANS_FORWARD, parseError, status);
if(t == 0)
errln("FAIL : construction");
const UnicodeFilter *u=t->getFilter();
@ -764,7 +792,7 @@ void TransliteratorAPITest::displayOutput(const UnicodeString& got, const Unicod
/*Internal Functions used*/
void TransliteratorAPITest::doTest(const UnicodeString& message, const UnicodeString& result, const UnicodeString& expected){
if (result == expected)
if (prettify(result) == prettify(expected))
logln((UnicodeString)"Ok: " + prettify(message) + " passed \"" + prettify(expected) + "\"");
else
errln((UnicodeString)"FAIL:" + message + " failed Got-->" + prettify(result)+ ", Expected--> " + prettify(expected) );

View file

@ -54,6 +54,10 @@ public:
void TestRegisterUnregister(void);
void TestLatinDevanagari(void);
void TestDevanagariLatinRT(void);
/*Internal functions used*/
void doTest(const UnicodeString& , const UnicodeString& , const UnicodeString& );

View file

@ -220,14 +220,15 @@ void RTTest::test2() {
UChar c;
UnicodeString cs, targ, reverse;
int8_t *type = new int8_t[0xFFFF];
Transliterator* sourceToTarget = Transliterator::createInstance(transliteratorID);
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator* sourceToTarget = Transliterator::createInstance(transliteratorID, UTRANS_FORWARD, parseError, status);
if (sourceToTarget == NULL) {
log->errln("Fail: createInstance(" + transliteratorID +
") returned NULL");
return;
}
Transliterator* targetToSource = sourceToTarget->createInverse();
Transliterator* targetToSource = sourceToTarget->createInverse(status);
if (targetToSource == NULL) {
log->errln("Fail: " + transliteratorID +
".createInverse() returned NULL");

View file

@ -93,8 +93,9 @@ void TransliteratorTest::TestInstantiation() {
continue;
}
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator* t = Transliterator::createInstance(id,
UTRANS_FORWARD, &parseError);
UTRANS_FORWARD, parseError,status);
name.truncate(0);
Transliterator::getDisplayName(id, name);
if (t == 0) {
@ -102,7 +103,9 @@ void TransliteratorTest::TestInstantiation() {
/*", parse error " + parseError.code +*/
", line " + parseError.line +
", offset " + parseError.offset +
", context " + prettify(parseError.preContext, TRUE));
", pre-context " + prettify(parseError.preContext, TRUE) +
", post-context " +prettify(parseError.postContext,TRUE) +
", Error: " + u_errorName(status));
// When createInstance fails, it deletes the failing
// entry from the available ID list. We detect this
// here by looking for a change in countAvailableIDs.
@ -118,7 +121,7 @@ void TransliteratorTest::TestInstantiation() {
UnicodeString rules;
t->toRules(rules, TRUE);
Transliterator *u = Transliterator::createFromRules("x",
rules, UTRANS_FORWARD, &parseError);
rules, UTRANS_FORWARD, parseError,status);
if (u == 0) {
errln(UnicodeString("FAIL: ") + id +
".toRules() => bad rules" +
@ -135,8 +138,10 @@ void TransliteratorTest::TestInstantiation() {
}
// Now test the failure path
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
UnicodeString id("<Not a valid Transliterator ID>");
Transliterator* t = Transliterator::createInstance(id);
Transliterator* t = Transliterator::createInstance(id, UTRANS_FORWARD, parseError, status);
if (t != 0) {
errln("FAIL: " + id + " returned a transliterator");
delete t;
@ -418,8 +423,9 @@ void TransliteratorTest::TestArabic(void) {
0x062c, 0x0645, 0x064a, 0x0644, 0x0629, 0
};
UnicodeString ar(ar_raw);
Transliterator *t = Transliterator::createInstance("Latin-Arabic");
UErrorCode status=U_ZERO_ERROR;
UParseError parseError;
Transliterator *t = Transliterator::createInstance("Latin-Arabic", UTRANS_FORWARD, parseError, status);
if (t == 0) {
errln("FAIL: createInstance failed");
return;
@ -433,7 +439,9 @@ void TransliteratorTest::TestArabic(void) {
* some strings that should come out unchanged.
*/
void TransliteratorTest::TestCompoundKana(void) {
Transliterator* t = Transliterator::createInstance("Latin-Kana;Kana-Latin");
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator* t = Transliterator::createInstance("Latin-Kana;Kana-Latin", UTRANS_FORWARD, parseError, status);
if (t == 0) {
errln("FAIL: construction of Latin-Kana;Kana-Latin failed");
} else {
@ -446,8 +454,10 @@ void TransliteratorTest::TestCompoundKana(void) {
* Compose the hex transliterators forward and reverse.
*/
void TransliteratorTest::TestCompoundHex(void) {
Transliterator* a = Transliterator::createInstance("Any-Hex");
Transliterator* b = Transliterator::createInstance("Hex-Any");
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator* a = Transliterator::createInstance("Any-Hex", UTRANS_FORWARD, parseError, status);
Transliterator* b = Transliterator::createInstance("Hex-Any", UTRANS_FORWARD, parseError, status);
Transliterator* transab[] = { a, b };
Transliterator* transba[] = { b, a };
if (a == 0 || b == 0) {
@ -492,7 +502,9 @@ class TestFilter : public UnicodeFilter {
* Do some basic tests of filtering.
*/
void TransliteratorTest::TestFiltering(void) {
Transliterator* hex = Transliterator::createInstance("Any-Hex");
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator* hex = Transliterator::createInstance("Any-Hex", UTRANS_FORWARD, parseError, status);
if (hex == 0) {
errln("FAIL: createInstance(Any-Hex) failed");
return;
@ -567,7 +579,8 @@ void TransliteratorTest::TestPatternQuoting(void) {
*/
void TransliteratorTest::TestJ277(void) {
UErrorCode status = U_ZERO_ERROR;
Transliterator *gl = Transliterator::createInstance("Greek-Latin");
UParseError parseError;
Transliterator *gl = Transliterator::createInstance("Greek-Latin", UTRANS_FORWARD, parseError, status);
if (gl == NULL) {
errln("FAIL: createInstance(Greek-Latin) returned NULL");
return;
@ -863,8 +876,10 @@ void TransliteratorTest::TestPositionHandling(void) {
* Test the Hiragana-Katakana transliterator.
*/
void TransliteratorTest::TestHiraganaKatakana(void) {
Transliterator* hk = Transliterator::createInstance("Hiragana-Katakana");
Transliterator* kh = Transliterator::createInstance("Katakana-Hiragana");
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator* hk = Transliterator::createInstance("Hiragana-Katakana", UTRANS_FORWARD, parseError, status);
Transliterator* kh = Transliterator::createInstance("Katakana-Hiragana", UTRANS_FORWARD, parseError, status);
if (hk == 0 || kh == 0) {
errln("FAIL: createInstance failed");
delete hk;
@ -932,7 +947,9 @@ void TransliteratorTest::TestCopyJ476(void) {
*/
void TransliteratorTest::TestInterIndic(void) {
UnicodeString ID("Devanagari-Gujarati", "");
Transliterator* dg = Transliterator::createInstance(ID);
UErrorCode status = U_ZERO_ERROR;
UParseError parseError;
Transliterator* dg = Transliterator::createInstance(ID, UTRANS_FORWARD, parseError, status);
if (dg == 0) {
errln("FAIL: createInstance(" + ID + ") returned NULL");
return;
@ -976,7 +993,9 @@ void TransliteratorTest::TestFilterIDs(void) {
UnicodeString uID(DATA[i+1], "");
UnicodeString data2(DATA[i+2], "");
UnicodeString data3(DATA[i+3], "");
Transliterator *t = Transliterator::createInstance(ID);
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator *t = Transliterator::createInstance(ID, UTRANS_FORWARD, parseError, status);
if (t == 0) {
errln("FAIL: createInstance(" + ID + ") returned NULL");
return;
@ -990,7 +1009,7 @@ void TransliteratorTest::TestFilterIDs(void) {
}
// Check the inverse
Transliterator *u = t->createInverse();
Transliterator *u = t->createInverse(status);
if (u == 0) {
errln("FAIL: " + ID + ".createInverse() returned NULL");
} else if (u->getID() != uID) {
@ -1007,12 +1026,14 @@ void TransliteratorTest::TestFilterIDs(void) {
* Test the case mapping transliterators.
*/
void TransliteratorTest::TestCaseMap(void) {
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator* toUpper =
Transliterator::createInstance("Any-Upper[^xyzXYZ]");
Transliterator::createInstance("Any-Upper[^xyzXYZ]", UTRANS_FORWARD, parseError, status);
Transliterator* toLower =
Transliterator::createInstance("Any-Lower[^xyzXYZ]");
Transliterator::createInstance("Any-Lower[^xyzXYZ]", UTRANS_FORWARD, parseError, status);
Transliterator* toTitle =
Transliterator::createInstance("Any-Title[^xyzXYZ]");
Transliterator::createInstance("Any-Title[^xyzXYZ]", UTRANS_FORWARD, parseError, status);
if (toUpper==0 || toLower==0 || toTitle==0) {
errln("FAIL: createInstance returned NULL");
delete toUpper;
@ -1037,10 +1058,12 @@ void TransliteratorTest::TestCaseMap(void) {
* Test the name mapping transliterators.
*/
void TransliteratorTest::TestNameMap(void) {
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator* uni2name =
Transliterator::createInstance("Any-Name[^abc]");
Transliterator::createInstance("Any-Name[^abc]", UTRANS_FORWARD, parseError, status);
Transliterator* name2uni =
Transliterator::createInstance("Name-Any");
Transliterator::createInstance("Name-Any", UTRANS_FORWARD, parseError, status);
if (uni2name==0 || name2uni==0) {
errln("FAIL: createInstance returned NULL");
delete uni2name;
@ -1073,9 +1096,10 @@ void TransliteratorTest::TestLiberalizedID(void) {
" null ; latin-arabic ", NULL /*"Null;Latin-Arabic"*/, "compound whitespace",
};
const int32_t DATA_length = sizeof(DATA)/sizeof(DATA[0]);
UParseError parseError;
UErrorCode status= U_ZERO_ERROR;
for (int32_t i=0; i<DATA_length; i+=3) {
Transliterator *t = Transliterator::createInstance(DATA[i]);
Transliterator *t = Transliterator::createInstance(DATA[i], UTRANS_FORWARD, parseError, status);
if (t == 0) {
errln(UnicodeString("FAIL: ") + DATA[i+2] +
" cannot create ID \"" + DATA[i] + "\"");
@ -1102,8 +1126,9 @@ void TransliteratorTest::TestLiberalizedID(void) {
/* test for Jitterbug 912 */
void TransliteratorTest::TestCreateInstance(){
UParseError *err = 0;
Transliterator* myTrans = Transliterator::createInstance(UnicodeString("Latin-Hangul"),UTRANS_REVERSE,err);
UParseError err;
UErrorCode status = U_ZERO_ERROR;
Transliterator* myTrans = Transliterator::createInstance(UnicodeString("Latin-Hangul"),UTRANS_REVERSE,err,status);
if (myTrans == 0) {
errln("FAIL: createInstance failed");
return;
@ -1176,8 +1201,10 @@ void TransliteratorTest::TestNormalizationTransliterator() {
};
int32_t i;
Transliterator* NFD = Transliterator::createInstance("NFD");
Transliterator* NFC = Transliterator::createInstance("NFC");
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator* NFD = Transliterator::createInstance("NFD", UTRANS_FORWARD, parseError, status);
Transliterator* NFC = Transliterator::createInstance("NFC", UTRANS_FORWARD, parseError, status);
if (!NFD || !NFC) {
errln("FAIL: createInstance failed");
delete NFD;
@ -1194,8 +1221,8 @@ void TransliteratorTest::TestNormalizationTransliterator() {
delete NFD;
delete NFC;
Transliterator* NFKD = Transliterator::createInstance("NFKD");
Transliterator* NFKC = Transliterator::createInstance("NFKC");
Transliterator* NFKD = Transliterator::createInstance("NFKD", UTRANS_FORWARD, parseError, status);
Transliterator* NFKC = Transliterator::createInstance("NFKC", UTRANS_FORWARD, parseError, status);
if (!NFKD || !NFKC) {
errln("FAIL: createInstance failed");
delete NFKD;
@ -1225,7 +1252,9 @@ void TransliteratorTest::TestCompoundRBT(void) {
"a > '.A.';\n"
"b > '.B.';\n"
"::Any[^t]-Upper;", "");
Transliterator *t = Transliterator::createFromRules("Test", rule);
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator *t = Transliterator::createFromRules("Test", rule, UTRANS_FORWARD, parseError, status);
if (t == 0) {
errln("FAIL: createFromRules failed");
return;
@ -1243,7 +1272,7 @@ void TransliteratorTest::TestCompoundRBT(void) {
delete t;
// Now test toRules
t = Transliterator::createInstance("Greek-Latin; Latin-Cyrillic");
t = Transliterator::createInstance("Greek-Latin; Latin-Cyrillic", UTRANS_FORWARD, parseError, status);
if (t == 0) {
errln("FAIL: createInstance failed");
return;
@ -1259,7 +1288,7 @@ void TransliteratorTest::TestCompoundRBT(void) {
delete t;
// Round trip the result of toRules
t = Transliterator::createFromRules("Test", r);
t = Transliterator::createFromRules("Test", r, UTRANS_FORWARD, parseError, status);
if (t == 0) {
errln("FAIL: createFromRules #2 failed");
return;
@ -1281,7 +1310,7 @@ void TransliteratorTest::TestCompoundRBT(void) {
// Test Foo(Bar) IDs. Careful with spacing in id; make it conform
// to what the regenerated ID will look like.
UnicodeString id("Upper(Lower);(NFKC)", "");
t = Transliterator::createInstance(id);
t = Transliterator::createInstance(id, UTRANS_FORWARD, parseError, status);
if (t == 0) {
errln("FAIL: createInstance #2 failed");
return;
@ -1293,7 +1322,7 @@ void TransliteratorTest::TestCompoundRBT(void) {
").getID() => " + t->getID());
}
Transliterator *u = t->createInverse();
Transliterator *u = t->createInverse(status);
if (u == 0) {
errln("FAIL: createInverse failed");
delete t;
@ -1328,13 +1357,14 @@ void TransliteratorTest::TestCompoundRBT(void) {
* happens to go through "A", the Greek Alpha gets hung up.
*/
void TransliteratorTest::TestCompoundFilter(void) {
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator *t = Transliterator::createInstance
("Greek-Latin; Latin-Cyrillic; Lower");
("Greek-Latin; Latin-Cyrillic; Lower", UTRANS_FORWARD, parseError, status);
if (t == 0) {
errln("FAIL: createInstance failed");
return;
}
UErrorCode status = U_ZERO_ERROR;
t->adoptFilter(new UnicodeSet("[^A]", status));
if (U_FAILURE(status)) {
errln("FAIL: UnicodeSet ct failed");
@ -1350,7 +1380,9 @@ void TransliteratorTest::TestCompoundFilter(void) {
}
void TransliteratorTest::TestRemove(void) {
Transliterator *t = Transliterator::createInstance("Remove[abc]");
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator *t = Transliterator::createInstance("Remove[abc]", UTRANS_FORWARD, parseError, status);
if (t == 0) {
errln("FAIL: createInstance failed");
return;
@ -1417,8 +1449,10 @@ void TransliteratorTest::TestToRules(void) {
for (int32_t d=0; d < DATA_length; d+=3) {
if (DATA[d] == RBT) {
// Transliterator test
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator *t = Transliterator::createFromRules("ID",
DATA[d+1]);
DATA[d+1], UTRANS_FORWARD, parseError, status);
if (t == 0) {
errln("FAIL: createFromRules failed");
return;
@ -1629,8 +1663,10 @@ void TransliteratorTest::TestSTV(void) {
* Test inverse of Greek-Latin; Title()
*/
void TransliteratorTest::TestCompoundInverse(void) {
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator *t = Transliterator::createInstance
("Greek-Latin; Title()", UTRANS_REVERSE);
("Greek-Latin; Title()", UTRANS_REVERSE,parseError, status);
if (t == 0) {
errln("FAIL: crateInstance");
return;

View file

@ -60,8 +60,9 @@ class Filter2: public UnicodeFilter{
void UnicodeFilterLogicTest::TestAll(){
Transliterator *t1=Transliterator::createInstance("Any-Hex");
UParseError parseError;
UErrorCode status = U_ZERO_ERROR;
Transliterator *t1=Transliterator::createInstance("Any-Hex", UTRANS_FORWARD, parseError, status);
if(t1 == 0){
errln("FAIL: Error in instantiation.");
return;