| OLD | NEW |
| 1 /* | 1 /* |
| 2 ******************************************************************************* | 2 ******************************************************************************* |
| 3 * Copyright (C) 2014, International Business Machines Corporation and * | 3 * Copyright (C) 2014-2015, International Business Machines Corporation and * |
| 4 * others. All Rights Reserved. * | 4 * others. All Rights Reserved. * |
| 5 ******************************************************************************* | 5 ******************************************************************************* |
| 6 * | 6 * |
| 7 * File MEASFMTTEST.CPP | 7 * File MEASFMTTEST.CPP |
| 8 * | 8 * |
| 9 ******************************************************************************* | 9 ******************************************************************************* |
| 10 */ | 10 */ |
| 11 #include <stdio.h> | 11 #include <stdio.h> |
| 12 #include <stdlib.h> | 12 #include <stdlib.h> |
| 13 | 13 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 33 class MeasureFormatTest : public IntlTest { | 33 class MeasureFormatTest : public IntlTest { |
| 34 public: | 34 public: |
| 35 MeasureFormatTest() { | 35 MeasureFormatTest() { |
| 36 } | 36 } |
| 37 | 37 |
| 38 void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par=
0); | 38 void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par=
0); |
| 39 private: | 39 private: |
| 40 void TestBasic(); | 40 void TestBasic(); |
| 41 void TestCompatible53_1(); | 41 void TestCompatible53_1(); |
| 42 void TestCompatible54_1(); | 42 void TestCompatible54_1(); |
| 43 void TestCompatible55_1(); |
| 44 void TestCompatible56_1(); |
| 43 void TestGetAvailable(); | 45 void TestGetAvailable(); |
| 44 void TestExamplesInDocs(); | 46 void TestExamplesInDocs(); |
| 45 void TestFormatPeriodEn(); | 47 void TestFormatPeriodEn(); |
| 46 void Test10219FractionalPlurals(); | 48 void Test10219FractionalPlurals(); |
| 47 void TestGreek(); | 49 void TestGreek(); |
| 48 void TestFormatSingleArg(); | 50 void TestFormatSingleArg(); |
| 49 void TestFormatMeasuresZeroArg(); | 51 void TestFormatMeasuresZeroArg(); |
| 50 void TestMultiplesWithPer(); | |
| 51 void TestSimplePer(); | 52 void TestSimplePer(); |
| 52 void TestNumeratorPlurals(); | 53 void TestNumeratorPlurals(); |
| 53 void TestMultiples(); | 54 void TestMultiples(); |
| 54 void TestGram(); | 55 void TestGram(); |
| 55 void TestCurrencies(); | 56 void TestCurrencies(); |
| 56 void TestFieldPosition(); | 57 void TestFieldPosition(); |
| 57 void TestFieldPositionMultiple(); | 58 void TestFieldPositionMultiple(); |
| 58 void TestFieldPositionMultipleWithPer(); | |
| 59 void TestBadArg(); | 59 void TestBadArg(); |
| 60 void TestEquality(); | 60 void TestEquality(); |
| 61 void TestGroupingSeparator(); | 61 void TestGroupingSeparator(); |
| 62 void TestDoubleZero(); | 62 void TestDoubleZero(); |
| 63 void TestUnitPerUnitResolution(); |
| 63 void verifyFormat( | 64 void verifyFormat( |
| 64 const char *description, | 65 const char *description, |
| 65 const MeasureFormat &fmt, | 66 const MeasureFormat &fmt, |
| 66 const Measure *measures, | 67 const Measure *measures, |
| 67 int32_t measureCount, | 68 int32_t measureCount, |
| 68 const char *expected); | 69 const char *expected); |
| 69 void verifyFormatWithPrefix( | 70 void verifyFormatWithPrefix( |
| 70 const char *description, | 71 const char *description, |
| 71 const MeasureFormat &fmt, | 72 const MeasureFormat &fmt, |
| 72 const UnicodeString &prefix, | 73 const UnicodeString &prefix, |
| 73 const Measure *measures, | 74 const Measure *measures, |
| 74 int32_t measureCount, | 75 int32_t measureCount, |
| 75 const char *expected); | 76 const char *expected); |
| 76 void verifyFormat( | 77 void verifyFormat( |
| 77 const char *description, | 78 const char *description, |
| 78 const MeasureFormat &fmt, | 79 const MeasureFormat &fmt, |
| 79 const ExpectedResult *expectedResults, | 80 const ExpectedResult *expectedResults, |
| 80 int32_t count); | 81 int32_t count); |
| 81 void helperTestSimplePer( | 82 void helperTestSimplePer( |
| 82 const Locale &locale, | 83 const Locale &locale, |
| 83 UMeasureFormatWidth width, | 84 UMeasureFormatWidth width, |
| 84 double value, | 85 double value, |
| 85 const MeasureUnit &unit, | 86 const MeasureUnit &unit, |
| 86 const MeasureUnit &perUnit, | 87 const MeasureUnit &perUnit, |
| 87 const char *expected); | 88 const char *expected); |
| 88 void helperTestMultiplesWithPer( | 89 void helperTestSimplePer( |
| 89 const Locale &locale, | 90 const Locale &locale, |
| 90 UMeasureFormatWidth width, | 91 UMeasureFormatWidth width, |
| 92 double value, |
| 91 const MeasureUnit &unit, | 93 const MeasureUnit &unit, |
| 92 const char *expected); | 94 const MeasureUnit &perUnit, |
| 95 const char *expected, |
| 96 int32_t field, |
| 97 int32_t expected_start, |
| 98 int32_t expected_end); |
| 93 void helperTestMultiples( | 99 void helperTestMultiples( |
| 94 const Locale &locale, | 100 const Locale &locale, |
| 95 UMeasureFormatWidth width, | 101 UMeasureFormatWidth width, |
| 96 const char *expected); | 102 const char *expected); |
| 97 void verifyFieldPosition( | 103 void verifyFieldPosition( |
| 98 const char *description, | 104 const char *description, |
| 99 const MeasureFormat &fmt, | 105 const MeasureFormat &fmt, |
| 100 const UnicodeString &prefix, | 106 const UnicodeString &prefix, |
| 101 const Measure *measures, | 107 const Measure *measures, |
| 102 int32_t measureCount, | 108 int32_t measureCount, |
| 103 NumberFormat::EAlignmentFields field, | 109 NumberFormat::EAlignmentFields field, |
| 104 int32_t start, | 110 int32_t start, |
| 105 int32_t end); | 111 int32_t end); |
| 106 void verifyFieldPositionWithPer( | |
| 107 const char *description, | |
| 108 const MeasureFormat &fmt, | |
| 109 const UnicodeString &prefix, | |
| 110 const Measure *measures, | |
| 111 int32_t measureCount, | |
| 112 const MeasureUnit &perUnit, | |
| 113 NumberFormat::EAlignmentFields field, | |
| 114 int32_t start, | |
| 115 int32_t end); | |
| 116 }; | 112 }; |
| 117 | 113 |
| 118 void MeasureFormatTest::runIndexedTest( | 114 void MeasureFormatTest::runIndexedTest( |
| 119 int32_t index, UBool exec, const char *&name, char *) { | 115 int32_t index, UBool exec, const char *&name, char *) { |
| 120 if (exec) { | 116 if (exec) { |
| 121 logln("TestSuite MeasureFormatTest: "); | 117 logln("TestSuite MeasureFormatTest: "); |
| 122 } | 118 } |
| 123 TESTCASE_AUTO_BEGIN; | 119 TESTCASE_AUTO_BEGIN; |
| 124 TESTCASE_AUTO(TestBasic); | 120 TESTCASE_AUTO(TestBasic); |
| 125 TESTCASE_AUTO(TestCompatible53_1); | 121 TESTCASE_AUTO(TestCompatible53_1); |
| 126 TESTCASE_AUTO(TestCompatible54_1); | 122 TESTCASE_AUTO(TestCompatible54_1); |
| 123 TESTCASE_AUTO(TestCompatible55_1); |
| 124 TESTCASE_AUTO(TestCompatible56_1); |
| 127 TESTCASE_AUTO(TestGetAvailable); | 125 TESTCASE_AUTO(TestGetAvailable); |
| 128 TESTCASE_AUTO(TestExamplesInDocs); | 126 TESTCASE_AUTO(TestExamplesInDocs); |
| 129 TESTCASE_AUTO(TestFormatPeriodEn); | 127 TESTCASE_AUTO(TestFormatPeriodEn); |
| 130 TESTCASE_AUTO(Test10219FractionalPlurals); | 128 TESTCASE_AUTO(Test10219FractionalPlurals); |
| 131 TESTCASE_AUTO(TestGreek); | 129 TESTCASE_AUTO(TestGreek); |
| 132 TESTCASE_AUTO(TestFormatSingleArg); | 130 TESTCASE_AUTO(TestFormatSingleArg); |
| 133 TESTCASE_AUTO(TestFormatMeasuresZeroArg); | 131 TESTCASE_AUTO(TestFormatMeasuresZeroArg); |
| 134 TESTCASE_AUTO(TestMultiplesWithPer); | |
| 135 TESTCASE_AUTO(TestSimplePer); | 132 TESTCASE_AUTO(TestSimplePer); |
| 136 TESTCASE_AUTO(TestNumeratorPlurals); | 133 TESTCASE_AUTO(TestNumeratorPlurals); |
| 137 TESTCASE_AUTO(TestMultiples); | 134 TESTCASE_AUTO(TestMultiples); |
| 138 TESTCASE_AUTO(TestGram); | 135 TESTCASE_AUTO(TestGram); |
| 139 TESTCASE_AUTO(TestCurrencies); | 136 TESTCASE_AUTO(TestCurrencies); |
| 140 TESTCASE_AUTO(TestFieldPosition); | 137 TESTCASE_AUTO(TestFieldPosition); |
| 141 TESTCASE_AUTO(TestFieldPositionMultiple); | 138 TESTCASE_AUTO(TestFieldPositionMultiple); |
| 142 TESTCASE_AUTO(TestFieldPositionMultipleWithPer); | |
| 143 TESTCASE_AUTO(TestBadArg); | 139 TESTCASE_AUTO(TestBadArg); |
| 144 TESTCASE_AUTO(TestEquality); | 140 TESTCASE_AUTO(TestEquality); |
| 145 TESTCASE_AUTO(TestGroupingSeparator); | 141 TESTCASE_AUTO(TestGroupingSeparator); |
| 146 TESTCASE_AUTO(TestDoubleZero); | 142 TESTCASE_AUTO(TestDoubleZero); |
| 143 TESTCASE_AUTO(TestUnitPerUnitResolution); |
| 147 TESTCASE_AUTO_END; | 144 TESTCASE_AUTO_END; |
| 148 } | 145 } |
| 149 | 146 |
| 150 void MeasureFormatTest::TestCompatible53_1() { | 147 void MeasureFormatTest::TestCompatible53_1() { |
| 151 UErrorCode status = U_ZERO_ERROR; | 148 UErrorCode status = U_ZERO_ERROR; |
| 152 LocalPointer<MeasureUnit> measureUnit; | 149 LocalPointer<MeasureUnit> measureUnit; |
| 153 measureUnit.adoptInstead(MeasureUnit::createGForce(status)); | 150 measureUnit.adoptInstead(MeasureUnit::createGForce(status)); |
| 154 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status)); | 151 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status)); |
| 155 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status)); | 152 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status)); |
| 156 measureUnit.adoptInstead(MeasureUnit::createDegree(status)); | 153 measureUnit.adoptInstead(MeasureUnit::createDegree(status)); |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 319 measureUnit.adoptInstead(MeasureUnit::createLiter(status)); | 316 measureUnit.adoptInstead(MeasureUnit::createLiter(status)); |
| 320 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status)); | 317 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status)); |
| 321 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status)); | 318 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status)); |
| 322 measureUnit.adoptInstead(MeasureUnit::createPint(status)); | 319 measureUnit.adoptInstead(MeasureUnit::createPint(status)); |
| 323 measureUnit.adoptInstead(MeasureUnit::createQuart(status)); | 320 measureUnit.adoptInstead(MeasureUnit::createQuart(status)); |
| 324 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status)); | 321 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status)); |
| 325 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status)); | 322 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status)); |
| 326 assertSuccess("", status); | 323 assertSuccess("", status); |
| 327 } | 324 } |
| 328 | 325 |
| 326 void MeasureFormatTest::TestCompatible55_1() { |
| 327 UErrorCode status = U_ZERO_ERROR; |
| 328 LocalPointer<MeasureUnit> measureUnit; |
| 329 measureUnit.adoptInstead(MeasureUnit::createGForce(status)); |
| 330 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status)); |
| 331 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status)); |
| 332 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status)); |
| 333 measureUnit.adoptInstead(MeasureUnit::createDegree(status)); |
| 334 measureUnit.adoptInstead(MeasureUnit::createRadian(status)); |
| 335 measureUnit.adoptInstead(MeasureUnit::createAcre(status)); |
| 336 measureUnit.adoptInstead(MeasureUnit::createHectare(status)); |
| 337 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status)); |
| 338 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status)); |
| 339 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status)); |
| 340 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status)); |
| 341 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status)); |
| 342 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status)); |
| 343 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status)); |
| 344 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status)); |
| 345 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status)); |
| 346 measureUnit.adoptInstead(MeasureUnit::createBit(status)); |
| 347 measureUnit.adoptInstead(MeasureUnit::createByte(status)); |
| 348 measureUnit.adoptInstead(MeasureUnit::createGigabit(status)); |
| 349 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status)); |
| 350 measureUnit.adoptInstead(MeasureUnit::createKilobit(status)); |
| 351 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status)); |
| 352 measureUnit.adoptInstead(MeasureUnit::createMegabit(status)); |
| 353 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status)); |
| 354 measureUnit.adoptInstead(MeasureUnit::createTerabit(status)); |
| 355 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status)); |
| 356 measureUnit.adoptInstead(MeasureUnit::createDay(status)); |
| 357 measureUnit.adoptInstead(MeasureUnit::createHour(status)); |
| 358 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status)); |
| 359 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status)); |
| 360 measureUnit.adoptInstead(MeasureUnit::createMinute(status)); |
| 361 measureUnit.adoptInstead(MeasureUnit::createMonth(status)); |
| 362 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status)); |
| 363 measureUnit.adoptInstead(MeasureUnit::createSecond(status)); |
| 364 measureUnit.adoptInstead(MeasureUnit::createWeek(status)); |
| 365 measureUnit.adoptInstead(MeasureUnit::createYear(status)); |
| 366 measureUnit.adoptInstead(MeasureUnit::createAmpere(status)); |
| 367 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status)); |
| 368 measureUnit.adoptInstead(MeasureUnit::createOhm(status)); |
| 369 measureUnit.adoptInstead(MeasureUnit::createVolt(status)); |
| 370 measureUnit.adoptInstead(MeasureUnit::createCalorie(status)); |
| 371 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status)); |
| 372 measureUnit.adoptInstead(MeasureUnit::createJoule(status)); |
| 373 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status)); |
| 374 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status)); |
| 375 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status)); |
| 376 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status)); |
| 377 measureUnit.adoptInstead(MeasureUnit::createHertz(status)); |
| 378 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status)); |
| 379 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status)); |
| 380 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status)); |
| 381 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status)); |
| 382 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status)); |
| 383 measureUnit.adoptInstead(MeasureUnit::createFathom(status)); |
| 384 measureUnit.adoptInstead(MeasureUnit::createFoot(status)); |
| 385 measureUnit.adoptInstead(MeasureUnit::createFurlong(status)); |
| 386 measureUnit.adoptInstead(MeasureUnit::createInch(status)); |
| 387 measureUnit.adoptInstead(MeasureUnit::createKilometer(status)); |
| 388 measureUnit.adoptInstead(MeasureUnit::createLightYear(status)); |
| 389 measureUnit.adoptInstead(MeasureUnit::createMeter(status)); |
| 390 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status)); |
| 391 measureUnit.adoptInstead(MeasureUnit::createMile(status)); |
| 392 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status)); |
| 393 measureUnit.adoptInstead(MeasureUnit::createNanometer(status)); |
| 394 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status)); |
| 395 measureUnit.adoptInstead(MeasureUnit::createParsec(status)); |
| 396 measureUnit.adoptInstead(MeasureUnit::createPicometer(status)); |
| 397 measureUnit.adoptInstead(MeasureUnit::createYard(status)); |
| 398 measureUnit.adoptInstead(MeasureUnit::createLux(status)); |
| 399 measureUnit.adoptInstead(MeasureUnit::createCarat(status)); |
| 400 measureUnit.adoptInstead(MeasureUnit::createGram(status)); |
| 401 measureUnit.adoptInstead(MeasureUnit::createKilogram(status)); |
| 402 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status)); |
| 403 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status)); |
| 404 measureUnit.adoptInstead(MeasureUnit::createMilligram(status)); |
| 405 measureUnit.adoptInstead(MeasureUnit::createOunce(status)); |
| 406 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status)); |
| 407 measureUnit.adoptInstead(MeasureUnit::createPound(status)); |
| 408 measureUnit.adoptInstead(MeasureUnit::createStone(status)); |
| 409 measureUnit.adoptInstead(MeasureUnit::createTon(status)); |
| 410 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status)); |
| 411 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status)); |
| 412 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status)); |
| 413 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status)); |
| 414 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status)); |
| 415 measureUnit.adoptInstead(MeasureUnit::createWatt(status)); |
| 416 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status)); |
| 417 measureUnit.adoptInstead(MeasureUnit::createInchHg(status)); |
| 418 measureUnit.adoptInstead(MeasureUnit::createMillibar(status)); |
| 419 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status)); |
| 420 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status)); |
| 421 measureUnit.adoptInstead(MeasureUnit::createKarat(status)); |
| 422 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status)); |
| 423 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status)); |
| 424 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status)); |
| 425 measureUnit.adoptInstead(MeasureUnit::createCelsius(status)); |
| 426 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status)); |
| 427 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status)); |
| 428 measureUnit.adoptInstead(MeasureUnit::createKelvin(status)); |
| 429 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status)); |
| 430 measureUnit.adoptInstead(MeasureUnit::createBushel(status)); |
| 431 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status)); |
| 432 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status)); |
| 433 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status)); |
| 434 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status)); |
| 435 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status)); |
| 436 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status)); |
| 437 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status)); |
| 438 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status)); |
| 439 measureUnit.adoptInstead(MeasureUnit::createCup(status)); |
| 440 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status)); |
| 441 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status)); |
| 442 measureUnit.adoptInstead(MeasureUnit::createGallon(status)); |
| 443 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status)); |
| 444 measureUnit.adoptInstead(MeasureUnit::createLiter(status)); |
| 445 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status)); |
| 446 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status)); |
| 447 measureUnit.adoptInstead(MeasureUnit::createPint(status)); |
| 448 measureUnit.adoptInstead(MeasureUnit::createQuart(status)); |
| 449 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status)); |
| 450 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status)); |
| 451 assertSuccess("", status); |
| 452 } |
| 453 |
| 454 void MeasureFormatTest::TestCompatible56_1() { |
| 455 UErrorCode status = U_ZERO_ERROR; |
| 456 LocalPointer<MeasureUnit> measureUnit; |
| 457 measureUnit.adoptInstead(MeasureUnit::createGForce(status)); |
| 458 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status)); |
| 459 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status)); |
| 460 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status)); |
| 461 measureUnit.adoptInstead(MeasureUnit::createDegree(status)); |
| 462 measureUnit.adoptInstead(MeasureUnit::createRadian(status)); |
| 463 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status)); |
| 464 measureUnit.adoptInstead(MeasureUnit::createAcre(status)); |
| 465 measureUnit.adoptInstead(MeasureUnit::createHectare(status)); |
| 466 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status)); |
| 467 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status)); |
| 468 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status)); |
| 469 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status)); |
| 470 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status)); |
| 471 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status)); |
| 472 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status)); |
| 473 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status)); |
| 474 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status)); |
| 475 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status)); |
| 476 measureUnit.adoptInstead(MeasureUnit::createBit(status)); |
| 477 measureUnit.adoptInstead(MeasureUnit::createByte(status)); |
| 478 measureUnit.adoptInstead(MeasureUnit::createGigabit(status)); |
| 479 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status)); |
| 480 measureUnit.adoptInstead(MeasureUnit::createKilobit(status)); |
| 481 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status)); |
| 482 measureUnit.adoptInstead(MeasureUnit::createMegabit(status)); |
| 483 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status)); |
| 484 measureUnit.adoptInstead(MeasureUnit::createTerabit(status)); |
| 485 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status)); |
| 486 measureUnit.adoptInstead(MeasureUnit::createCentury(status)); |
| 487 measureUnit.adoptInstead(MeasureUnit::createDay(status)); |
| 488 measureUnit.adoptInstead(MeasureUnit::createHour(status)); |
| 489 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status)); |
| 490 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status)); |
| 491 measureUnit.adoptInstead(MeasureUnit::createMinute(status)); |
| 492 measureUnit.adoptInstead(MeasureUnit::createMonth(status)); |
| 493 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status)); |
| 494 measureUnit.adoptInstead(MeasureUnit::createSecond(status)); |
| 495 measureUnit.adoptInstead(MeasureUnit::createWeek(status)); |
| 496 measureUnit.adoptInstead(MeasureUnit::createYear(status)); |
| 497 measureUnit.adoptInstead(MeasureUnit::createAmpere(status)); |
| 498 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status)); |
| 499 measureUnit.adoptInstead(MeasureUnit::createOhm(status)); |
| 500 measureUnit.adoptInstead(MeasureUnit::createVolt(status)); |
| 501 measureUnit.adoptInstead(MeasureUnit::createCalorie(status)); |
| 502 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status)); |
| 503 measureUnit.adoptInstead(MeasureUnit::createJoule(status)); |
| 504 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status)); |
| 505 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status)); |
| 506 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status)); |
| 507 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status)); |
| 508 measureUnit.adoptInstead(MeasureUnit::createHertz(status)); |
| 509 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status)); |
| 510 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status)); |
| 511 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status)); |
| 512 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status)); |
| 513 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status)); |
| 514 measureUnit.adoptInstead(MeasureUnit::createFathom(status)); |
| 515 measureUnit.adoptInstead(MeasureUnit::createFoot(status)); |
| 516 measureUnit.adoptInstead(MeasureUnit::createFurlong(status)); |
| 517 measureUnit.adoptInstead(MeasureUnit::createInch(status)); |
| 518 measureUnit.adoptInstead(MeasureUnit::createKilometer(status)); |
| 519 measureUnit.adoptInstead(MeasureUnit::createLightYear(status)); |
| 520 measureUnit.adoptInstead(MeasureUnit::createMeter(status)); |
| 521 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status)); |
| 522 measureUnit.adoptInstead(MeasureUnit::createMile(status)); |
| 523 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status)); |
| 524 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status)); |
| 525 measureUnit.adoptInstead(MeasureUnit::createNanometer(status)); |
| 526 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status)); |
| 527 measureUnit.adoptInstead(MeasureUnit::createParsec(status)); |
| 528 measureUnit.adoptInstead(MeasureUnit::createPicometer(status)); |
| 529 measureUnit.adoptInstead(MeasureUnit::createYard(status)); |
| 530 measureUnit.adoptInstead(MeasureUnit::createLux(status)); |
| 531 measureUnit.adoptInstead(MeasureUnit::createCarat(status)); |
| 532 measureUnit.adoptInstead(MeasureUnit::createGram(status)); |
| 533 measureUnit.adoptInstead(MeasureUnit::createKilogram(status)); |
| 534 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status)); |
| 535 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status)); |
| 536 measureUnit.adoptInstead(MeasureUnit::createMilligram(status)); |
| 537 measureUnit.adoptInstead(MeasureUnit::createOunce(status)); |
| 538 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status)); |
| 539 measureUnit.adoptInstead(MeasureUnit::createPound(status)); |
| 540 measureUnit.adoptInstead(MeasureUnit::createStone(status)); |
| 541 measureUnit.adoptInstead(MeasureUnit::createTon(status)); |
| 542 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status)); |
| 543 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status)); |
| 544 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status)); |
| 545 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status)); |
| 546 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status)); |
| 547 measureUnit.adoptInstead(MeasureUnit::createWatt(status)); |
| 548 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status)); |
| 549 measureUnit.adoptInstead(MeasureUnit::createInchHg(status)); |
| 550 measureUnit.adoptInstead(MeasureUnit::createMillibar(status)); |
| 551 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status)); |
| 552 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status)); |
| 553 measureUnit.adoptInstead(MeasureUnit::createKarat(status)); |
| 554 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status)); |
| 555 measureUnit.adoptInstead(MeasureUnit::createKnot(status)); |
| 556 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status)); |
| 557 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status)); |
| 558 measureUnit.adoptInstead(MeasureUnit::createCelsius(status)); |
| 559 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status)); |
| 560 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status)); |
| 561 measureUnit.adoptInstead(MeasureUnit::createKelvin(status)); |
| 562 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status)); |
| 563 measureUnit.adoptInstead(MeasureUnit::createBushel(status)); |
| 564 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status)); |
| 565 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status)); |
| 566 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status)); |
| 567 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status)); |
| 568 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status)); |
| 569 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status)); |
| 570 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status)); |
| 571 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status)); |
| 572 measureUnit.adoptInstead(MeasureUnit::createCup(status)); |
| 573 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status)); |
| 574 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status)); |
| 575 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status)); |
| 576 measureUnit.adoptInstead(MeasureUnit::createGallon(status)); |
| 577 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status)); |
| 578 measureUnit.adoptInstead(MeasureUnit::createLiter(status)); |
| 579 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status)); |
| 580 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status)); |
| 581 measureUnit.adoptInstead(MeasureUnit::createPint(status)); |
| 582 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status)); |
| 583 measureUnit.adoptInstead(MeasureUnit::createQuart(status)); |
| 584 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status)); |
| 585 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status)); |
| 586 assertSuccess("", status); |
| 587 } |
| 588 |
| 329 void MeasureFormatTest::TestBasic() { | 589 void MeasureFormatTest::TestBasic() { |
| 330 UErrorCode status = U_ZERO_ERROR; | 590 UErrorCode status = U_ZERO_ERROR; |
| 331 MeasureUnit *ptr1 = MeasureUnit::createArcMinute(status); | 591 MeasureUnit *ptr1 = MeasureUnit::createArcMinute(status); |
| 332 MeasureUnit *ptr2 = MeasureUnit::createArcMinute(status); | 592 MeasureUnit *ptr2 = MeasureUnit::createArcMinute(status); |
| 333 if (!(*ptr1 == *ptr2)) { | 593 if (!(*ptr1 == *ptr2)) { |
| 334 errln("Expect == to work."); | 594 errln("Expect == to work."); |
| 335 } | 595 } |
| 336 if (*ptr1 != *ptr2) { | 596 if (*ptr1 != *ptr2) { |
| 337 errln("Expect != to work."); | 597 errln("Expect != to work."); |
| 338 } | 598 } |
| (...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 582 | 842 |
| 583 ExpectedResult fullData[] = { | 843 ExpectedResult fullData[] = { |
| 584 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1 minute, 59.9996 sec
onds"}, | 844 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1 minute, 59.9996 sec
onds"}, |
| 585 {t_19m, UPRV_LENGTHOF(t_19m), "19 minutes"}, | 845 {t_19m, UPRV_LENGTHOF(t_19m), "19 minutes"}, |
| 586 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1 hour, 23.5 seconds"}, | 846 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1 hour, 23.5 seconds"}, |
| 587 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1 hour, 23.5 minutes"}, | 847 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1 hour, 23.5 minutes"}, |
| 588 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1 hour, 0 minutes, 23 sec
onds"}, | 848 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1 hour, 0 minutes, 23 sec
onds"}, |
| 589 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2 years, 5 months, 3
weeks, 4 days"}}; | 849 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2 years, 5 months, 3
weeks, 4 days"}}; |
| 590 | 850 |
| 591 ExpectedResult abbrevData[] = { | 851 ExpectedResult abbrevData[] = { |
| 592 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1 min, 59.9996 secs"}
, | 852 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1 min, 59.9996 sec"}, |
| 593 {t_19m, UPRV_LENGTHOF(t_19m), "19 mins"}, | 853 {t_19m, UPRV_LENGTHOF(t_19m), "19 min"}, |
| 594 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1 hr, 23.5 secs"}, | 854 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1 hr, 23.5 sec"}, |
| 595 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1 hr, 23.5 mins"}, | 855 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1 hr, 23.5 min"}, |
| 596 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1 hr, 0 mins, 23 secs"}, | 856 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1 hr, 0 min, 23 sec"}, |
| 597 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2 yrs, 5 mths, 3 wks,
4 days"}}; | 857 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2 yrs, 5 mths, 3 wks,
4 days"}}; |
| 598 | 858 |
| 599 ExpectedResult narrowData[] = { | 859 ExpectedResult narrowData[] = { |
| 600 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1m 59.9996s"}, | 860 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1m 59.9996s"}, |
| 601 {t_19m, UPRV_LENGTHOF(t_19m), "19m"}, | 861 {t_19m, UPRV_LENGTHOF(t_19m), "19m"}, |
| 602 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1h 23.5s"}, | 862 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1h 23.5s"}, |
| 603 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1h 23.5m"}, | 863 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1h 23.5m"}, |
| 604 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1h 0m 23s"}, | 864 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1h 0m 23s"}, |
| 605 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2y 5m 3w 4d"}}; | 865 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2y 5m 3w 4d"}}; |
| 606 | 866 |
| (...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 864 UnicodeString("3.5 feet"), | 1124 UnicodeString("3.5 feet"), |
| 865 buffer); | 1125 buffer); |
| 866 } | 1126 } |
| 867 | 1127 |
| 868 void MeasureFormatTest::TestFormatMeasuresZeroArg() { | 1128 void MeasureFormatTest::TestFormatMeasuresZeroArg() { |
| 869 UErrorCode status = U_ZERO_ERROR; | 1129 UErrorCode status = U_ZERO_ERROR; |
| 870 MeasureFormat fmt("en", UMEASFMT_WIDTH_WIDE, status); | 1130 MeasureFormat fmt("en", UMEASFMT_WIDTH_WIDE, status); |
| 871 verifyFormat("TestFormatMeasuresZeroArg", fmt, NULL, 0, ""); | 1131 verifyFormat("TestFormatMeasuresZeroArg", fmt, NULL, 0, ""); |
| 872 } | 1132 } |
| 873 | 1133 |
| 874 void MeasureFormatTest::TestMultiplesWithPer() { | |
| 875 Locale en("en"); | |
| 876 UErrorCode status = U_ZERO_ERROR; | |
| 877 LocalPointer<MeasureUnit> second(MeasureUnit::createSecond(status)); | |
| 878 LocalPointer<MeasureUnit> minute(MeasureUnit::createMinute(status)); | |
| 879 if (!assertSuccess("", status)) { | |
| 880 return; | |
| 881 } | |
| 882 | |
| 883 // Per unit test. | |
| 884 helperTestMultiplesWithPer( | |
| 885 en, UMEASFMT_WIDTH_WIDE, *second, "2 miles, 1 foot, 2.3 inches per s
econd"); | |
| 886 helperTestMultiplesWithPer( | |
| 887 en, UMEASFMT_WIDTH_SHORT, *second, "2 mi, 1 ft, 2.3 inps"); | |
| 888 helperTestMultiplesWithPer( | |
| 889 en, UMEASFMT_WIDTH_NARROW, *second, "2mi 1\\u2032 2.3\\u2033/s"); | |
| 890 | |
| 891 // Fallback compound per test | |
| 892 helperTestMultiplesWithPer( | |
| 893 en, UMEASFMT_WIDTH_WIDE, *minute, "2 miles, 1 foot, 2.3 inches per m
inute"); | |
| 894 helperTestMultiplesWithPer( | |
| 895 en, UMEASFMT_WIDTH_SHORT, *minute, "2 mi, 1 ft, 2.3 in/min"); | |
| 896 helperTestMultiplesWithPer( | |
| 897 en, UMEASFMT_WIDTH_NARROW, *minute, "2mi 1\\u2032 2.3\\u2033/m"); | |
| 898 } | |
| 899 | |
| 900 void MeasureFormatTest::TestSimplePer() { | 1134 void MeasureFormatTest::TestSimplePer() { |
| 901 Locale en("en"); | 1135 Locale en("en"); |
| 902 UErrorCode status = U_ZERO_ERROR; | 1136 UErrorCode status = U_ZERO_ERROR; |
| 903 LocalPointer<MeasureUnit> second(MeasureUnit::createSecond(status)); | 1137 LocalPointer<MeasureUnit> second(MeasureUnit::createSecond(status)); |
| 904 LocalPointer<MeasureUnit> minute(MeasureUnit::createMinute(status)); | 1138 LocalPointer<MeasureUnit> minute(MeasureUnit::createMinute(status)); |
| 905 LocalPointer<MeasureUnit> pound(MeasureUnit::createPound(status)); | 1139 LocalPointer<MeasureUnit> pound(MeasureUnit::createPound(status)); |
| 906 if (!assertSuccess("", status)) { | 1140 if (!assertSuccess("", status)) { |
| 907 return; | 1141 return; |
| 908 } | 1142 } |
| 909 | 1143 |
| 910 helperTestSimplePer( | 1144 helperTestSimplePer( |
| 911 en, UMEASFMT_WIDTH_SHORT, 1.0, *pound, *second, "1 lbps"); | 1145 en, UMEASFMT_WIDTH_WIDE, |
| 1146 1.0, *pound, *second, "1 pound per second"); |
| 912 helperTestSimplePer( | 1147 helperTestSimplePer( |
| 913 en, UMEASFMT_WIDTH_SHORT, 2.0, *pound, *second, "2 lbps"); | 1148 en, UMEASFMT_WIDTH_WIDE, |
| 1149 2.0, *pound, *second, "2 pounds per second"); |
| 1150 helperTestSimplePer( |
| 1151 en, UMEASFMT_WIDTH_WIDE, |
| 1152 1.0, *pound, *minute, "1 pound per minute"); |
| 1153 helperTestSimplePer( |
| 1154 en, UMEASFMT_WIDTH_WIDE, |
| 1155 2.0, *pound, *minute, "2 pounds per minute"); |
| 1156 |
| 1157 helperTestSimplePer( |
| 1158 en, UMEASFMT_WIDTH_SHORT, 1.0, *pound, *second, "1 lb/s"); |
| 1159 helperTestSimplePer( |
| 1160 en, UMEASFMT_WIDTH_SHORT, 2.0, *pound, *second, "2 lb/s"); |
| 914 helperTestSimplePer( | 1161 helperTestSimplePer( |
| 915 en, UMEASFMT_WIDTH_SHORT, 1.0, *pound, *minute, "1 lb/min"); | 1162 en, UMEASFMT_WIDTH_SHORT, 1.0, *pound, *minute, "1 lb/min"); |
| 916 helperTestSimplePer( | 1163 helperTestSimplePer( |
| 917 en, UMEASFMT_WIDTH_SHORT, 2.0, *pound, *minute, "2 lb/min"); | 1164 en, UMEASFMT_WIDTH_SHORT, 2.0, *pound, *minute, "2 lb/min"); |
| 1165 |
| 1166 helperTestSimplePer( |
| 1167 en, UMEASFMT_WIDTH_NARROW, 1.0, *pound, *second, "1#/s"); |
| 1168 helperTestSimplePer( |
| 1169 en, UMEASFMT_WIDTH_NARROW, 2.0, *pound, *second, "2#/s"); |
| 1170 helperTestSimplePer( |
| 1171 en, UMEASFMT_WIDTH_NARROW, 1.0, *pound, *minute, "1#/min"); |
| 1172 helperTestSimplePer( |
| 1173 en, UMEASFMT_WIDTH_NARROW, 2.0, *pound, *minute, "2#/min"); |
| 1174 |
| 1175 helperTestSimplePer( |
| 1176 en, UMEASFMT_WIDTH_SHORT, |
| 1177 23.3, *pound, *second, "23.3 lb/s", |
| 1178 NumberFormat::kDecimalSeparatorField, |
| 1179 2, 3); |
| 1180 |
| 1181 helperTestSimplePer( |
| 1182 en, UMEASFMT_WIDTH_SHORT, |
| 1183 23.3, *pound, *second, "23.3 lb/s", |
| 1184 NumberFormat::kIntegerField, |
| 1185 0, 2); |
| 1186 |
| 1187 helperTestSimplePer( |
| 1188 en, UMEASFMT_WIDTH_SHORT, |
| 1189 23.3, *pound, *minute, "23.3 lb/min", |
| 1190 NumberFormat::kDecimalSeparatorField, |
| 1191 2, 3); |
| 1192 |
| 1193 helperTestSimplePer( |
| 1194 en, UMEASFMT_WIDTH_SHORT, |
| 1195 23.3, *pound, *minute, "23.3 lb/min", |
| 1196 NumberFormat::kIntegerField, |
| 1197 0, 2); |
| 918 } | 1198 } |
| 919 | 1199 |
| 920 void MeasureFormatTest::TestNumeratorPlurals() { | 1200 void MeasureFormatTest::TestNumeratorPlurals() { |
| 921 Locale pl("pl"); | 1201 Locale pl("pl"); |
| 922 UErrorCode status = U_ZERO_ERROR; | 1202 UErrorCode status = U_ZERO_ERROR; |
| 923 LocalPointer<MeasureUnit> second(MeasureUnit::createSecond(status)); | 1203 LocalPointer<MeasureUnit> second(MeasureUnit::createSecond(status)); |
| 924 LocalPointer<MeasureUnit> foot(MeasureUnit::createFoot(status)); | 1204 LocalPointer<MeasureUnit> foot(MeasureUnit::createFoot(status)); |
| 925 if (!assertSuccess("", status)) { | 1205 if (!assertSuccess("", status)) { |
| 926 return; | 1206 return; |
| 927 } | 1207 } |
| 928 | 1208 |
| 929 helperTestSimplePer( | 1209 helperTestSimplePer( |
| 930 pl, UMEASFMT_WIDTH_WIDE, 1.0, *foot, *second, "1 stopa na sekund\\u0
119"); | 1210 pl, |
| 1211 UMEASFMT_WIDTH_WIDE, |
| 1212 1.0, *foot, *second, "1 stopa na sekund\\u0119"); |
| 931 helperTestSimplePer( | 1213 helperTestSimplePer( |
| 932 pl, UMEASFMT_WIDTH_WIDE, 2.0, *foot, *second, "2 stopy na sekund\\u0
119"); | 1214 pl, |
| 1215 UMEASFMT_WIDTH_WIDE, |
| 1216 2.0, *foot, *second, "2 stopy na sekund\\u0119"); |
| 933 helperTestSimplePer( | 1217 helperTestSimplePer( |
| 934 pl, UMEASFMT_WIDTH_WIDE, 5.0, *foot, *second, "5 st\\u00f3p na sekun
d\\u0119"); | 1218 pl, |
| 1219 UMEASFMT_WIDTH_WIDE, |
| 1220 5.0, *foot, *second, "5 st\\u00f3p na sekund\\u0119"); |
| 935 helperTestSimplePer( | 1221 helperTestSimplePer( |
| 936 pl, UMEASFMT_WIDTH_WIDE, 1.5, *foot, *second, "1,5 stopy na sekund\\
u0119"); | 1222 pl, UMEASFMT_WIDTH_WIDE, |
| 1223 1.5, *foot, *second, "1,5 stopy na sekund\\u0119"); |
| 937 } | 1224 } |
| 938 | 1225 |
| 939 void MeasureFormatTest::helperTestSimplePer( | 1226 void MeasureFormatTest::helperTestSimplePer( |
| 940 const Locale &locale, | 1227 const Locale &locale, |
| 941 UMeasureFormatWidth width, | 1228 UMeasureFormatWidth width, |
| 942 double value, | 1229 double value, |
| 943 const MeasureUnit &unit, | 1230 const MeasureUnit &unit, |
| 944 const MeasureUnit &perUnit, | 1231 const MeasureUnit &perUnit, |
| 945 const char *expected) { | 1232 const char *expected) { |
| 1233 helperTestSimplePer( |
| 1234 locale, |
| 1235 width, |
| 1236 value, |
| 1237 unit, |
| 1238 perUnit, |
| 1239 expected, |
| 1240 FieldPosition::DONT_CARE, |
| 1241 0, |
| 1242 0); |
| 1243 } |
| 1244 |
| 1245 void MeasureFormatTest::helperTestSimplePer( |
| 1246 const Locale &locale, |
| 1247 UMeasureFormatWidth width, |
| 1248 double value, |
| 1249 const MeasureUnit &unit, |
| 1250 const MeasureUnit &perUnit, |
| 1251 const char *expected, |
| 1252 int32_t field, |
| 1253 int32_t expected_start, |
| 1254 int32_t expected_end) { |
| 946 UErrorCode status = U_ZERO_ERROR; | 1255 UErrorCode status = U_ZERO_ERROR; |
| 947 FieldPosition pos(0); | 1256 FieldPosition pos(field); |
| 948 MeasureFormat fmt(locale, width, status); | 1257 MeasureFormat fmt(locale, width, status); |
| 949 if (!assertSuccess("Error creating format object", status)) { | 1258 if (!assertSuccess("Error creating format object", status)) { |
| 950 return; | 1259 return; |
| 951 } | 1260 } |
| 952 Measure measure(value, (MeasureUnit *) unit.clone(), status); | 1261 Measure measure(value, (MeasureUnit *) unit.clone(), status); |
| 953 if (!assertSuccess("Error creating measure object", status)) { | 1262 if (!assertSuccess("Error creating measure object", status)) { |
| 954 return; | 1263 return; |
| 955 } | 1264 } |
| 956 UnicodeString buffer; | 1265 UnicodeString prefix("prefix: "); |
| 957 fmt.formatMeasuresPer( | 1266 UnicodeString buffer(prefix); |
| 958 &measure, | 1267 fmt.formatMeasurePerUnit( |
| 959 1, | 1268 measure, |
| 960 perUnit, | 1269 perUnit, |
| 961 buffer, | 1270 buffer, |
| 962 pos, | 1271 pos, |
| 963 status); | |
| 964 if (!assertSuccess("Error formatting measures with per", status)) { | |
| 965 return; | |
| 966 } | |
| 967 assertEquals( | |
| 968 "TestSimplePer", | |
| 969 UnicodeString(expected).unescape(), | |
| 970 buffer); | |
| 971 } | |
| 972 | |
| 973 void MeasureFormatTest::helperTestMultiplesWithPer( | |
| 974 const Locale &locale, | |
| 975 UMeasureFormatWidth width, | |
| 976 const MeasureUnit &perUnit, | |
| 977 const char *expected) { | |
| 978 UErrorCode status = U_ZERO_ERROR; | |
| 979 FieldPosition pos(0); | |
| 980 MeasureFormat fmt(locale, width, status); | |
| 981 if (!assertSuccess("Error creating format object", status)) { | |
| 982 return; | |
| 983 } | |
| 984 Measure measures[] = { | |
| 985 Measure(2, MeasureUnit::createMile(status), status), | |
| 986 Measure(1, MeasureUnit::createFoot(status), status), | |
| 987 Measure(2.3, MeasureUnit::createInch(status), status)}; | |
| 988 if (!assertSuccess("Error creating measures", status)) { | |
| 989 return; | |
| 990 } | |
| 991 UnicodeString buffer; | |
| 992 fmt.formatMeasuresPer( | |
| 993 measures, | |
| 994 UPRV_LENGTHOF(measures), | |
| 995 perUnit, | |
| 996 buffer, | |
| 997 pos, | |
| 998 status); | 1272 status); |
| 999 if (!assertSuccess("Error formatting measures with per", status)) { | 1273 if (!assertSuccess("Error formatting measures with per", status)) { |
| 1000 return; | 1274 return; |
| 1001 } | 1275 } |
| 1276 UnicodeString uexpected(expected); |
| 1277 uexpected = prefix + uexpected; |
| 1002 assertEquals( | 1278 assertEquals( |
| 1003 "TestMultiplesWithPer", | 1279 "TestSimplePer", |
| 1004 UnicodeString(expected).unescape(), | 1280 uexpected.unescape(), |
| 1005 buffer); | 1281 buffer); |
| 1282 if (field != FieldPosition::DONT_CARE) { |
| 1283 assertEquals( |
| 1284 "Start", expected_start, pos.getBeginIndex() - prefix.length()); |
| 1285 assertEquals( |
| 1286 "End", expected_end, pos.getEndIndex() - prefix.length()); |
| 1287 } |
| 1006 } | 1288 } |
| 1007 | 1289 |
| 1008 void MeasureFormatTest::TestMultiples() { | 1290 void MeasureFormatTest::TestMultiples() { |
| 1009 Locale ru("ru"); | 1291 Locale ru("ru"); |
| 1010 Locale en("en"); | 1292 Locale en("en"); |
| 1011 helperTestMultiples(en, UMEASFMT_WIDTH_WIDE, "2 miles, 1 foot, 2.3 inches"); | 1293 helperTestMultiples(en, UMEASFMT_WIDTH_WIDE, "2 miles, 1 foot, 2.3 inches"); |
| 1012 helperTestMultiples(en, UMEASFMT_WIDTH_SHORT, "2 mi, 1 ft, 2.3 in"); | 1294 helperTestMultiples(en, UMEASFMT_WIDTH_SHORT, "2 mi, 1 ft, 2.3 in"); |
| 1013 helperTestMultiples(en, UMEASFMT_WIDTH_NARROW, "2mi 1\\u2032 2.3\\u2033"); | 1295 helperTestMultiples(en, UMEASFMT_WIDTH_NARROW, "2mi 1\\u2032 2.3\\u2033"); |
| 1014 helperTestMultiples(ru, UMEASFMT_WIDTH_WIDE, "2 \\u043C\\u0438\\u043B\\u0438
, 1 \\u0444\\u0443\\u0442 \\u0438 2,3 \\u0434\\u044E\\u0439\\u043C\\u0430"); | 1296 helperTestMultiples(ru, UMEASFMT_WIDTH_WIDE, "2 \\u043C\\u0438\\u043B\\u0438
1 \\u0444\\u0443\\u0442 \\u0438 2,3 \\u0434\\u044E\\u0439\\u043C\\u0430"); |
| 1015 helperTestMultiples(ru, UMEASFMT_WIDTH_SHORT, "2 \\u043C\\u0438\\u043B\\u043
8, 1 \\u0444\\u0443\\u0442, 2,3 \\u0434\\u044E\\u0439\\u043C."); | 1297 helperTestMultiples(ru, UMEASFMT_WIDTH_SHORT, "2 \\u043C\\u0438\\u043B\\u043
8 1 \\u0444\\u0443\\u0442 \\u0438 2,3 \\u0434\\u044E\\u0439\\u043C."); |
| 1016 helperTestMultiples(ru, UMEASFMT_WIDTH_NARROW, "2 \\u043C\\u0438\\u043B\\u04
4C 1 \\u0444\\u0443\\u0442 2,3 \\u0434\\u044E\\u0439\\u043C\\u0430"); | 1298 helperTestMultiples(ru, UMEASFMT_WIDTH_NARROW, "2 \\u043C\\u0438\\u043B\\u04
4C 1 \\u0444\\u0443\\u0442 2,3 \\u0434\\u044E\\u0439\\u043C\\u0430"); |
| 1017 } | 1299 } |
| 1018 | 1300 |
| 1019 void MeasureFormatTest::helperTestMultiples( | 1301 void MeasureFormatTest::helperTestMultiples( |
| 1020 const Locale &locale, | 1302 const Locale &locale, |
| 1021 UMeasureFormatWidth width, | 1303 UMeasureFormatWidth width, |
| 1022 const char *expected) { | 1304 const char *expected) { |
| 1023 UErrorCode status = U_ZERO_ERROR; | 1305 UErrorCode status = U_ZERO_ERROR; |
| 1024 FieldPosition pos(0); | 1306 FieldPosition pos(0); |
| 1025 MeasureFormat fmt(locale, width, status); | 1307 MeasureFormat fmt(locale, width, status); |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1174 "no decimal separator", | 1456 "no decimal separator", |
| 1175 fmt, | 1457 fmt, |
| 1176 prefix, | 1458 prefix, |
| 1177 third, | 1459 third, |
| 1178 UPRV_LENGTHOF(third), | 1460 UPRV_LENGTHOF(third), |
| 1179 NumberFormat::kDecimalSeparatorField, | 1461 NumberFormat::kDecimalSeparatorField, |
| 1180 0, | 1462 0, |
| 1181 0); | 1463 0); |
| 1182 } | 1464 } |
| 1183 | 1465 |
| 1184 void MeasureFormatTest::TestFieldPositionMultipleWithPer() { | |
| 1185 UErrorCode status = U_ZERO_ERROR; | |
| 1186 MeasureFormat fmt("en", UMEASFMT_WIDTH_SHORT, status); | |
| 1187 if (!assertSuccess("Error creating format object", status)) { | |
| 1188 return; | |
| 1189 } | |
| 1190 Measure first[] = { | |
| 1191 Measure(354, MeasureUnit::createMeter(status), status), | |
| 1192 Measure(23, MeasureUnit::createCentimeter(status), status)}; | |
| 1193 Measure second[] = { | |
| 1194 Measure(354, MeasureUnit::createMeter(status), status), | |
| 1195 Measure(23, MeasureUnit::createCentimeter(status), status), | |
| 1196 Measure(5.4, MeasureUnit::createMillimeter(status), status)}; | |
| 1197 Measure third[] = { | |
| 1198 Measure(3, MeasureUnit::createMeter(status), status), | |
| 1199 Measure(23, MeasureUnit::createCentimeter(status), status), | |
| 1200 Measure(5, MeasureUnit::createMillimeter(status), status)}; | |
| 1201 if (!assertSuccess("Error creating measure objects", status)) { | |
| 1202 return; | |
| 1203 } | |
| 1204 UnicodeString prefix("123456: "); | |
| 1205 | |
| 1206 LocalPointer<MeasureUnit> secondUnit(MeasureUnit::createSecond(status)); | |
| 1207 LocalPointer<MeasureUnit> minuteUnit(MeasureUnit::createMinute(status)); | |
| 1208 if (!assertSuccess("Error creating format object", status)) { | |
| 1209 return; | |
| 1210 } | |
| 1211 | |
| 1212 // per unit test | |
| 1213 verifyFieldPositionWithPer( | |
| 1214 "Integer", | |
| 1215 fmt, | |
| 1216 prefix, | |
| 1217 first, | |
| 1218 UPRV_LENGTHOF(first), | |
| 1219 *secondUnit, | |
| 1220 NumberFormat::kIntegerField, | |
| 1221 8, | |
| 1222 11); | |
| 1223 verifyFieldPositionWithPer( | |
| 1224 "Decimal separator", | |
| 1225 fmt, | |
| 1226 prefix, | |
| 1227 second, | |
| 1228 UPRV_LENGTHOF(second), | |
| 1229 *secondUnit, | |
| 1230 NumberFormat::kDecimalSeparatorField, | |
| 1231 23, | |
| 1232 24); | |
| 1233 verifyFieldPositionWithPer( | |
| 1234 "no decimal separator", | |
| 1235 fmt, | |
| 1236 prefix, | |
| 1237 third, | |
| 1238 UPRV_LENGTHOF(third), | |
| 1239 *secondUnit, | |
| 1240 NumberFormat::kDecimalSeparatorField, | |
| 1241 0, | |
| 1242 0); | |
| 1243 | |
| 1244 // Fallback to compound per test | |
| 1245 verifyFieldPositionWithPer( | |
| 1246 "Integer", | |
| 1247 fmt, | |
| 1248 prefix, | |
| 1249 first, | |
| 1250 UPRV_LENGTHOF(first), | |
| 1251 *minuteUnit, | |
| 1252 NumberFormat::kIntegerField, | |
| 1253 8, | |
| 1254 11); | |
| 1255 verifyFieldPositionWithPer( | |
| 1256 "Decimal separator", | |
| 1257 fmt, | |
| 1258 prefix, | |
| 1259 second, | |
| 1260 UPRV_LENGTHOF(second), | |
| 1261 *minuteUnit, | |
| 1262 NumberFormat::kDecimalSeparatorField, | |
| 1263 23, | |
| 1264 24); | |
| 1265 verifyFieldPositionWithPer( | |
| 1266 "no decimal separator", | |
| 1267 fmt, | |
| 1268 prefix, | |
| 1269 third, | |
| 1270 UPRV_LENGTHOF(third), | |
| 1271 *minuteUnit, | |
| 1272 NumberFormat::kDecimalSeparatorField, | |
| 1273 0, | |
| 1274 0); | |
| 1275 } | |
| 1276 | |
| 1277 void MeasureFormatTest::TestBadArg() { | 1466 void MeasureFormatTest::TestBadArg() { |
| 1278 UErrorCode status = U_ZERO_ERROR; | 1467 UErrorCode status = U_ZERO_ERROR; |
| 1279 MeasureFormat fmt("en", UMEASFMT_WIDTH_SHORT, status); | 1468 MeasureFormat fmt("en", UMEASFMT_WIDTH_SHORT, status); |
| 1280 if (!assertSuccess("Error creating format object", status)) { | 1469 if (!assertSuccess("Error creating format object", status)) { |
| 1281 return; | 1470 return; |
| 1282 } | 1471 } |
| 1283 FieldPosition pos(0); | 1472 FieldPosition pos(0); |
| 1284 UnicodeString buffer; | 1473 UnicodeString buffer; |
| 1285 fmt.format( | 1474 fmt.format( |
| 1286 9.3, | 1475 9.3, |
| (...skipping 29 matching lines...) Expand all Loading... |
| 1316 } | 1505 } |
| 1317 | 1506 |
| 1318 void MeasureFormatTest::TestGroupingSeparator() { | 1507 void MeasureFormatTest::TestGroupingSeparator() { |
| 1319 UErrorCode status = U_ZERO_ERROR; | 1508 UErrorCode status = U_ZERO_ERROR; |
| 1320 Locale en("en"); | 1509 Locale en("en"); |
| 1321 MeasureFormat fmt(en, UMEASFMT_WIDTH_SHORT, status); | 1510 MeasureFormat fmt(en, UMEASFMT_WIDTH_SHORT, status); |
| 1322 if (!assertSuccess("Error creating format object", status)) { | 1511 if (!assertSuccess("Error creating format object", status)) { |
| 1323 return; | 1512 return; |
| 1324 } | 1513 } |
| 1325 Measure ms[] = { | 1514 Measure ms[] = { |
| 1326 Measure(INT32_MAX, MeasureUnit::createYear(status), status), | 1515 Measure((int32_t)INT32_MAX, MeasureUnit::createYear(status), status)
, |
| 1327 Measure(INT32_MIN, MeasureUnit::createMonth(status), status), | 1516 Measure((int32_t)INT32_MIN, MeasureUnit::createMonth(status), status
), |
| 1328 Measure(-987, MeasureUnit::createDay(status), status), | 1517 Measure(-987, MeasureUnit::createDay(status), status), |
| 1329 Measure(1362, MeasureUnit::createHour(status), status), | 1518 Measure(1362, MeasureUnit::createHour(status), status), |
| 1330 Measure(987, MeasureUnit::createMinute(status), status)}; | 1519 Measure(987, MeasureUnit::createMinute(status), status)}; |
| 1331 FieldPosition pos(NumberFormat::kGroupingSeparatorField); | 1520 FieldPosition pos(NumberFormat::kGroupingSeparatorField); |
| 1332 UnicodeString appendTo; | 1521 UnicodeString appendTo; |
| 1333 fmt.formatMeasures(ms, 5, appendTo, pos, status); | 1522 fmt.formatMeasures(ms, 5, appendTo, pos, status); |
| 1334 if (!assertSuccess("Error formatting", status)) { | 1523 if (!assertSuccess("Error formatting", status)) { |
| 1335 return; | 1524 return; |
| 1336 } | 1525 } |
| 1337 assertEquals( | 1526 assertEquals( |
| 1338 "grouping separator", | 1527 "grouping separator", |
| 1339 "2,147,483,647 yrs, -2,147,483,648 mths, -987 days, 1,362 hrs, 987 m
ins", | 1528 "2,147,483,647 yrs, -2,147,483,648 mths, -987 days, 1,362 hr, 987 mi
n", |
| 1340 appendTo); | 1529 appendTo); |
| 1341 assertEquals("begin index", 9, pos.getBeginIndex()); | 1530 assertEquals("begin index", 9, pos.getBeginIndex()); |
| 1342 assertEquals("end index", 10, pos.getEndIndex()); | 1531 assertEquals("end index", 10, pos.getEndIndex()); |
| 1343 } | 1532 } |
| 1344 | 1533 |
| 1345 void MeasureFormatTest::TestDoubleZero() { | 1534 void MeasureFormatTest::TestDoubleZero() { |
| 1346 UErrorCode status = U_ZERO_ERROR; | 1535 UErrorCode status = U_ZERO_ERROR; |
| 1347 Measure measures[] = { | 1536 Measure measures[] = { |
| 1348 Measure(4.7, MeasureUnit::createHour(status), status), | 1537 Measure(4.7, MeasureUnit::createHour(status), status), |
| 1349 Measure(23, MeasureUnit::createMinute(status), status), | 1538 Measure(23, MeasureUnit::createMinute(status), status), |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1372 fmt.formatMeasures(measures, UPRV_LENGTHOF(measures), appendTo, pos, status)
; | 1561 fmt.formatMeasures(measures, UPRV_LENGTHOF(measures), appendTo, pos, status)
; |
| 1373 if (!assertSuccess("Error formatting", status)) { | 1562 if (!assertSuccess("Error formatting", status)) { |
| 1374 return; | 1563 return; |
| 1375 } | 1564 } |
| 1376 assertEquals( | 1565 assertEquals( |
| 1377 "TestDoubleZero", | 1566 "TestDoubleZero", |
| 1378 UnicodeString("-4 hours, 23 minutes, 16.00 seconds"), | 1567 UnicodeString("-4 hours, 23 minutes, 16.00 seconds"), |
| 1379 appendTo); | 1568 appendTo); |
| 1380 } | 1569 } |
| 1381 | 1570 |
| 1571 void MeasureFormatTest::TestUnitPerUnitResolution() { |
| 1572 UErrorCode status = U_ZERO_ERROR; |
| 1573 Locale en("en"); |
| 1574 MeasureFormat fmt("en", UMEASFMT_WIDTH_SHORT, status); |
| 1575 Measure measure(50, MeasureUnit::createPound(status), status); |
| 1576 LocalPointer<MeasureUnit> sqInch(MeasureUnit::createSquareInch(status)); |
| 1577 if (!assertSuccess("Create of format unit and per unit", status)) { |
| 1578 return; |
| 1579 } |
| 1580 FieldPosition pos(0); |
| 1581 UnicodeString actual; |
| 1582 fmt.formatMeasurePerUnit( |
| 1583 measure, |
| 1584 *sqInch, |
| 1585 actual, |
| 1586 pos, |
| 1587 status); |
| 1588 assertEquals("", "50 psi", actual); |
| 1589 } |
| 1590 |
| 1382 void MeasureFormatTest::verifyFieldPosition( | 1591 void MeasureFormatTest::verifyFieldPosition( |
| 1383 const char *description, | 1592 const char *description, |
| 1384 const MeasureFormat &fmt, | 1593 const MeasureFormat &fmt, |
| 1385 const UnicodeString &prefix, | 1594 const UnicodeString &prefix, |
| 1386 const Measure *measures, | 1595 const Measure *measures, |
| 1387 int32_t measureCount, | 1596 int32_t measureCount, |
| 1388 NumberFormat::EAlignmentFields field, | 1597 NumberFormat::EAlignmentFields field, |
| 1389 int32_t start, | 1598 int32_t start, |
| 1390 int32_t end) { | 1599 int32_t end) { |
| 1391 // 8 char lead | 1600 // 8 char lead |
| 1392 UnicodeString result(prefix); | 1601 UnicodeString result(prefix); |
| 1393 FieldPosition pos(field); | 1602 FieldPosition pos(field); |
| 1394 UErrorCode status = U_ZERO_ERROR; | 1603 UErrorCode status = U_ZERO_ERROR; |
| 1395 CharString ch; | |
| 1396 const char *descPrefix = ch.append(description, status) | |
| 1397 .append(": ", status).data(); | |
| 1398 CharString beginIndex; | |
| 1399 beginIndex.append(descPrefix, status).append("beginIndex", status); | |
| 1400 CharString endIndex; | |
| 1401 endIndex.append(descPrefix, status).append("endIndex", status); | |
| 1402 fmt.formatMeasures(measures, measureCount, result, pos, status); | |
| 1403 if (!assertSuccess("Error formatting", status)) { | |
| 1404 return; | |
| 1405 } | |
| 1406 assertEquals(beginIndex.data(), start, pos.getBeginIndex()); | |
| 1407 assertEquals(endIndex.data(), end, pos.getEndIndex()); | |
| 1408 } | |
| 1409 | |
| 1410 void MeasureFormatTest::verifyFieldPositionWithPer( | |
| 1411 const char *description, | |
| 1412 const MeasureFormat &fmt, | |
| 1413 const UnicodeString &prefix, | |
| 1414 const Measure *measures, | |
| 1415 int32_t measureCount, | |
| 1416 const MeasureUnit &perUnit, | |
| 1417 NumberFormat::EAlignmentFields field, | |
| 1418 int32_t start, | |
| 1419 int32_t end) { | |
| 1420 UnicodeString result(prefix); | |
| 1421 FieldPosition pos(field); | |
| 1422 UErrorCode status = U_ZERO_ERROR; | |
| 1423 CharString ch; | 1604 CharString ch; |
| 1424 const char *descPrefix = ch.append(description, status) | 1605 const char *descPrefix = ch.append(description, status) |
| 1425 .append(": ", status).data(); | 1606 .append(": ", status).data(); |
| 1426 CharString beginIndex; | 1607 CharString beginIndex; |
| 1427 beginIndex.append(descPrefix, status).append("beginIndex", status); | 1608 beginIndex.append(descPrefix, status).append("beginIndex", status); |
| 1428 CharString endIndex; | 1609 CharString endIndex; |
| 1429 endIndex.append(descPrefix, status).append("endIndex", status); | 1610 endIndex.append(descPrefix, status).append("endIndex", status); |
| 1430 fmt.formatMeasuresPer( | 1611 fmt.formatMeasures(measures, measureCount, result, pos, status); |
| 1431 measures, | |
| 1432 measureCount, | |
| 1433 perUnit, | |
| 1434 result, | |
| 1435 pos, | |
| 1436 status); | |
| 1437 if (!assertSuccess("Error formatting", status)) { | 1612 if (!assertSuccess("Error formatting", status)) { |
| 1438 return; | 1613 return; |
| 1439 } | 1614 } |
| 1440 assertEquals(beginIndex.data(), start, pos.getBeginIndex()); | 1615 assertEquals(beginIndex.data(), start, pos.getBeginIndex()); |
| 1441 assertEquals(endIndex.data(), end, pos.getEndIndex()); | 1616 assertEquals(endIndex.data(), end, pos.getEndIndex()); |
| 1442 } | 1617 } |
| 1443 | 1618 |
| 1444 void MeasureFormatTest::verifyFormat( | 1619 void MeasureFormatTest::verifyFormat( |
| 1445 const char *description, | 1620 const char *description, |
| 1446 const MeasureFormat &fmt, | 1621 const MeasureFormat &fmt, |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1482 verifyFormat(description, fmt, expectedResults[i].measures, expectedResu
lts[i].count, expectedResults[i].expected); | 1657 verifyFormat(description, fmt, expectedResults[i].measures, expectedResu
lts[i].count, expectedResults[i].expected); |
| 1483 } | 1658 } |
| 1484 } | 1659 } |
| 1485 | 1660 |
| 1486 extern IntlTest *createMeasureFormatTest() { | 1661 extern IntlTest *createMeasureFormatTest() { |
| 1487 return new MeasureFormatTest(); | 1662 return new MeasureFormatTest(); |
| 1488 } | 1663 } |
| 1489 | 1664 |
| 1490 #endif | 1665 #endif |
| 1491 | 1666 |
| OLD | NEW |