X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/249c4c5ea9376c24572daf9c2effa7484a282f14..3d1f044b704633e2e541231cd17ae9ecf9ad5c7a:/icuSources/test/intltest/compactdecimalformattest.cpp?ds=sidebyside diff --git a/icuSources/test/intltest/compactdecimalformattest.cpp b/icuSources/test/intltest/compactdecimalformattest.cpp index da0660ef..b88cf00e 100644 --- a/icuSources/test/intltest/compactdecimalformattest.cpp +++ b/icuSources/test/intltest/compactdecimalformattest.cpp @@ -119,15 +119,15 @@ static ExpectedResult kSwahiliShort[] = { {1234.0, "elfu\\u00a01.2"}, {12345.0, "elfu\\u00a012"}, {123456.0, "elfu\\u00a0120"}, - {1234567.0, "M1.2"}, - {12345678.0, "M12"}, - {123456789.0, "M120"}, - {1.23456789E9, "B1.2"}, - {1.23456789E10, "B12"}, - {1.23456789E11, "B120"}, - {1.23456789E12, "T1.2"}, - {1.23456789E13, "T12"}, - {1.23456789E15, "T1200"}}; + {1234567.0, "1.2M"}, + {12345678.0, "12M"}, + {123456789.0, "120M"}, + {1.23456789E9, "1.2B"}, + {1.23456789E10, "12B"}, + {1.23456789E11, "120B"}, + {1.23456789E12, "1.2T"}, + {1.23456789E13, "12T"}, + {1.23456789E15, "1200T"}}; static ExpectedResult kCsShort[] = { {1000.0, "1\\u00a0tis."}, @@ -154,35 +154,35 @@ static ExpectedResult kSwahiliShortNegative[] = { {-1234.0, "elfu\\u00a0-1.2"}, {-12345.0, "elfu\\u00a0-12"}, {-123456.0, "elfu\\u00a0-120"}, - {-1234567.0, "M-1.2"}, - {-12345678.0, "M-12"}, - {-123456789.0, "M-120"}, - {-1.23456789E9, "B-1.2"}, - {-1.23456789E10, "B-12"}, - {-1.23456789E11, "B-120"}, - {-1.23456789E12, "T-1.2"}, - {-1.23456789E13, "T-12"}, - {-1.23456789E15, "T-1200"}}; + {-1234567.0, "-1.2M"}, + {-12345678.0, "-12M"}, + {-123456789.0, "-120M"}, + {-1.23456789E9, "-1.2B"}, + {-1.23456789E10, "-12B"}, + {-1.23456789E11, "-120B"}, + {-1.23456789E12, "-1.2T"}, + {-1.23456789E13, "-12T"}, + {-1.23456789E15, "-1200T"}}; static ExpectedResult kArabicLong[] = { {-5300.0, "\\u061C-\\u0665\\u066B\\u0663 \\u0623\\u0644\\u0641"}}; static ExpectedResult kChineseCurrencyTestData[] = { - {1.0, "\\uFFE51"}, - {12.0, "\\uFFE512"}, - {123.0, "\\uFFE5120"}, - {1234.0, "\\uFFE51200"}, - {12345.0, "\\uFFE51.2\\u4E07"}, - {123456.0, "\\uFFE512\\u4E07"}, - {1234567.0, "\\uFFE5120\\u4E07"}, - {12345678.0, "\\uFFE51200\\u4E07"}, - {123456789.0, "\\uFFE51.2\\u4EBF"}, - {1234567890.0, "\\uFFE512\\u4EBF"}, - {12345678901.0, "\\uFFE5120\\u4EBF"}, - {123456789012.0, "\\uFFE51200\\u4EBF"}, - {1234567890123.0, "\\uFFE51.2\\u5146"}, - {12345678901234.0, "\\uFFE512\\u5146"}, - {123456789012345.0, "\\uFFE5120\\u5146"}, + {1.0, "\\u00A51"}, + {12.0, "\\u00A512"}, + {123.0, "\\u00A5120"}, + {1234.0, "\\u00A51200"}, + {12345.0, "\\u00A51.2\\u4E07"}, + {123456.0, "\\u00A512\\u4E07"}, + {1234567.0, "\\u00A5120\\u4E07"}, + {12345678.0, "\\u00A51200\\u4E07"}, + {123456789.0, "\\u00A51.2\\u4EBF"}, + {1234567890.0, "\\u00A512\\u4EBF"}, + {12345678901.0, "\\u00A5120\\u4EBF"}, + {123456789012.0, "\\u00A51200\\u4EBF"}, + {1234567890123.0, "\\u00A51.2\\u5146"}, + {12345678901234.0, "\\u00A512\\u5146"}, + {123456789012345.0, "\\u00A5120\\u5146"}, }; static ExpectedResult kGermanCurrencyTestData[] = { {1.0, u8"1\\u00A0\\u20AC"}, @@ -269,9 +269,9 @@ void CompactDecimalFormatTest::runIndexedTest( TESTCASE_AUTO(TestSerbianLongNegative); TESTCASE_AUTO(TestJapaneseShort); TESTCASE_AUTO(TestSwahiliShort); - //TESTCASE_AUTO(TestEnglishCurrency); - //TESTCASE_AUTO(TestGermanCurrency); - //TESTCASE_AUTO(TestChineseCurrency); + TESTCASE_AUTO(TestEnglishCurrency); + TESTCASE_AUTO(TestGermanCurrency); + TESTCASE_AUTO(TestChineseCurrency); TESTCASE_AUTO(TestCsShort); TESTCASE_AUTO(TestSkLong); TESTCASE_AUTO(TestSwahiliShortNegative); @@ -279,7 +279,7 @@ void CompactDecimalFormatTest::runIndexedTest( TESTCASE_AUTO(TestFieldPosition); TESTCASE_AUTO(TestDefaultSignificantDigits); TESTCASE_AUTO(TestAPIVariants); - //TESTCASE_AUTO(TestBug12975); + TESTCASE_AUTO(TestBug12975); TESTCASE_AUTO_END; } @@ -367,11 +367,12 @@ void CompactDecimalFormatTest::TestDefaultSignificantDigits() { dataerrln("Unable to create format object - %s", u_errorName(status)); return; } - // We expect 3 significant digits by default (ICU 61 behavior) + // We are expecting two significant digits for compact formats with one or two zeros, + // and rounded to the unit for compact formats with three or more zeros. UnicodeString actual; assertEquals("Default significant digits", u"123K", cdf->format(123456, actual.remove())); - assertEquals("Default significant digits", u"12.3K", cdf->format(12345, actual.remove())); - assertEquals("Default significant digits", u"1.23K", cdf->format(1234, actual.remove())); + assertEquals("Default significant digits", u"12K", cdf->format(12345, actual.remove())); + assertEquals("Default significant digits", u"1.2K", cdf->format(1234, actual.remove())); assertEquals("Default significant digits", u"123", cdf->format(123, actual.remove())); } @@ -412,9 +413,10 @@ void CompactDecimalFormatTest::TestAPIVariants() { pos.setEndIndex(0); status = U_ZERO_ERROR; cdf->format((double)123456.0, actual, &posIter, status); - if (status != U_UNSUPPORTED_ERROR) { - errln(UnicodeString("Fail format(double,UnicodeString&,FieldPositionIterator*,UErrorCode&): Expected status U_UNSUPPORTED_ERROR;") + - "Got status " + u_errorName(status)); + posIter.next(pos); + if (actual != expected || pos.getEndIndex() != 3 || status != U_ZERO_ERROR) { + errln(UnicodeString("Fail format(int32_t,UnicodeString&,FieldPosition&,UErrorCode&): Expected: \"") + expected + "\", first pos 3, status U_ZERO_ERROR; " + + "Got: \"" + actual + "\", pos " + pos.getEndIndex() + ", status " + u_errorName(status)); } actual.remove(); @@ -441,9 +443,10 @@ void CompactDecimalFormatTest::TestAPIVariants() { pos.setEndIndex(0); status = U_ZERO_ERROR; cdf->format((int32_t)123456, actual, &posIter, status); - if (status != U_UNSUPPORTED_ERROR) { - errln(UnicodeString("Fail format(int32_t,UnicodeString&,FieldPositionIterator*,UErrorCode&): Expected status U_UNSUPPORTED_ERROR;") + - "Got status " + u_errorName(status)); + posIter.next(pos); + if (actual != expected || pos.getEndIndex() != 3 || status != U_ZERO_ERROR) { + errln(UnicodeString("Fail format(int32_t,UnicodeString&,FieldPosition&,UErrorCode&): Expected: \"") + expected + "\", first pos 3, status U_ZERO_ERROR; " + + "Got: \"" + actual + "\", pos " + pos.getEndIndex() + ", status " + u_errorName(status)); } actual.remove(); @@ -470,9 +473,10 @@ void CompactDecimalFormatTest::TestAPIVariants() { pos.setEndIndex(0); status = U_ZERO_ERROR; cdf->format((int64_t)123456, actual, &posIter, status); - if (status != U_UNSUPPORTED_ERROR) { - errln(UnicodeString("Fail format(int64_t,UnicodeString&,FieldPositionIterator*,UErrorCode&): Expected status U_UNSUPPORTED_ERROR;") + - "Got status " + u_errorName(status)); + posIter.next(pos); + if (actual != expected || pos.getEndIndex() != 3 || status != U_ZERO_ERROR) { + errln(UnicodeString("Fail format(int32_t,UnicodeString&,FieldPosition&,UErrorCode&): Expected: \"") + expected + "\", first pos 3, status U_ZERO_ERROR; " + + "Got: \"" + actual + "\", pos " + pos.getEndIndex() + ", status " + u_errorName(status)); } } @@ -483,10 +487,10 @@ void CompactDecimalFormatTest::TestBug12975() { LocalPointer cdf(CompactDecimalFormat::createInstance(locale, UNUM_SHORT, status)); if (assertSuccess("", status, true, __FILE__, __LINE__)) { UnicodeString resultCdf; - cdf->format(120000, resultCdf); + cdf->format(12000, resultCdf); LocalPointer df((DecimalFormat*) DecimalFormat::createInstance(locale, status)); UnicodeString resultDefault; - df->format(120000, resultDefault); + df->format(12000, resultDefault); assertEquals("CompactDecimalFormat should use default pattern when compact pattern is unavailable", resultDefault, resultCdf); }