Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Unified Diff: source/test/intltest/measfmttest.cpp

Issue 1621843002: ICU 56 update step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@561
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « source/test/intltest/loctest.cpp ('k') | source/test/intltest/nmfmtrt.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: source/test/intltest/measfmttest.cpp
diff --git a/source/test/intltest/measfmttest.cpp b/source/test/intltest/measfmttest.cpp
index ccbc75729a70ae4435f4ecc99a7b8e49329f9f8b..f2f2d09734c8f2a0885eb6fef16d5195e0960eff 100644
--- a/source/test/intltest/measfmttest.cpp
+++ b/source/test/intltest/measfmttest.cpp
@@ -1,6 +1,6 @@
/*
*******************************************************************************
-* Copyright (C) 2014, International Business Machines Corporation and *
+* Copyright (C) 2014-2015, International Business Machines Corporation and *
* others. All Rights Reserved. *
*******************************************************************************
*
@@ -40,6 +40,8 @@ private:
void TestBasic();
void TestCompatible53_1();
void TestCompatible54_1();
+ void TestCompatible55_1();
+ void TestCompatible56_1();
void TestGetAvailable();
void TestExamplesInDocs();
void TestFormatPeriodEn();
@@ -47,7 +49,6 @@ private:
void TestGreek();
void TestFormatSingleArg();
void TestFormatMeasuresZeroArg();
- void TestMultiplesWithPer();
void TestSimplePer();
void TestNumeratorPlurals();
void TestMultiples();
@@ -55,11 +56,11 @@ private:
void TestCurrencies();
void TestFieldPosition();
void TestFieldPositionMultiple();
- void TestFieldPositionMultipleWithPer();
void TestBadArg();
void TestEquality();
void TestGroupingSeparator();
void TestDoubleZero();
+ void TestUnitPerUnitResolution();
void verifyFormat(
const char *description,
const MeasureFormat &fmt,
@@ -85,11 +86,16 @@ private:
const MeasureUnit &unit,
const MeasureUnit &perUnit,
const char *expected);
- void helperTestMultiplesWithPer(
+ void helperTestSimplePer(
const Locale &locale,
UMeasureFormatWidth width,
+ double value,
const MeasureUnit &unit,
- const char *expected);
+ const MeasureUnit &perUnit,
+ const char *expected,
+ int32_t field,
+ int32_t expected_start,
+ int32_t expected_end);
void helperTestMultiples(
const Locale &locale,
UMeasureFormatWidth width,
@@ -103,16 +109,6 @@ private:
NumberFormat::EAlignmentFields field,
int32_t start,
int32_t end);
- void verifyFieldPositionWithPer(
- const char *description,
- const MeasureFormat &fmt,
- const UnicodeString &prefix,
- const Measure *measures,
- int32_t measureCount,
- const MeasureUnit &perUnit,
- NumberFormat::EAlignmentFields field,
- int32_t start,
- int32_t end);
};
void MeasureFormatTest::runIndexedTest(
@@ -124,6 +120,8 @@ void MeasureFormatTest::runIndexedTest(
TESTCASE_AUTO(TestBasic);
TESTCASE_AUTO(TestCompatible53_1);
TESTCASE_AUTO(TestCompatible54_1);
+ TESTCASE_AUTO(TestCompatible55_1);
+ TESTCASE_AUTO(TestCompatible56_1);
TESTCASE_AUTO(TestGetAvailable);
TESTCASE_AUTO(TestExamplesInDocs);
TESTCASE_AUTO(TestFormatPeriodEn);
@@ -131,7 +129,6 @@ void MeasureFormatTest::runIndexedTest(
TESTCASE_AUTO(TestGreek);
TESTCASE_AUTO(TestFormatSingleArg);
TESTCASE_AUTO(TestFormatMeasuresZeroArg);
- TESTCASE_AUTO(TestMultiplesWithPer);
TESTCASE_AUTO(TestSimplePer);
TESTCASE_AUTO(TestNumeratorPlurals);
TESTCASE_AUTO(TestMultiples);
@@ -139,11 +136,11 @@ void MeasureFormatTest::runIndexedTest(
TESTCASE_AUTO(TestCurrencies);
TESTCASE_AUTO(TestFieldPosition);
TESTCASE_AUTO(TestFieldPositionMultiple);
- TESTCASE_AUTO(TestFieldPositionMultipleWithPer);
TESTCASE_AUTO(TestBadArg);
TESTCASE_AUTO(TestEquality);
TESTCASE_AUTO(TestGroupingSeparator);
TESTCASE_AUTO(TestDoubleZero);
+ TESTCASE_AUTO(TestUnitPerUnitResolution);
TESTCASE_AUTO_END;
}
@@ -326,6 +323,269 @@ void MeasureFormatTest::TestCompatible54_1() {
assertSuccess("", status);
}
+void MeasureFormatTest::TestCompatible55_1() {
+ UErrorCode status = U_ZERO_ERROR;
+ LocalPointer<MeasureUnit> measureUnit;
+ measureUnit.adoptInstead(MeasureUnit::createGForce(status));
+ measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
+ measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
+ measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
+ measureUnit.adoptInstead(MeasureUnit::createDegree(status));
+ measureUnit.adoptInstead(MeasureUnit::createRadian(status));
+ measureUnit.adoptInstead(MeasureUnit::createAcre(status));
+ measureUnit.adoptInstead(MeasureUnit::createHectare(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
+ measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
+ measureUnit.adoptInstead(MeasureUnit::createBit(status));
+ measureUnit.adoptInstead(MeasureUnit::createByte(status));
+ measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
+ measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
+ measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
+ measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
+ measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
+ measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
+ measureUnit.adoptInstead(MeasureUnit::createDay(status));
+ measureUnit.adoptInstead(MeasureUnit::createHour(status));
+ measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
+ measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
+ measureUnit.adoptInstead(MeasureUnit::createMinute(status));
+ measureUnit.adoptInstead(MeasureUnit::createMonth(status));
+ measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
+ measureUnit.adoptInstead(MeasureUnit::createSecond(status));
+ measureUnit.adoptInstead(MeasureUnit::createWeek(status));
+ measureUnit.adoptInstead(MeasureUnit::createYear(status));
+ measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
+ measureUnit.adoptInstead(MeasureUnit::createOhm(status));
+ measureUnit.adoptInstead(MeasureUnit::createVolt(status));
+ measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
+ measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
+ measureUnit.adoptInstead(MeasureUnit::createJoule(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
+ measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
+ measureUnit.adoptInstead(MeasureUnit::createHertz(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
+ measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
+ measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
+ measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createFathom(status));
+ measureUnit.adoptInstead(MeasureUnit::createFoot(status));
+ measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
+ measureUnit.adoptInstead(MeasureUnit::createInch(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
+ measureUnit.adoptInstead(MeasureUnit::createMeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createMile(status));
+ measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
+ measureUnit.adoptInstead(MeasureUnit::createParsec(status));
+ measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createYard(status));
+ measureUnit.adoptInstead(MeasureUnit::createLux(status));
+ measureUnit.adoptInstead(MeasureUnit::createCarat(status));
+ measureUnit.adoptInstead(MeasureUnit::createGram(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
+ measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
+ measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
+ measureUnit.adoptInstead(MeasureUnit::createOunce(status));
+ measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
+ measureUnit.adoptInstead(MeasureUnit::createPound(status));
+ measureUnit.adoptInstead(MeasureUnit::createStone(status));
+ measureUnit.adoptInstead(MeasureUnit::createTon(status));
+ measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
+ measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
+ measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
+ measureUnit.adoptInstead(MeasureUnit::createWatt(status));
+ measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
+ measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
+ measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
+ measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
+ measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
+ measureUnit.adoptInstead(MeasureUnit::createKarat(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
+ measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
+ measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
+ measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
+ measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
+ measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
+ measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
+ measureUnit.adoptInstead(MeasureUnit::createBushel(status));
+ measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
+ measureUnit.adoptInstead(MeasureUnit::createCup(status));
+ measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
+ measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
+ measureUnit.adoptInstead(MeasureUnit::createGallon(status));
+ measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
+ measureUnit.adoptInstead(MeasureUnit::createLiter(status));
+ measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
+ measureUnit.adoptInstead(MeasureUnit::createPint(status));
+ measureUnit.adoptInstead(MeasureUnit::createQuart(status));
+ measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
+ measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
+ assertSuccess("", status);
+}
+
+void MeasureFormatTest::TestCompatible56_1() {
+ UErrorCode status = U_ZERO_ERROR;
+ LocalPointer<MeasureUnit> measureUnit;
+ measureUnit.adoptInstead(MeasureUnit::createGForce(status));
+ measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
+ measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
+ measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
+ measureUnit.adoptInstead(MeasureUnit::createDegree(status));
+ measureUnit.adoptInstead(MeasureUnit::createRadian(status));
+ measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
+ measureUnit.adoptInstead(MeasureUnit::createAcre(status));
+ measureUnit.adoptInstead(MeasureUnit::createHectare(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
+ measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
+ measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
+ measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
+ measureUnit.adoptInstead(MeasureUnit::createBit(status));
+ measureUnit.adoptInstead(MeasureUnit::createByte(status));
+ measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
+ measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
+ measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
+ measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
+ measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
+ measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
+ measureUnit.adoptInstead(MeasureUnit::createCentury(status));
+ measureUnit.adoptInstead(MeasureUnit::createDay(status));
+ measureUnit.adoptInstead(MeasureUnit::createHour(status));
+ measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
+ measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
+ measureUnit.adoptInstead(MeasureUnit::createMinute(status));
+ measureUnit.adoptInstead(MeasureUnit::createMonth(status));
+ measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
+ measureUnit.adoptInstead(MeasureUnit::createSecond(status));
+ measureUnit.adoptInstead(MeasureUnit::createWeek(status));
+ measureUnit.adoptInstead(MeasureUnit::createYear(status));
+ measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
+ measureUnit.adoptInstead(MeasureUnit::createOhm(status));
+ measureUnit.adoptInstead(MeasureUnit::createVolt(status));
+ measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
+ measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
+ measureUnit.adoptInstead(MeasureUnit::createJoule(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
+ measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
+ measureUnit.adoptInstead(MeasureUnit::createHertz(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
+ measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
+ measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
+ measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createFathom(status));
+ measureUnit.adoptInstead(MeasureUnit::createFoot(status));
+ measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
+ measureUnit.adoptInstead(MeasureUnit::createInch(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
+ measureUnit.adoptInstead(MeasureUnit::createMeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createMile(status));
+ measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
+ measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
+ measureUnit.adoptInstead(MeasureUnit::createParsec(status));
+ measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createYard(status));
+ measureUnit.adoptInstead(MeasureUnit::createLux(status));
+ measureUnit.adoptInstead(MeasureUnit::createCarat(status));
+ measureUnit.adoptInstead(MeasureUnit::createGram(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
+ measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
+ measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
+ measureUnit.adoptInstead(MeasureUnit::createOunce(status));
+ measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
+ measureUnit.adoptInstead(MeasureUnit::createPound(status));
+ measureUnit.adoptInstead(MeasureUnit::createStone(status));
+ measureUnit.adoptInstead(MeasureUnit::createTon(status));
+ measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
+ measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
+ measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
+ measureUnit.adoptInstead(MeasureUnit::createWatt(status));
+ measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
+ measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
+ measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
+ measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
+ measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
+ measureUnit.adoptInstead(MeasureUnit::createKarat(status));
+ measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
+ measureUnit.adoptInstead(MeasureUnit::createKnot(status));
+ measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
+ measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
+ measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
+ measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
+ measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
+ measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
+ measureUnit.adoptInstead(MeasureUnit::createBushel(status));
+ measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
+ measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
+ measureUnit.adoptInstead(MeasureUnit::createCup(status));
+ measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
+ measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
+ measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
+ measureUnit.adoptInstead(MeasureUnit::createGallon(status));
+ measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
+ measureUnit.adoptInstead(MeasureUnit::createLiter(status));
+ measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
+ measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
+ measureUnit.adoptInstead(MeasureUnit::createPint(status));
+ measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
+ measureUnit.adoptInstead(MeasureUnit::createQuart(status));
+ measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
+ measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
+ assertSuccess("", status);
+}
+
void MeasureFormatTest::TestBasic() {
UErrorCode status = U_ZERO_ERROR;
MeasureUnit *ptr1 = MeasureUnit::createArcMinute(status);
@@ -589,11 +849,11 @@ void MeasureFormatTest::TestFormatPeriodEn() {
{t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2 years, 5 months, 3 weeks, 4 days"}};
ExpectedResult abbrevData[] = {
- {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1 min, 59.9996 secs"},
- {t_19m, UPRV_LENGTHOF(t_19m), "19 mins"},
- {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1 hr, 23.5 secs"},
- {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1 hr, 23.5 mins"},
- {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1 hr, 0 mins, 23 secs"},
+ {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1 min, 59.9996 sec"},
+ {t_19m, UPRV_LENGTHOF(t_19m), "19 min"},
+ {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1 hr, 23.5 sec"},
+ {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1 hr, 23.5 min"},
+ {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1 hr, 0 min, 23 sec"},
{t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2 yrs, 5 mths, 3 wks, 4 days"}};
ExpectedResult narrowData[] = {
@@ -871,32 +1131,6 @@ void MeasureFormatTest::TestFormatMeasuresZeroArg() {
verifyFormat("TestFormatMeasuresZeroArg", fmt, NULL, 0, "");
}
-void MeasureFormatTest::TestMultiplesWithPer() {
- Locale en("en");
- UErrorCode status = U_ZERO_ERROR;
- LocalPointer<MeasureUnit> second(MeasureUnit::createSecond(status));
- LocalPointer<MeasureUnit> minute(MeasureUnit::createMinute(status));
- if (!assertSuccess("", status)) {
- return;
- }
-
- // Per unit test.
- helperTestMultiplesWithPer(
- en, UMEASFMT_WIDTH_WIDE, *second, "2 miles, 1 foot, 2.3 inches per second");
- helperTestMultiplesWithPer(
- en, UMEASFMT_WIDTH_SHORT, *second, "2 mi, 1 ft, 2.3 inps");
- helperTestMultiplesWithPer(
- en, UMEASFMT_WIDTH_NARROW, *second, "2mi 1\\u2032 2.3\\u2033/s");
-
- // Fallback compound per test
- helperTestMultiplesWithPer(
- en, UMEASFMT_WIDTH_WIDE, *minute, "2 miles, 1 foot, 2.3 inches per minute");
- helperTestMultiplesWithPer(
- en, UMEASFMT_WIDTH_SHORT, *minute, "2 mi, 1 ft, 2.3 in/min");
- helperTestMultiplesWithPer(
- en, UMEASFMT_WIDTH_NARROW, *minute, "2mi 1\\u2032 2.3\\u2033/m");
-}
-
void MeasureFormatTest::TestSimplePer() {
Locale en("en");
UErrorCode status = U_ZERO_ERROR;
@@ -908,13 +1142,59 @@ void MeasureFormatTest::TestSimplePer() {
}
helperTestSimplePer(
- en, UMEASFMT_WIDTH_SHORT, 1.0, *pound, *second, "1 lbps");
+ en, UMEASFMT_WIDTH_WIDE,
+ 1.0, *pound, *second, "1 pound per second");
+ helperTestSimplePer(
+ en, UMEASFMT_WIDTH_WIDE,
+ 2.0, *pound, *second, "2 pounds per second");
+ helperTestSimplePer(
+ en, UMEASFMT_WIDTH_WIDE,
+ 1.0, *pound, *minute, "1 pound per minute");
+ helperTestSimplePer(
+ en, UMEASFMT_WIDTH_WIDE,
+ 2.0, *pound, *minute, "2 pounds per minute");
+
+ helperTestSimplePer(
+ en, UMEASFMT_WIDTH_SHORT, 1.0, *pound, *second, "1 lb/s");
helperTestSimplePer(
- en, UMEASFMT_WIDTH_SHORT, 2.0, *pound, *second, "2 lbps");
+ en, UMEASFMT_WIDTH_SHORT, 2.0, *pound, *second, "2 lb/s");
helperTestSimplePer(
en, UMEASFMT_WIDTH_SHORT, 1.0, *pound, *minute, "1 lb/min");
helperTestSimplePer(
en, UMEASFMT_WIDTH_SHORT, 2.0, *pound, *minute, "2 lb/min");
+
+ helperTestSimplePer(
+ en, UMEASFMT_WIDTH_NARROW, 1.0, *pound, *second, "1#/s");
+ helperTestSimplePer(
+ en, UMEASFMT_WIDTH_NARROW, 2.0, *pound, *second, "2#/s");
+ helperTestSimplePer(
+ en, UMEASFMT_WIDTH_NARROW, 1.0, *pound, *minute, "1#/min");
+ helperTestSimplePer(
+ en, UMEASFMT_WIDTH_NARROW, 2.0, *pound, *minute, "2#/min");
+
+ helperTestSimplePer(
+ en, UMEASFMT_WIDTH_SHORT,
+ 23.3, *pound, *second, "23.3 lb/s",
+ NumberFormat::kDecimalSeparatorField,
+ 2, 3);
+
+ helperTestSimplePer(
+ en, UMEASFMT_WIDTH_SHORT,
+ 23.3, *pound, *second, "23.3 lb/s",
+ NumberFormat::kIntegerField,
+ 0, 2);
+
+ helperTestSimplePer(
+ en, UMEASFMT_WIDTH_SHORT,
+ 23.3, *pound, *minute, "23.3 lb/min",
+ NumberFormat::kDecimalSeparatorField,
+ 2, 3);
+
+ helperTestSimplePer(
+ en, UMEASFMT_WIDTH_SHORT,
+ 23.3, *pound, *minute, "23.3 lb/min",
+ NumberFormat::kIntegerField,
+ 0, 2);
}
void MeasureFormatTest::TestNumeratorPlurals() {
@@ -927,13 +1207,20 @@ void MeasureFormatTest::TestNumeratorPlurals() {
}
helperTestSimplePer(
- pl, UMEASFMT_WIDTH_WIDE, 1.0, *foot, *second, "1 stopa na sekund\\u0119");
+ pl,
+ UMEASFMT_WIDTH_WIDE,
+ 1.0, *foot, *second, "1 stopa na sekund\\u0119");
helperTestSimplePer(
- pl, UMEASFMT_WIDTH_WIDE, 2.0, *foot, *second, "2 stopy na sekund\\u0119");
+ pl,
+ UMEASFMT_WIDTH_WIDE,
+ 2.0, *foot, *second, "2 stopy na sekund\\u0119");
helperTestSimplePer(
- pl, UMEASFMT_WIDTH_WIDE, 5.0, *foot, *second, "5 st\\u00f3p na sekund\\u0119");
+ pl,
+ UMEASFMT_WIDTH_WIDE,
+ 5.0, *foot, *second, "5 st\\u00f3p na sekund\\u0119");
helperTestSimplePer(
- pl, UMEASFMT_WIDTH_WIDE, 1.5, *foot, *second, "1,5 stopy na sekund\\u0119");
+ pl, UMEASFMT_WIDTH_WIDE,
+ 1.5, *foot, *second, "1,5 stopy na sekund\\u0119");
}
void MeasureFormatTest::helperTestSimplePer(
@@ -943,55 +1230,42 @@ void MeasureFormatTest::helperTestSimplePer(
const MeasureUnit &unit,
const MeasureUnit &perUnit,
const char *expected) {
- UErrorCode status = U_ZERO_ERROR;
- FieldPosition pos(0);
- MeasureFormat fmt(locale, width, status);
- if (!assertSuccess("Error creating format object", status)) {
- return;
- }
- Measure measure(value, (MeasureUnit *) unit.clone(), status);
- if (!assertSuccess("Error creating measure object", status)) {
- return;
- }
- UnicodeString buffer;
- fmt.formatMeasuresPer(
- &measure,
- 1,
+ helperTestSimplePer(
+ locale,
+ width,
+ value,
+ unit,
perUnit,
- buffer,
- pos,
- status);
- if (!assertSuccess("Error formatting measures with per", status)) {
- return;
- }
- assertEquals(
- "TestSimplePer",
- UnicodeString(expected).unescape(),
- buffer);
+ expected,
+ FieldPosition::DONT_CARE,
+ 0,
+ 0);
}
-void MeasureFormatTest::helperTestMultiplesWithPer(
+void MeasureFormatTest::helperTestSimplePer(
const Locale &locale,
UMeasureFormatWidth width,
+ double value,
+ const MeasureUnit &unit,
const MeasureUnit &perUnit,
- const char *expected) {
+ const char *expected,
+ int32_t field,
+ int32_t expected_start,
+ int32_t expected_end) {
UErrorCode status = U_ZERO_ERROR;
- FieldPosition pos(0);
+ FieldPosition pos(field);
MeasureFormat fmt(locale, width, status);
if (!assertSuccess("Error creating format object", status)) {
return;
}
- Measure measures[] = {
- Measure(2, MeasureUnit::createMile(status), status),
- Measure(1, MeasureUnit::createFoot(status), status),
- Measure(2.3, MeasureUnit::createInch(status), status)};
- if (!assertSuccess("Error creating measures", status)) {
+ Measure measure(value, (MeasureUnit *) unit.clone(), status);
+ if (!assertSuccess("Error creating measure object", status)) {
return;
}
- UnicodeString buffer;
- fmt.formatMeasuresPer(
- measures,
- UPRV_LENGTHOF(measures),
+ UnicodeString prefix("prefix: ");
+ UnicodeString buffer(prefix);
+ fmt.formatMeasurePerUnit(
+ measure,
perUnit,
buffer,
pos,
@@ -999,10 +1273,18 @@ void MeasureFormatTest::helperTestMultiplesWithPer(
if (!assertSuccess("Error formatting measures with per", status)) {
return;
}
+ UnicodeString uexpected(expected);
+ uexpected = prefix + uexpected;
assertEquals(
- "TestMultiplesWithPer",
- UnicodeString(expected).unescape(),
+ "TestSimplePer",
+ uexpected.unescape(),
buffer);
+ if (field != FieldPosition::DONT_CARE) {
+ assertEquals(
+ "Start", expected_start, pos.getBeginIndex() - prefix.length());
+ assertEquals(
+ "End", expected_end, pos.getEndIndex() - prefix.length());
+ }
}
void MeasureFormatTest::TestMultiples() {
@@ -1011,8 +1293,8 @@ void MeasureFormatTest::TestMultiples() {
helperTestMultiples(en, UMEASFMT_WIDTH_WIDE, "2 miles, 1 foot, 2.3 inches");
helperTestMultiples(en, UMEASFMT_WIDTH_SHORT, "2 mi, 1 ft, 2.3 in");
helperTestMultiples(en, UMEASFMT_WIDTH_NARROW, "2mi 1\\u2032 2.3\\u2033");
- helperTestMultiples(ru, UMEASFMT_WIDTH_WIDE, "2 \\u043C\\u0438\\u043B\\u0438, 1 \\u0444\\u0443\\u0442 \\u0438 2,3 \\u0434\\u044E\\u0439\\u043C\\u0430");
- helperTestMultiples(ru, UMEASFMT_WIDTH_SHORT, "2 \\u043C\\u0438\\u043B\\u0438, 1 \\u0444\\u0443\\u0442, 2,3 \\u0434\\u044E\\u0439\\u043C.");
+ helperTestMultiples(ru, UMEASFMT_WIDTH_WIDE, "2 \\u043C\\u0438\\u043B\\u0438 1 \\u0444\\u0443\\u0442 \\u0438 2,3 \\u0434\\u044E\\u0439\\u043C\\u0430");
+ helperTestMultiples(ru, UMEASFMT_WIDTH_SHORT, "2 \\u043C\\u0438\\u043B\\u0438 1 \\u0444\\u0443\\u0442 \\u0438 2,3 \\u0434\\u044E\\u0439\\u043C.");
helperTestMultiples(ru, UMEASFMT_WIDTH_NARROW, "2 \\u043C\\u0438\\u043B\\u044C 1 \\u0444\\u0443\\u0442 2,3 \\u0434\\u044E\\u0439\\u043C\\u0430");
}
@@ -1181,99 +1463,6 @@ void MeasureFormatTest::TestFieldPositionMultiple() {
0);
}
-void MeasureFormatTest::TestFieldPositionMultipleWithPer() {
- UErrorCode status = U_ZERO_ERROR;
- MeasureFormat fmt("en", UMEASFMT_WIDTH_SHORT, status);
- if (!assertSuccess("Error creating format object", status)) {
- return;
- }
- Measure first[] = {
- Measure(354, MeasureUnit::createMeter(status), status),
- Measure(23, MeasureUnit::createCentimeter(status), status)};
- Measure second[] = {
- Measure(354, MeasureUnit::createMeter(status), status),
- Measure(23, MeasureUnit::createCentimeter(status), status),
- Measure(5.4, MeasureUnit::createMillimeter(status), status)};
- Measure third[] = {
- Measure(3, MeasureUnit::createMeter(status), status),
- Measure(23, MeasureUnit::createCentimeter(status), status),
- Measure(5, MeasureUnit::createMillimeter(status), status)};
- if (!assertSuccess("Error creating measure objects", status)) {
- return;
- }
- UnicodeString prefix("123456: ");
-
- LocalPointer<MeasureUnit> secondUnit(MeasureUnit::createSecond(status));
- LocalPointer<MeasureUnit> minuteUnit(MeasureUnit::createMinute(status));
- if (!assertSuccess("Error creating format object", status)) {
- return;
- }
-
- // per unit test
- verifyFieldPositionWithPer(
- "Integer",
- fmt,
- prefix,
- first,
- UPRV_LENGTHOF(first),
- *secondUnit,
- NumberFormat::kIntegerField,
- 8,
- 11);
- verifyFieldPositionWithPer(
- "Decimal separator",
- fmt,
- prefix,
- second,
- UPRV_LENGTHOF(second),
- *secondUnit,
- NumberFormat::kDecimalSeparatorField,
- 23,
- 24);
- verifyFieldPositionWithPer(
- "no decimal separator",
- fmt,
- prefix,
- third,
- UPRV_LENGTHOF(third),
- *secondUnit,
- NumberFormat::kDecimalSeparatorField,
- 0,
- 0);
-
- // Fallback to compound per test
- verifyFieldPositionWithPer(
- "Integer",
- fmt,
- prefix,
- first,
- UPRV_LENGTHOF(first),
- *minuteUnit,
- NumberFormat::kIntegerField,
- 8,
- 11);
- verifyFieldPositionWithPer(
- "Decimal separator",
- fmt,
- prefix,
- second,
- UPRV_LENGTHOF(second),
- *minuteUnit,
- NumberFormat::kDecimalSeparatorField,
- 23,
- 24);
- verifyFieldPositionWithPer(
- "no decimal separator",
- fmt,
- prefix,
- third,
- UPRV_LENGTHOF(third),
- *minuteUnit,
- NumberFormat::kDecimalSeparatorField,
- 0,
- 0);
-}
-
void MeasureFormatTest::TestBadArg() {
UErrorCode status = U_ZERO_ERROR;
MeasureFormat fmt("en", UMEASFMT_WIDTH_SHORT, status);
@@ -1323,8 +1512,8 @@ void MeasureFormatTest::TestGroupingSeparator() {
return;
}
Measure ms[] = {
- Measure(INT32_MAX, MeasureUnit::createYear(status), status),
- Measure(INT32_MIN, MeasureUnit::createMonth(status), status),
+ Measure((int32_t)INT32_MAX, MeasureUnit::createYear(status), status),
+ Measure((int32_t)INT32_MIN, MeasureUnit::createMonth(status), status),
Measure(-987, MeasureUnit::createDay(status), status),
Measure(1362, MeasureUnit::createHour(status), status),
Measure(987, MeasureUnit::createMinute(status), status)};
@@ -1336,7 +1525,7 @@ void MeasureFormatTest::TestGroupingSeparator() {
}
assertEquals(
"grouping separator",
- "2,147,483,647 yrs, -2,147,483,648 mths, -987 days, 1,362 hrs, 987 mins",
+ "2,147,483,647 yrs, -2,147,483,648 mths, -987 days, 1,362 hr, 987 min",
appendTo);
assertEquals("begin index", 9, pos.getBeginIndex());
assertEquals("end index", 10, pos.getEndIndex());
@@ -1379,44 +1568,36 @@ void MeasureFormatTest::TestDoubleZero() {
appendTo);
}
-void MeasureFormatTest::verifyFieldPosition(
- const char *description,
- const MeasureFormat &fmt,
- const UnicodeString &prefix,
- const Measure *measures,
- int32_t measureCount,
- NumberFormat::EAlignmentFields field,
- int32_t start,
- int32_t end) {
- // 8 char lead
- UnicodeString result(prefix);
- FieldPosition pos(field);
+void MeasureFormatTest::TestUnitPerUnitResolution() {
UErrorCode status = U_ZERO_ERROR;
- CharString ch;
- const char *descPrefix = ch.append(description, status)
- .append(": ", status).data();
- CharString beginIndex;
- beginIndex.append(descPrefix, status).append("beginIndex", status);
- CharString endIndex;
- endIndex.append(descPrefix, status).append("endIndex", status);
- fmt.formatMeasures(measures, measureCount, result, pos, status);
- if (!assertSuccess("Error formatting", status)) {
+ Locale en("en");
+ MeasureFormat fmt("en", UMEASFMT_WIDTH_SHORT, status);
+ Measure measure(50, MeasureUnit::createPound(status), status);
+ LocalPointer<MeasureUnit> sqInch(MeasureUnit::createSquareInch(status));
+ if (!assertSuccess("Create of format unit and per unit", status)) {
return;
}
- assertEquals(beginIndex.data(), start, pos.getBeginIndex());
- assertEquals(endIndex.data(), end, pos.getEndIndex());
+ FieldPosition pos(0);
+ UnicodeString actual;
+ fmt.formatMeasurePerUnit(
+ measure,
+ *sqInch,
+ actual,
+ pos,
+ status);
+ assertEquals("", "50 psi", actual);
}
-void MeasureFormatTest::verifyFieldPositionWithPer(
+void MeasureFormatTest::verifyFieldPosition(
const char *description,
const MeasureFormat &fmt,
const UnicodeString &prefix,
const Measure *measures,
int32_t measureCount,
- const MeasureUnit &perUnit,
NumberFormat::EAlignmentFields field,
int32_t start,
int32_t end) {
+ // 8 char lead
UnicodeString result(prefix);
FieldPosition pos(field);
UErrorCode status = U_ZERO_ERROR;
@@ -1427,13 +1608,7 @@ void MeasureFormatTest::verifyFieldPositionWithPer(
beginIndex.append(descPrefix, status).append("beginIndex", status);
CharString endIndex;
endIndex.append(descPrefix, status).append("endIndex", status);
- fmt.formatMeasuresPer(
- measures,
- measureCount,
- perUnit,
- result,
- pos,
- status);
+ fmt.formatMeasures(measures, measureCount, result, pos, status);
if (!assertSuccess("Error formatting", status)) {
return;
}
« no previous file with comments | « source/test/intltest/loctest.cpp ('k') | source/test/intltest/nmfmtrt.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698