void CollationFrenchTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ ) { if (exec) logln("TestSuite CollationFrenchTest: "); if((!myCollation) && exec) { dataerrln(__FILE__ " cannot test - failed to create collator."); name = "some test"; return; } switch (index) { case 0: name = "TestSecondary"; if (exec) TestSecondary(/* par */); break; case 1: name = "TestTertiary"; if (exec) TestTertiary(/* par */); break; case 2: name = "TestExtra"; if (exec) TestExtra(/* par */); break; default: name = ""; break; } }
void ResourceBundleTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ ) { if (exec) logln("TestSuite ResourceBundleTest: "); switch (index) { #if !UCONFIG_NO_FILE_IO && !UCONFIG_NO_LEGACY_CONVERSION case 0: name = "TestResourceBundles"; if (exec) TestResourceBundles(); break; case 1: name = "TestConstruction"; if (exec) TestConstruction(); break; case 2: name = "TestGetSize"; if (exec) TestGetSize(); break; case 3: name = "TestGetLocaleByType"; if (exec) TestGetLocaleByType(); break; #else case 0: case 1: case 2: case 3: name = "skip"; break; #endif case 4: name = "TestExemplar"; if (exec) TestExemplar(); break; default: name = ""; break; //needed to end loop } }
void ClassifierConfiguration::entryPoint(){ //_begin = time(0); if(!fileExists(outputFilename)){ buildClassifier(); }else{ logln("Output already exists: " + outputFilename); } //_end = time(0); ClassifierOutput *clOut = handleOutput(); writeToCSV(clOut); return terminateThread(); }
// use these for now void ICUServiceTest::confirmStringsEqual(const UnicodeString& message, const UnicodeString& lhs, const UnicodeString& rhs) { UBool equ = lhs == rhs; UnicodeString temp = message; temp.append(" lhs: "); temp.append(lhs); temp.append(" rhs: "); temp.append(rhs); if (equ) { logln(temp); } else { dataerrln(temp); } }
void MessageFormatRegressionTest::Test4052223() { ParsePosition pos(0); if (pos.getErrorIndex() != -1) { errln("ParsePosition.getErrorIndex initialization failed."); } UErrorCode status = U_ZERO_ERROR; MessageFormat *fmt = new MessageFormat("There are {0} apples growing on the {1} tree.", status); failure(status, "new MessageFormat"); UnicodeString str("There is one apple growing on the peach tree."); int32_t count = 0; fmt->parse(str, pos, count); logln(UnicodeString("unparsable string , should fail at ") + pos.getErrorIndex()); if (pos.getErrorIndex() == -1) errln("Bug 4052223 failed : parsing string " + str); pos.setErrorIndex(4); if (pos.getErrorIndex() != 4) errln(UnicodeString("setErrorIndex failed, got ") + pos.getErrorIndex() + " instead of 4"); ChoiceFormat *f = new ChoiceFormat( "-1#are negative|0#are no or fraction|1#is one|1.0<is 1+|2#are two|2<are more than 2.", status); failure(status, "new ChoiceFormat"); pos.setIndex(0); pos.setErrorIndex(-1); Formattable obj; f->parse("are negative", obj, pos); if (pos.getErrorIndex() != -1 && obj.getDouble() == -1.0) errln(UnicodeString("Parse with \"are negative\" failed, at ") + pos.getErrorIndex()); pos.setIndex(0); pos.setErrorIndex(-1); f->parse("are no or fraction ", obj, pos); if (pos.getErrorIndex() != -1 && obj.getDouble() == 0.0) errln(UnicodeString("Parse with \"are no or fraction\" failed, at ") + pos.getErrorIndex()); pos.setIndex(0); pos.setErrorIndex(-1); f->parse("go postal", obj, pos); if (pos.getErrorIndex() == -1 && ! uprv_isNaN(obj.getDouble())) errln(UnicodeString("Parse with \"go postal\" failed, at ") + pos.getErrorIndex()); delete fmt; delete f; }
void AlphabeticIndexTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ ) { if (exec) logln("TestSuite AlphabeticIndex: "); TESTCASE_AUTO_BEGIN; TESTCASE_AUTO(APITest); TESTCASE_AUTO(ManyLocalesTest); TESTCASE_AUTO(HackPinyinTest); TESTCASE_AUTO(TestBug9009); TESTCASE_AUTO(TestIndexCharactersList); TESTCASE_AUTO(TestHaniFirst); TESTCASE_AUTO(TestPinyinFirst); TESTCASE_AUTO(TestSchSt); TESTCASE_AUTO(TestNoLabels); TESTCASE_AUTO(TestChineseZhuyin); TESTCASE_AUTO(TestJapaneseKanji); TESTCASE_AUTO_END; }
void RBBIAPITest::doTest(UnicodeString& testString, int32_t start, int32_t gotoffset, int32_t expectedOffset, const char* expectedString){ UnicodeString selected; UnicodeString expected=CharsToUnicodeString(expectedString); if(gotoffset != expectedOffset) errln((UnicodeString)"ERROR:****returned #" + gotoffset + (UnicodeString)" instead of #" + expectedOffset); if(start <= gotoffset){ testString.extractBetween(start, gotoffset, selected); } else{ testString.extractBetween(gotoffset, start, selected); } if(selected.compare(expected) != 0) errln(prettify((UnicodeString)"ERROR:****selected \"" + selected + "\" instead of \"" + expected + "\"")); else logln(prettify("****selected \"" + selected + "\"")); }
void IntlCalendarTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ ) { if (exec) logln("TestSuite IntlCalendarTest"); switch (index) { CASE(0,TestTypes); CASE(1,TestGregorian); CASE(2,TestBuddhist); CASE(3,TestJapanese); CASE(4,TestBuddhistFormat); CASE(5,TestJapaneseFormat); CASE(6,TestJapanese3860); CASE(7,TestPersian); CASE(8,TestPersianFormat); CASE(9,TestTaiwan); default: name = ""; break; } }
/** * @bug 4071441 */ void DateFormatRegressionTest::Test4071441(void) { DateFormat *fmtA = DateFormat::createInstance(); DateFormat *fmtB = DateFormat::createInstance(); if (fmtA == NULL || fmtB == NULL){ dataerrln("Error calling DateFormat::createInstance"); delete fmtA; delete fmtB; return; } // {sfb} Is it OK to cast away const here? Calendar *calA = (Calendar*) fmtA->getCalendar(); Calendar *calB = (Calendar*) fmtB->getCalendar(); if(!calA || !calB) { errln("Couldn't get proper calendars, exiting"); delete fmtA; delete fmtB; return; } UDate epoch = date(0, 0, 0); UDate xmas = date(61, UCAL_DECEMBER, 25); UErrorCode status = U_ZERO_ERROR; calA->setTime(epoch, status); failure(status, "calA->setTime"); calB->setTime(epoch, status); failure(status, "calB->setTime"); if (*calA != *calB) errln("Fail: Can't complete test; Calendar instances unequal"); if (*fmtA != *fmtB) errln("Fail: DateFormat unequal when Calendars equal"); calB->setTime(xmas, status); failure(status, "calB->setTime"); if (*calA == *calB) errln("Fail: Can't complete test; Calendar instances equal"); if (*fmtA != *fmtB) errln("Fail: DateFormat unequal when Calendars equivalent"); logln("DateFormat.equals ok"); delete fmtA; delete fmtB; }
void BytesTrieTest::TestTruncatingIteratorFromRoot() { LocalPointer<BytesTrie> trie(buildMonthsTrie(USTRINGTRIE_BUILD_FAST)); if(trie.isNull()) { return; // buildTrie() reported an error } IcuTestErrorCode errorCode(*this, "TestTruncatingIteratorFromRoot()"); BytesTrie::Iterator iter(*trie, 4, errorCode); if(errorCode.logIfFailureAndReset("BytesTrie::Iterator(trie) constructor")) { return; } // Expected data: Same as in buildMonthsTrie(), except only the first 4 characters // of each string, and no string duplicates from the truncation. static const StringAndValue data[]={ { "augu", -1 }, { "jan", 1 }, { "jan.", 1 }, { "jana", 1 }, { "janb", -1 }, { "janc", 1 }, { "jand", -1 }, { "jane", -1 }, { "janf", 1 }, { "jang", -1 }, { "janh", 1 }, { "jani", -1 }, { "janj", 1 }, { "jank", -1 }, { "janl", 1 }, { "janm", 1 }, { "jann", -1 }, { "jano", 1 }, { "janp", -1 }, { "janq", -1 }, { "janr", 1 }, { "janu", -1 }, { "july", 7 }, { "jun", 6 }, { "jun.", 6 }, { "june", 6 } }; checkIterator(iter, data, UPRV_LENGTHOF(data)); // Reset, and we should get the same result. logln("after iter.reset()"); checkIterator(iter.reset(), data, UPRV_LENGTHOF(data)); }
/** * Test to see if DateFormat understands zone equivalency groups. It * might seem that this should be a DateFormat test, but it's really a * TimeZone test -- the changes to DateFormat are minor. * * We use two known, stable zones that shouldn't change much over time * -- America/Vancouver and America/Los_Angeles. However, they MAY * change at some point -- if that happens, replace them with any two * zones in an equivalency group where one zone has localized name * data, and the other doesn't, in some locale. */ void TimeZoneRegressionTest::TestJ449() { UErrorCode status = U_ZERO_ERROR; UnicodeString str; // Modify the following three as necessary. The two IDs must // specify two zones in the same equivalency group. One must have // locale data in 'loc'; the other must not. const char* idWithLocaleData = "America/Los_Angeles"; const char* idWithoutLocaleData = "US/Pacific"; const Locale loc("en", "", ""); TimeZone *zoneWith = TimeZone::createTimeZone(idWithLocaleData); TimeZone *zoneWithout = TimeZone::createTimeZone(idWithoutLocaleData); // Make sure we got valid zones if (zoneWith->getID(str) != UnicodeString(idWithLocaleData) || zoneWithout->getID(str) != UnicodeString(idWithoutLocaleData)) { dataerrln(UnicodeString("Fail: Unable to create zones - wanted ") + idWithLocaleData + ", got " + zoneWith->getID(str) + ", and wanted " + idWithoutLocaleData + " but got " + zoneWithout->getID(str)); } else { GregorianCalendar calWith(*zoneWith, status); GregorianCalendar calWithout(*zoneWithout, status); SimpleDateFormat fmt("MMM d yyyy hh:mm a zzz", loc, status); if (U_FAILURE(status)) { errln("Fail: Unable to create GregorianCalendar/SimpleDateFormat"); } else { UDate date = 0; UnicodeString strWith, strWithout; fmt.setCalendar(calWith); fmt.format(date, strWith); fmt.setCalendar(calWithout); fmt.format(date, strWithout); if (strWith == strWithout) { logln((UnicodeString)"Ok: " + idWithLocaleData + " -> " + strWith + "; " + idWithoutLocaleData + " -> " + strWithout); } else { errln((UnicodeString)"FAIL: " + idWithLocaleData + " -> " + strWith + "; " + idWithoutLocaleData + " -> " + strWithout); } } } delete zoneWith; delete zoneWithout; }
UnicodeString CanonicalIteratorTest::collectionToString(Hashtable *col) { UnicodeString result; // Iterate over the Hashtable, then qsort. UnicodeString **resArray = new UnicodeString*[col->count()]; int32_t i = 0; const UHashElement *ne = NULL; int32_t el = -1; //Iterator it = basic.iterator(); ne = col->nextElement(el); //while (it.hasNext()) while (ne != NULL) { //String item = (String) it.next(); UnicodeString *item = (UnicodeString *)(ne->value.pointer); resArray[i++] = item; ne = col->nextElement(el); } for(i = 0; i<col->count(); ++i) { logln(*resArray[i]); } qsort(resArray, col->count(), sizeof(UnicodeString *), compareUnicodeStrings); result = *resArray[0]; for(i = 1; i<col->count(); ++i) { result += ", "; result += *resArray[i]; } /* Iterator it = col.iterator(); while (it.hasNext()) { if (result.length() != 0) result.append(", "); result.append(it.next().toString()); } */ delete [] resArray; return result; }
void DecimalFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ ) { if (exec) logln("TestSuite DecimalFormatTest: "); switch (index) { #if !UCONFIG_NO_FILE_IO case 0: name = "DataDrivenTests"; if (exec) DataDrivenTests(); break; #else case 0: name = "skip"; break; #endif default: name = ""; break; //needed to end loop } }
void NewResourceBundleTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ ) { if (exec) logln("TestSuite ResourceBundleTest: "); switch (index) { #if !UCONFIG_NO_FILE_IO && !UCONFIG_NO_LEGACY_CONVERSION case 0: name = "TestResourceBundles"; if (exec) TestResourceBundles(); break; case 1: name = "TestConstruction"; if (exec) TestConstruction(); break; case 2: name = "TestIteration"; if (exec) TestIteration(); break; case 3: name = "TestOtherAPI"; if(exec) TestOtherAPI(); break; case 4: name = "TestNewTypes"; if(exec) TestNewTypes(); break; #else case 0: case 1: case 2: case 3: case 4: name = "skip"; break; #endif case 5: name = "TestGetByFallback"; if(exec) TestGetByFallback(); break; default: name = ""; break; //needed to end loop } }
void IntlTestTransliterator::runIndexedTest( int32_t index, UBool exec, const char* &name, char* par ) { if (exec) logln("TestSuite Transliterator"); switch (index) { CASE(0, TransliteratorTest); CASE(1, TransliteratorAPITest); CASE(2, CompoundTransliteratorTest); CASE(3, TransliteratorRoundTripTest); CASE(4, JamoTest); CASE(5, TransliteratorErrorTest); CASE(6, ReplaceableTest); #if !UCONFIG_NO_TRANSLITERATION && defined(U_USE_UNICODE_FILTER_LOGIC_OBSOLETE_2_8) CASE(7, UnicodeFilterLogicTest); #endif default: name=""; break; } }
void IntlTestUtilities::runIndexedTest( int32_t index, UBool exec, const char* &name, char* par ) { if (exec) logln("TestSuite Utilities: "); switch (index) { CASE(0, MultithreadTest); CASE(1, StringTest); CASE(2, UnicodeStringTest); CASE(3, LocaleTest); CASE(4, CharIterTest); CASE(5, UObjectTest); CASE(6, UnicodeTest); CASE(7, ResourceBundleTest); CASE(8, NewResourceBundleTest); CASE(9, PUtilTest); CASE(10, UVector32Test); CASE(11, UVectorTest); CASE(12, UTextTest); CASE(13, LocaleAliasTest); CASE(14, UnicodeSetTest); CASE(15, ErrorCodeTest); case 16: name = "LocalPointerTest"; if (exec) { logln("TestSuite LocalPointerTest---"); logln(); LocalPointer<IntlTest> test(createLocalPointerTest()); callTest(*test, par); } break; case 17: name = "BytesTrieTest"; if (exec) { logln("TestSuite BytesTrieTest---"); logln(); LocalPointer<IntlTest> test(createBytesTrieTest()); callTest(*test, par); } break; case 18: name = "UCharsTrieTest"; if (exec) { logln("TestSuite UCharsTrieTest---"); logln(); LocalPointer<IntlTest> test(createUCharsTrieTest()); callTest(*test, par); } break; default: name = ""; break; //needed to end loop } }
/** * @bug 4029195 */ void DateFormatRegressionTest::Test4029195(void) { UErrorCode status = U_ZERO_ERROR; UDate today = Calendar::getNow(); logln((UnicodeString) "today: " + today); SimpleDateFormat *sdf = (SimpleDateFormat*) DateFormat::createDateInstance(); if (failure(status, "SimpleDateFormat::createDateInstance")) { return; } UnicodeString pat; if(sdf == NULL){ dataerrln("Error calling DateFormat::createDateTimeInstance"); return; } pat = sdf->toPattern(pat); logln("pattern: " + pat); UnicodeString fmtd; FieldPosition pos(FieldPosition::DONT_CARE); fmtd = sdf->format(today, fmtd, pos); logln("today: " + fmtd); sdf->applyPattern("G yyyy DDD"); UnicodeString todayS; todayS = sdf->format(today, todayS, pos); logln("today: " + todayS); //try { today = sdf->parse(todayS, status); failure(status, "sdf->parse"); logln((UnicodeString)"today date: " + today); /*} catch(Exception e) { logln("Error reparsing date: " + e.getMessage()); }*/ //try { UnicodeString rt; rt = sdf->format(sdf->parse(todayS, status), rt, pos); failure(status, "sdf->parse"); logln("round trip: " + rt); if(rt != todayS) errln("Fail: Want " + todayS + " Got " + rt); /*} catch (ParseException e) { errln("Fail: " + e); e.printStackTrace(); }*/ delete sdf; }
void IntlTestSpoof::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ ) { if (exec) logln("TestSuite spoof: "); switch (index) { case 0: name = "TestSpoofAPI"; if (exec) { testSpoofAPI(); } break; case 1: name = "TestSkeleton"; if (exec) { testSkeleton(); } break; case 2: name = "TestAreConfusable"; if (exec) { testAreConfusable(); } break; case 3: name = "TestInvisible"; if (exec) { testInvisible(); } break; case 4: name = "testConfData"; if (exec) { testConfData(); } break; case 5: name = "testBug8654"; if (exec) { testBug8654(); } break; default: name=""; break; } }
/** * @bug 4151706 * 'z' at end of date format throws index exception in SimpleDateFormat * CANNOT REPRODUCE THIS BUG ON 1.2FCS */ void DateFormatRegressionTest::Test4151706(void) { UnicodeString dateString("Thursday, 31-Dec-98 23:00:00 GMT"); UErrorCode status = U_ZERO_ERROR; SimpleDateFormat fmt(UnicodeString("EEEE, dd-MMM-yy HH:mm:ss z"), Locale::getUS(), status); if (failure(status, "new SimpleDateFormat", TRUE)) return; //try { UDate d = fmt.parse(dateString, status); failure(status, "fmt->parse"); // {sfb} what about next two lines? //if (d.getTime() != Date.UTC(1998-1900, Calendar.DECEMBER, 31, 23, 0, 0)) // errln("Incorrect value: " + d); /*} catch (Exception e) { errln("Fail: " + e); }*/ UnicodeString temp; FieldPosition pos(0); logln(dateString + " -> " + fmt.format(d, temp, pos)); }
void AlphabeticIndexTest::TestIndexCharactersList() { UErrorCode status = U_ZERO_ERROR; for (int32_t i = 0; i < LENGTHOF(localeAndIndexCharactersLists); ++i) { const char *(&localeAndIndexCharacters)[2] = localeAndIndexCharactersLists[i]; const char *locale = localeAndIndexCharacters[0]; UnicodeString expectedIndexCharacters = (UnicodeString("\\u2026:") + localeAndIndexCharacters[1] + ":\\u2026").unescape(); AlphabeticIndex index(locale, status); TEST_CHECK_STATUS; LocalPointer<AlphabeticIndex::ImmutableIndex> immIndex(index.buildImmutableIndex(status)); TEST_CHECK_STATUS; // Join the elements of the list to a string with delimiter ":" UnicodeString actualIndexCharacters; assertEquals(locale, expectedIndexCharacters, joinLabelsAndAppend(*immIndex, actualIndexCharacters)); logln(locale + UnicodeString(": ") + actualIndexCharacters); } }
int mpuInit() { // initialize device logln("Initializing I2C devices..."); mpu.initialize(); // verify connection logln("Testing device connections..."); mpu.testConnection() ? logln("MPU6050 connection successful") : logln("MPU6050 connection failed"); // load and configure the DMP logln("Initializing DMP..."); devStatus = mpu.dmpInitialize(); // make sure it worked (returns 0 if so) if (devStatus == 0) { // turn on the DMP, now that it's ready logln("Enabling DMP..."); mpu.setDMPEnabled(true); // enable Arduino interrupt detection // Serial.println(F("Enabling interrupt detection (Arduino external interrupt 0)...")); // attachInterrupt(0, dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus(); // set our DMP Ready flag so the main loop() function knows it's okay to use it logln("DMP ready! Waiting for first interrupt..."); dmpReady = true; // get expected DMP packet size for later comparison packetSize = mpu.dmpGetFIFOPacketSize(); } else { // ERROR! // 1 = initial memory load failed // 2 = DMP configuration updates failed // (if it's going to break, usually the code will be 1) logln("DMP Initialization failed (code %d)", devStatus); } }
void MessageFormatRegressionTest::Test4104976() { double limits [] = {1, 20}; UnicodeString formats [] = { UnicodeString("xyz"), UnicodeString("abc") }; int32_t formats_length = (int32_t)(sizeof(formats)/sizeof(formats[0])); UErrorCode status = U_ZERO_ERROR; ChoiceFormat *cf = new ChoiceFormat(limits, formats, formats_length); failure(status, "new ChoiceFormat"); //try { log("Compares to null is always false, returned : "); logln(cf == NULL ? "TRUE" : "FALSE"); /*} catch (Exception foo) { errln("ChoiceFormat.equals(null) throws exception."); }*/ delete cf; }
UDate TimeZoneRegressionTest::findTransitionBinary(const SimpleTimeZone& tz, UDate min, UDate max) { UErrorCode status = U_ZERO_ERROR; UBool startsInDST = tz.inDaylightTime(min, status); if (failure(status, "SimpleTimeZone::inDaylightTime")) return 0; if (tz.inDaylightTime(max, status) == startsInDST) { logln((UnicodeString)"Error: inDaylightTime() != " + ((!startsInDST)?"TRUE":"FALSE")); return 0; } if (failure(status, "SimpleTimeZone::inDaylightTime")) return 0; while ((max - min) > 100) { // Min accuracy in ms UDate mid = (min + max) / 2; if (tz.inDaylightTime(mid, status) == startsInDST) { min = mid; } else { max = mid; } if (failure(status, "SimpleTimeZone::inDaylightTime")) return 0; } return (min + max) / 2; }
void CompactDecimalFormatTest::runIndexedTest( int32_t index, UBool exec, const char *&name, char *) { if (exec) { logln("TestSuite CompactDecimalFormatTest: "); } TESTCASE_AUTO_BEGIN; TESTCASE_AUTO(TestEnglishShort); TESTCASE_AUTO(TestSerbianShort); TESTCASE_AUTO(TestSerbianLong); TESTCASE_AUTO(TestSerbianLongNegative); TESTCASE_AUTO(TestJapaneseShort); TESTCASE_AUTO(TestSwahiliShort); TESTCASE_AUTO(TestCsShort); TESTCASE_AUTO(TestSkLong); TESTCASE_AUTO(TestSwahiliShortNegative); TESTCASE_AUTO(TestArabicLong); TESTCASE_AUTO(TestFieldPosition); TESTCASE_AUTO(TestSignificantDigits); TESTCASE_AUTO_END; }
bool A6httplib::ConnectGPRS(String apn) { String dummy_string=""; String _APN=apn; byte retstatus=1; while(retstatus != A6_OK) { retstatus=_A6l->A6command((const char *)"AT+CGATT?", "OK", "yy", 20000, 1, NULL); while(_A6l->getFree(3000)!=0); } retstatus =1; while(retstatus != A6_OK) { retstatus=_A6l->A6command((const char *)"AT+CGATT=1", "OK", "yy", 20000, 2, NULL); while(_A6l->getFree(3000)!=0); } retstatus =1; _A6l->A6conn->write("AT+CSQ"); //Signal Quality logln("AT+CSQ"); delay(200); while(_A6l->getFree(3000)!=0); while(retstatus != A6_OK) { dummy_string = "AT+CGDCONT=1,\"IP\",\""+ _APN +"\""; retstatus=_A6l->A6command(dummy_string.c_str(), "OK", "yy", 20000, 2, NULL); //bring up wireless connection while(_A6l->getFree(3000)!=0); } retstatus =1; while(retstatus != A6_OK) { retstatus=_A6l->A6command((const char *)"AT+CGACT=1,1", "OK", "yy", 10000, 2, NULL); while(_A6l->getFree(3000)!=0); // delay(10000); } }
void TestMessageFormat::sample() { MessageFormat *form = 0; UnicodeString buffer1, buffer2; UErrorCode success = U_ZERO_ERROR; form = new MessageFormat("There are {0} files on {1}", success); if (U_FAILURE(success)) { errln("Err: Message format creation failed"); logln("Sample message format creation failed."); return; } UnicodeString abc("abc"); UnicodeString def("def"); Formattable testArgs1[] = { abc, def }; FieldPosition fieldpos(0); assertEquals("format", "There are abc files on def", form->format(testArgs1, 2, buffer2, fieldpos, success)); assertSuccess("format", success); delete form; }
void StringTest::runIndexedTest(int32_t index, UBool exec, const char *&name, char * /*par*/) { if(exec) { logln("TestSuite Character and String Test: "); } TESTCASE_AUTO_BEGIN; TESTCASE_AUTO(TestEndian); TESTCASE_AUTO(TestSizeofTypes); TESTCASE_AUTO(TestCharsetFamily); TESTCASE_AUTO(Test_U_STRING); TESTCASE_AUTO(Test_UNICODE_STRING); TESTCASE_AUTO(Test_UNICODE_STRING_SIMPLE); TESTCASE_AUTO(Test_UTF8_COUNT_TRAIL_BYTES); TESTCASE_AUTO(TestSTLCompatibility); TESTCASE_AUTO(TestStringPiece); TESTCASE_AUTO(TestStringPieceComparisons); TESTCASE_AUTO(TestByteSink); TESTCASE_AUTO(TestCheckedArrayByteSink); TESTCASE_AUTO(TestStringByteSink); TESTCASE_AUTO(TestCharString); TESTCASE_AUTO_END; }
void MessageFormatRegressionTest::TestChoicePatternQuote() { UnicodeString DATA [] = { // Pattern 0 value 1 value // {sfb} hacked - changed \u2264 to = (copied from Character Map) (UnicodeString)"0#can''t|1#can", (UnicodeString)"can't", (UnicodeString)"can", (UnicodeString)"0#'pound(#)=''#'''|1#xyz", (UnicodeString)"pound(#)='#'", (UnicodeString)"xyz", (UnicodeString)"0#'1<2 | 1=1'|1#''", (UnicodeString)"1<2 | 1=1", (UnicodeString)"'", }; for (int i=0; i<9; i+=3) { //try { UErrorCode status = U_ZERO_ERROR; ChoiceFormat *cf = new ChoiceFormat(DATA[i], status); failure(status, "new ChoiceFormat"); for (int j=0; j<=1; ++j) { UnicodeString out; FieldPosition pos(FieldPosition::DONT_CARE); out = cf->format((double)j, out, pos); if (out != DATA[i+1+j]) errln("Fail: Pattern \"" + DATA[i] + "\" x "+j+" -> " + out + "; want \"" + DATA[i+1+j] + '"'); } UnicodeString pat; pat = cf->toPattern(pat); UnicodeString pat2; ChoiceFormat *cf2 = new ChoiceFormat(pat, status); pat2 = cf2->toPattern(pat2); if (pat != pat2) errln("Fail: Pattern \"" + DATA[i] + "\" x toPattern -> \"" + pat + '"'); else logln("Ok: Pattern \"" + DATA[i] + "\" x toPattern -> \"" + pat + '"'); /*} catch (IllegalArgumentException e) { errln("Fail: Pattern \"" + DATA[i] + "\" -> " + e); }*/ delete cf; delete cf2; } }
void TestMessageFormat::testMsgFormatChoice(/* char* par */) { logln("running TestMessageFormat::testMsgFormatChoice"); UErrorCode err = U_ZERO_ERROR; MessageFormat* form = new MessageFormat("The disk \"{1}\" contains {0}.", err); double filelimits[] = {0,1,2}; UnicodeString filepart[] = {"no files","one file","{0,number} files"}; ChoiceFormat* fileform = new ChoiceFormat(filelimits, filepart, 3); form->setFormat(1,*fileform); // NOT zero, see below //is the format adopted? FieldPosition ignore(FieldPosition::DONT_CARE); UnicodeString string; Formattable testArgs1[] = {(int32_t)0, "MyDisk"}; form->format(testArgs1, 2, string, ignore, err); if (string != "The disk \"MyDisk\" contains no files.") { errln("TestMessageFormat::testMsgFormatChoice failed on test #1"); } ignore.setField(FieldPosition::DONT_CARE); string.remove(); Formattable testArgs2[] = {(int32_t)1, "MyDisk"}; form->format(testArgs2, 2, string, ignore, err); if (string != "The disk \"MyDisk\" contains one file.") { errln("TestMessageFormat::testMsgFormatChoice failed on test #2"); } ignore.setField(FieldPosition::DONT_CARE); string.remove(); Formattable testArgs3[] = {(int32_t)1273, "MyDisk"}; form->format(testArgs3, 2, string, ignore, err); if (string != "The disk \"MyDisk\" contains 1,273 files.") { errln("TestMessageFormat::testMsgFormatChoice failed on test #3"); } delete form; delete fileform; }
void BytesTrieTest::TestBranches() { static const StringAndValue data[]={ { "a", 0x10 }, { "cc", 0x40 }, { "e", 0x100 }, { "ggg", 0x400 }, { "i", 0x1000 }, { "kkkk", 0x4000 }, { "n", 0x10000 }, { "ppppp", 0x40000 }, { "r", 0x100000 }, { "sss", 0x200000 }, { "t", 0x400000 }, { "uu", 0x800000 }, { "vv", 0x7fffffff }, { "zz", (int32_t)0x80000000 } }; for(int32_t length=2; length<=UPRV_LENGTHOF(data); ++length) { logln("TestBranches length=%d", (int)length); checkData(data, length); } }