]> git.saurik.com Git - apple/icu.git/blame - icuSources/test/intltest/measfmttest.cpp
ICU-66108.tar.gz
[apple/icu.git] / icuSources / test / intltest / measfmttest.cpp
CommitLineData
f3c0d7a5
A
1// © 2016 and later: Unicode, Inc. and others.
2// License & terms of use: http://www.unicode.org/copyright.html
57a6839d
A
3/*
4*******************************************************************************
2ca993e8 5* Copyright (C) 2014-2016, International Business Machines Corporation and *
57a6839d
A
6* others. All Rights Reserved. *
7*******************************************************************************
8*
9* File MEASFMTTEST.CPP
10*
11*******************************************************************************
12*/
13#include <stdio.h>
14#include <stdlib.h>
15
16#include "intltest.h"
17
18#if !UCONFIG_NO_FORMATTING
19
20#include "unicode/decimfmt.h"
21#include "unicode/measfmt.h"
22#include "unicode/measure.h"
23#include "unicode/measunit.h"
f3c0d7a5 24#include "unicode/strenum.h"
57a6839d 25#include "unicode/tmunit.h"
b331163b 26#include "unicode/plurrule.h"
f3c0d7a5 27#include "unicode/ustring.h"
57a6839d 28#include "charstr.h"
f3c0d7a5 29#include "cstr.h"
b331163b 30#include "unicode/reldatefmt.h"
340931cb 31#include "unicode/rbnf.h"
57a6839d
A
32
33struct ExpectedResult {
34 const Measure *measures;
35 int32_t count;
36 const char *expected;
37};
38
39class MeasureFormatTest : public IntlTest {
40public:
41 MeasureFormatTest() {
42 }
43
44 void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par=0);
45private:
46 void TestBasic();
f3c0d7a5
A
47 void TestCompatible53();
48 void TestCompatible54();
49 void TestCompatible55();
50 void TestCompatible56();
51 void TestCompatible57();
52 void TestCompatible58();
53 void TestCompatible59();
3d1f044b
A
54 void TestCompatible63();
55 void TestCompatible64();
340931cb 56 void TestCompatible65();
57a6839d
A
57 void TestGetAvailable();
58 void TestExamplesInDocs();
59 void TestFormatPeriodEn();
60 void Test10219FractionalPlurals();
61 void TestGreek();
62 void TestFormatSingleArg();
63 void TestFormatMeasuresZeroArg();
b331163b
A
64 void TestSimplePer();
65 void TestNumeratorPlurals();
57a6839d 66 void TestMultiples();
2ca993e8 67 void TestManyLocaleDurations();
57a6839d
A
68 void TestGram();
69 void TestCurrencies();
f3c0d7a5 70 void TestDisplayNames();
57a6839d
A
71 void TestFieldPosition();
72 void TestFieldPositionMultiple();
73 void TestBadArg();
74 void TestEquality();
b331163b 75 void TestGroupingSeparator();
57a6839d 76 void TestDoubleZero();
b331163b 77 void TestUnitPerUnitResolution();
2ca993e8 78 void TestIndividualPluralFallback();
3d1f044b 79 void Test20332_PersonUnits();
340931cb
A
80 void TestNumericTime();
81 void TestNumericTimeSomeSpecialFormats();
57a6839d
A
82 void verifyFormat(
83 const char *description,
84 const MeasureFormat &fmt,
85 const Measure *measures,
86 int32_t measureCount,
87 const char *expected);
88 void verifyFormatWithPrefix(
89 const char *description,
90 const MeasureFormat &fmt,
91 const UnicodeString &prefix,
92 const Measure *measures,
93 int32_t measureCount,
94 const char *expected);
95 void verifyFormat(
96 const char *description,
97 const MeasureFormat &fmt,
98 const ExpectedResult *expectedResults,
99 int32_t count);
b331163b
A
100 void helperTestSimplePer(
101 const Locale &locale,
102 UMeasureFormatWidth width,
103 double value,
104 const MeasureUnit &unit,
105 const MeasureUnit &perUnit,
106 const char *expected);
107 void helperTestSimplePer(
108 const Locale &locale,
109 UMeasureFormatWidth width,
110 double value,
111 const MeasureUnit &unit,
112 const MeasureUnit &perUnit,
113 const char *expected,
114 int32_t field,
115 int32_t expected_start,
116 int32_t expected_end);
57a6839d
A
117 void helperTestMultiples(
118 const Locale &locale,
119 UMeasureFormatWidth width,
120 const char *expected);
2ca993e8
A
121 void helperTestManyLocaleDurations(
122 const char *localeID,
123 UMeasureFormatWidth width,
124 const Measure *measures,
125 int32_t measureCount,
126 const char *expected);
f3c0d7a5
A
127 void helperTestDisplayName(
128 const MeasureUnit *unit,
129 const char *localeID,
130 UMeasureFormatWidth width,
131 const char *expected);
57a6839d
A
132 void verifyFieldPosition(
133 const char *description,
134 const MeasureFormat &fmt,
135 const UnicodeString &prefix,
136 const Measure *measures,
137 int32_t measureCount,
138 NumberFormat::EAlignmentFields field,
139 int32_t start,
140 int32_t end);
141};
142
143void MeasureFormatTest::runIndexedTest(
144 int32_t index, UBool exec, const char *&name, char *) {
145 if (exec) {
146 logln("TestSuite MeasureFormatTest: ");
147 }
148 TESTCASE_AUTO_BEGIN;
149 TESTCASE_AUTO(TestBasic);
f3c0d7a5
A
150 TESTCASE_AUTO(TestCompatible53);
151 TESTCASE_AUTO(TestCompatible54);
152 TESTCASE_AUTO(TestCompatible55);
153 TESTCASE_AUTO(TestCompatible56);
154 TESTCASE_AUTO(TestCompatible57);
155 TESTCASE_AUTO(TestCompatible58);
156 TESTCASE_AUTO(TestCompatible59);
3d1f044b
A
157 TESTCASE_AUTO(TestCompatible63);
158 TESTCASE_AUTO(TestCompatible64);
340931cb 159 TESTCASE_AUTO(TestCompatible65);
57a6839d
A
160 TESTCASE_AUTO(TestGetAvailable);
161 TESTCASE_AUTO(TestExamplesInDocs);
162 TESTCASE_AUTO(TestFormatPeriodEn);
163 TESTCASE_AUTO(Test10219FractionalPlurals);
164 TESTCASE_AUTO(TestGreek);
165 TESTCASE_AUTO(TestFormatSingleArg);
166 TESTCASE_AUTO(TestFormatMeasuresZeroArg);
b331163b
A
167 TESTCASE_AUTO(TestSimplePer);
168 TESTCASE_AUTO(TestNumeratorPlurals);
57a6839d 169 TESTCASE_AUTO(TestMultiples);
2ca993e8 170 TESTCASE_AUTO(TestManyLocaleDurations);
57a6839d
A
171 TESTCASE_AUTO(TestGram);
172 TESTCASE_AUTO(TestCurrencies);
f3c0d7a5 173 TESTCASE_AUTO(TestDisplayNames);
57a6839d
A
174 TESTCASE_AUTO(TestFieldPosition);
175 TESTCASE_AUTO(TestFieldPositionMultiple);
176 TESTCASE_AUTO(TestBadArg);
177 TESTCASE_AUTO(TestEquality);
b331163b 178 TESTCASE_AUTO(TestGroupingSeparator);
57a6839d 179 TESTCASE_AUTO(TestDoubleZero);
b331163b 180 TESTCASE_AUTO(TestUnitPerUnitResolution);
2ca993e8 181 TESTCASE_AUTO(TestIndividualPluralFallback);
3d1f044b 182 TESTCASE_AUTO(Test20332_PersonUnits);
340931cb
A
183 TESTCASE_AUTO(TestNumericTime);
184 TESTCASE_AUTO(TestNumericTimeSomeSpecialFormats);
57a6839d
A
185 TESTCASE_AUTO_END;
186}
187
f3c0d7a5 188void MeasureFormatTest::TestCompatible53() {
b331163b
A
189 UErrorCode status = U_ZERO_ERROR;
190 LocalPointer<MeasureUnit> measureUnit;
191 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
192 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
193 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
194 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
195 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
196 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
197 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
198 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
199 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
200 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
201 measureUnit.adoptInstead(MeasureUnit::createDay(status));
202 measureUnit.adoptInstead(MeasureUnit::createHour(status));
203 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
204 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
205 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
206 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
207 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
208 measureUnit.adoptInstead(MeasureUnit::createYear(status));
209 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
210 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
211 measureUnit.adoptInstead(MeasureUnit::createInch(status));
212 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
213 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
214 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
215 measureUnit.adoptInstead(MeasureUnit::createMile(status));
216 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
217 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
218 measureUnit.adoptInstead(MeasureUnit::createYard(status));
219 measureUnit.adoptInstead(MeasureUnit::createGram(status));
220 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
221 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
222 measureUnit.adoptInstead(MeasureUnit::createPound(status));
223 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
224 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
225 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
226 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
227 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
228 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
229 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
230 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
231 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
232 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
233 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
234 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
235 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
236 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
237 assertSuccess("", status);
238}
239
f3c0d7a5 240void MeasureFormatTest::TestCompatible54() {
b331163b
A
241 UErrorCode status = U_ZERO_ERROR;
242 LocalPointer<MeasureUnit> measureUnit;
243 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
244 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
245 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
246 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
247 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
248 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
249 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
250 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
251 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
252 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
253 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
254 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
255 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
256 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
257 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
258 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
259 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
260 measureUnit.adoptInstead(MeasureUnit::createBit(status));
261 measureUnit.adoptInstead(MeasureUnit::createByte(status));
262 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
263 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
264 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
265 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
266 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
267 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
268 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
269 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
270 measureUnit.adoptInstead(MeasureUnit::createDay(status));
271 measureUnit.adoptInstead(MeasureUnit::createHour(status));
272 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
273 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
274 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
275 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
276 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
277 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
278 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
279 measureUnit.adoptInstead(MeasureUnit::createYear(status));
280 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
281 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
282 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
283 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
284 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
285 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
286 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
287 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
288 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
289 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
290 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
291 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
292 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
293 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
294 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
295 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
296 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
297 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
298 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
299 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
300 measureUnit.adoptInstead(MeasureUnit::createInch(status));
301 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
302 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
303 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
304 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
305 measureUnit.adoptInstead(MeasureUnit::createMile(status));
306 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
307 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
308 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
309 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
310 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
311 measureUnit.adoptInstead(MeasureUnit::createYard(status));
312 measureUnit.adoptInstead(MeasureUnit::createLux(status));
313 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
314 measureUnit.adoptInstead(MeasureUnit::createGram(status));
315 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
316 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
317 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
318 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
319 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
320 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
321 measureUnit.adoptInstead(MeasureUnit::createPound(status));
322 measureUnit.adoptInstead(MeasureUnit::createStone(status));
323 measureUnit.adoptInstead(MeasureUnit::createTon(status));
324 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
325 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
326 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
327 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
328 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
329 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
330 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
331 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
332 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
333 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
334 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
335 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
336 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
337 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
338 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
339 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
340 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
341 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
342 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
343 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
344 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
345 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
346 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
347 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
348 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
349 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
350 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
351 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
352 measureUnit.adoptInstead(MeasureUnit::createCup(status));
353 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
354 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
355 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
356 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
357 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
358 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
359 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
360 measureUnit.adoptInstead(MeasureUnit::createPint(status));
361 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
362 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
363 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
364 assertSuccess("", status);
365}
366
f3c0d7a5 367void MeasureFormatTest::TestCompatible55() {
2ca993e8
A
368 UErrorCode status = U_ZERO_ERROR;
369 LocalPointer<MeasureUnit> measureUnit;
370 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
371 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
372 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
373 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
374 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
375 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
376 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
377 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
378 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
379 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
380 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
381 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
382 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
383 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
384 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
385 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
386 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
387 measureUnit.adoptInstead(MeasureUnit::createBit(status));
388 measureUnit.adoptInstead(MeasureUnit::createByte(status));
389 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
390 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
391 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
392 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
393 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
394 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
395 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
396 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
397 measureUnit.adoptInstead(MeasureUnit::createDay(status));
398 measureUnit.adoptInstead(MeasureUnit::createHour(status));
399 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
400 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
401 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
402 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
403 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
404 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
405 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
406 measureUnit.adoptInstead(MeasureUnit::createYear(status));
407 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
408 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
409 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
410 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
411 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
412 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
413 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
414 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
415 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
416 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
417 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
418 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
419 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
420 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
421 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
422 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
423 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
424 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
425 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
426 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
427 measureUnit.adoptInstead(MeasureUnit::createInch(status));
428 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
429 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
430 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
431 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
432 measureUnit.adoptInstead(MeasureUnit::createMile(status));
433 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
434 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
435 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
436 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
437 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
438 measureUnit.adoptInstead(MeasureUnit::createYard(status));
439 measureUnit.adoptInstead(MeasureUnit::createLux(status));
440 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
441 measureUnit.adoptInstead(MeasureUnit::createGram(status));
442 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
443 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
444 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
445 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
446 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
447 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
448 measureUnit.adoptInstead(MeasureUnit::createPound(status));
449 measureUnit.adoptInstead(MeasureUnit::createStone(status));
450 measureUnit.adoptInstead(MeasureUnit::createTon(status));
451 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
452 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
453 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
454 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
455 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
456 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
457 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
458 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
459 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
460 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
461 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
462 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
463 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
464 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
465 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
466 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
467 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
468 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
469 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
470 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
471 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
472 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
473 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
474 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
475 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
476 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
477 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
478 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
479 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
480 measureUnit.adoptInstead(MeasureUnit::createCup(status));
481 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
482 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
483 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
484 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
485 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
486 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
487 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
488 measureUnit.adoptInstead(MeasureUnit::createPint(status));
489 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
490 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
491 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
492 assertSuccess("", status);
493}
494
f3c0d7a5 495void MeasureFormatTest::TestCompatible56() {
2ca993e8
A
496 UErrorCode status = U_ZERO_ERROR;
497 LocalPointer<MeasureUnit> measureUnit;
498 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
499 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
500 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
501 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
502 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
503 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
504 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
505 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
506 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
507 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
508 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
509 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
510 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
511 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
512 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
513 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
514 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
515 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
516 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
517 measureUnit.adoptInstead(MeasureUnit::createBit(status));
518 measureUnit.adoptInstead(MeasureUnit::createByte(status));
519 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
520 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
521 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
522 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
523 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
524 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
525 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
526 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
527 measureUnit.adoptInstead(MeasureUnit::createCentury(status));
528 measureUnit.adoptInstead(MeasureUnit::createDay(status));
529 measureUnit.adoptInstead(MeasureUnit::createHour(status));
530 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
531 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
532 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
533 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
534 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
535 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
536 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
537 measureUnit.adoptInstead(MeasureUnit::createYear(status));
538 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
539 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
540 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
541 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
542 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
543 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
544 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
545 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
546 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
547 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
548 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
549 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
550 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
551 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
552 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
553 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
554 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
555 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
556 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
557 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
558 measureUnit.adoptInstead(MeasureUnit::createInch(status));
559 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
560 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
561 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
562 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
563 measureUnit.adoptInstead(MeasureUnit::createMile(status));
564 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
565 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
566 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
567 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
568 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
569 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
570 measureUnit.adoptInstead(MeasureUnit::createYard(status));
571 measureUnit.adoptInstead(MeasureUnit::createLux(status));
572 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
573 measureUnit.adoptInstead(MeasureUnit::createGram(status));
574 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
575 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
576 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
577 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
578 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
579 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
580 measureUnit.adoptInstead(MeasureUnit::createPound(status));
581 measureUnit.adoptInstead(MeasureUnit::createStone(status));
582 measureUnit.adoptInstead(MeasureUnit::createTon(status));
583 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
584 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
585 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
586 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
587 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
588 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
589 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
590 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
591 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
592 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
593 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
594 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
595 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
596 measureUnit.adoptInstead(MeasureUnit::createKnot(status));
597 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
598 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
599 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
600 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
601 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
602 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
603 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
604 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
605 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
606 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
607 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
608 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
609 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
610 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
611 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
612 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
613 measureUnit.adoptInstead(MeasureUnit::createCup(status));
614 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
615 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
616 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
617 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
618 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
619 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
620 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
621 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
622 measureUnit.adoptInstead(MeasureUnit::createPint(status));
623 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
624 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
625 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
626 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
627 assertSuccess("", status);
628}
629
f3c0d7a5
A
630void MeasureFormatTest::TestCompatible57() {
631 UErrorCode status = U_ZERO_ERROR;
632 LocalPointer<MeasureUnit> measureUnit;
633 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
634 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
635 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
636 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
637 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
638 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
639 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
640 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
641 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
642 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
643 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
644 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
645 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
646 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
647 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
648 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
649 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
650 measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
651 measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
652 measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
653 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
654 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
655 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
656 measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
657 measureUnit.adoptInstead(MeasureUnit::createBit(status));
658 measureUnit.adoptInstead(MeasureUnit::createByte(status));
659 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
660 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
661 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
662 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
663 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
664 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
665 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
666 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
667 measureUnit.adoptInstead(MeasureUnit::createCentury(status));
668 measureUnit.adoptInstead(MeasureUnit::createDay(status));
669 measureUnit.adoptInstead(MeasureUnit::createHour(status));
670 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
671 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
672 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
673 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
674 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
675 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
676 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
677 measureUnit.adoptInstead(MeasureUnit::createYear(status));
678 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
679 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
680 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
681 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
682 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
683 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
684 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
685 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
686 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
687 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
688 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
689 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
690 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
691 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
692 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
693 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
694 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
695 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
696 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
697 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
698 measureUnit.adoptInstead(MeasureUnit::createInch(status));
699 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
700 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
701 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
702 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
703 measureUnit.adoptInstead(MeasureUnit::createMile(status));
704 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
705 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
706 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
707 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
708 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
709 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
710 measureUnit.adoptInstead(MeasureUnit::createYard(status));
711 measureUnit.adoptInstead(MeasureUnit::createLux(status));
712 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
713 measureUnit.adoptInstead(MeasureUnit::createGram(status));
714 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
715 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
716 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
717 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
718 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
719 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
720 measureUnit.adoptInstead(MeasureUnit::createPound(status));
721 measureUnit.adoptInstead(MeasureUnit::createStone(status));
722 measureUnit.adoptInstead(MeasureUnit::createTon(status));
723 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
724 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
725 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
726 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
727 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
728 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
729 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
730 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
731 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
732 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
733 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
734 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
735 measureUnit.adoptInstead(MeasureUnit::createKnot(status));
736 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
737 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
738 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
739 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
740 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
741 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
742 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
743 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
744 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
745 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
746 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
747 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
748 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
749 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
750 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
751 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
752 measureUnit.adoptInstead(MeasureUnit::createCup(status));
753 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
754 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
755 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
756 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
757 measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
758 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
759 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
760 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
761 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
762 measureUnit.adoptInstead(MeasureUnit::createPint(status));
763 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
764 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
765 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
766 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
767 assertSuccess("", status);
768}
769
770void MeasureFormatTest::TestCompatible58() {
2ca993e8
A
771 UErrorCode status = U_ZERO_ERROR;
772 LocalPointer<MeasureUnit> measureUnit;
773 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
774 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
775 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
776 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
777 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
778 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
779 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
780 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
781 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
782 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
783 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
784 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
785 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
786 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
787 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
788 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
789 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
790 measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
791 measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
792 measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
793 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
794 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
795 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
796 measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
f3c0d7a5
A
797 // measureUnit.adoptInstead(MeasureUnit::createEast(status));
798 // measureUnit.adoptInstead(MeasureUnit::createNorth(status));
799 // measureUnit.adoptInstead(MeasureUnit::createSouth(status));
800 // measureUnit.adoptInstead(MeasureUnit::createWest(status));
2ca993e8
A
801 measureUnit.adoptInstead(MeasureUnit::createBit(status));
802 measureUnit.adoptInstead(MeasureUnit::createByte(status));
803 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
804 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
805 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
806 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
807 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
808 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
809 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
810 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
811 measureUnit.adoptInstead(MeasureUnit::createCentury(status));
812 measureUnit.adoptInstead(MeasureUnit::createDay(status));
813 measureUnit.adoptInstead(MeasureUnit::createHour(status));
814 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
815 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
816 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
817 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
818 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
819 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
820 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
821 measureUnit.adoptInstead(MeasureUnit::createYear(status));
822 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
823 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
824 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
825 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
826 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
827 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
828 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
829 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
830 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
831 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
832 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
833 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
834 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
835 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
836 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
837 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
838 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
839 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
840 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
841 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
842 measureUnit.adoptInstead(MeasureUnit::createInch(status));
843 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
844 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
845 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
846 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
847 measureUnit.adoptInstead(MeasureUnit::createMile(status));
848 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
849 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
850 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
851 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
852 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
853 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
854 measureUnit.adoptInstead(MeasureUnit::createYard(status));
855 measureUnit.adoptInstead(MeasureUnit::createLux(status));
856 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
857 measureUnit.adoptInstead(MeasureUnit::createGram(status));
858 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
859 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
860 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
861 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
862 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
863 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
864 measureUnit.adoptInstead(MeasureUnit::createPound(status));
865 measureUnit.adoptInstead(MeasureUnit::createStone(status));
866 measureUnit.adoptInstead(MeasureUnit::createTon(status));
867 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
868 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
869 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
870 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
871 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
872 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
873 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
874 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
875 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
876 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
877 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
878 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
879 measureUnit.adoptInstead(MeasureUnit::createKnot(status));
880 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
881 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
882 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
883 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
884 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
885 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
886 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
887 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
888 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
889 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
890 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
891 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
892 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
893 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
894 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
895 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
896 measureUnit.adoptInstead(MeasureUnit::createCup(status));
897 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
898 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
899 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
900 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
901 measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
902 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
903 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
904 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
905 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
906 measureUnit.adoptInstead(MeasureUnit::createPint(status));
907 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
908 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
909 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
910 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
911 assertSuccess("", status);
912}
913
f3c0d7a5
A
914void MeasureFormatTest::TestCompatible59() {
915 UErrorCode status = U_ZERO_ERROR;
916 LocalPointer<MeasureUnit> measureUnit;
917 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
918 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
919 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
920 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
921 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
922 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
923 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
924 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
925 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
926 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
927 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
928 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
929 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
930 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
931 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
932 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
933 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
934 measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
935 measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
936 measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
937 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
938 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
939 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
940 measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
941 measureUnit.adoptInstead(MeasureUnit::createBit(status));
942 measureUnit.adoptInstead(MeasureUnit::createByte(status));
943 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
944 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
945 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
946 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
947 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
948 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
949 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
950 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
951 measureUnit.adoptInstead(MeasureUnit::createCentury(status));
952 measureUnit.adoptInstead(MeasureUnit::createDay(status));
953 measureUnit.adoptInstead(MeasureUnit::createHour(status));
954 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
955 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
956 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
957 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
958 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
959 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
960 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
961 measureUnit.adoptInstead(MeasureUnit::createYear(status));
962 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
963 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
964 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
965 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
966 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
967 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
968 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
969 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
970 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
971 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
972 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
973 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
974 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
975 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
976 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
977 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
978 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
979 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
980 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
981 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
982 measureUnit.adoptInstead(MeasureUnit::createInch(status));
983 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
984 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
985 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
986 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
987 measureUnit.adoptInstead(MeasureUnit::createMile(status));
988 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
989 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
990 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
991 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
992 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
993 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
994 measureUnit.adoptInstead(MeasureUnit::createPoint(status));
995 measureUnit.adoptInstead(MeasureUnit::createYard(status));
996 measureUnit.adoptInstead(MeasureUnit::createLux(status));
997 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
998 measureUnit.adoptInstead(MeasureUnit::createGram(status));
999 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
1000 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
1001 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
1002 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
1003 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
1004 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
1005 measureUnit.adoptInstead(MeasureUnit::createPound(status));
1006 measureUnit.adoptInstead(MeasureUnit::createStone(status));
1007 measureUnit.adoptInstead(MeasureUnit::createTon(status));
1008 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
1009 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
1010 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
1011 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
1012 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
1013 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
1014 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
1015 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
1016 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
1017 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
1018 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
1019 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
1020 measureUnit.adoptInstead(MeasureUnit::createKnot(status));
1021 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
1022 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
1023 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
1024 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
1025 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
1026 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
1027 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
1028 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
1029 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
1030 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
1031 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
1032 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
1033 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
1034 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
1035 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
1036 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
1037 measureUnit.adoptInstead(MeasureUnit::createCup(status));
1038 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
1039 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
1040 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
1041 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
1042 measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
1043 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
1044 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
1045 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
1046 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
1047 measureUnit.adoptInstead(MeasureUnit::createPint(status));
1048 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
1049 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
1050 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
1051 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
1052 assertSuccess("", status);
1053}
1054
0f5d89e8
A
1055// Note that TestCompatible60(), TestCompatible61(), TestCompatible62()
1056// would be the same as TestCompatible59(), no need to add them.
1057
3d1f044b
A
1058void MeasureFormatTest::TestCompatible63() {
1059 UErrorCode status = U_ZERO_ERROR;
1060 LocalPointer<MeasureUnit> measureUnit;
1061 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
1062 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
1063 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
1064 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
1065 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
1066 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
1067 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
1068 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
1069 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
1070 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
1071 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
1072 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
1073 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
1074 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
1075 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
1076 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
1077 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
1078 measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
1079 measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
1080 measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
1081 measureUnit.adoptInstead(MeasureUnit::createPercent(status));
1082 measureUnit.adoptInstead(MeasureUnit::createPermille(status));
1083 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
1084 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
1085 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
1086 measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
1087 measureUnit.adoptInstead(MeasureUnit::createBit(status));
1088 measureUnit.adoptInstead(MeasureUnit::createByte(status));
1089 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
1090 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
1091 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
1092 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
1093 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
1094 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
1095 measureUnit.adoptInstead(MeasureUnit::createPetabyte(status));
1096 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
1097 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
1098 measureUnit.adoptInstead(MeasureUnit::createCentury(status));
1099 measureUnit.adoptInstead(MeasureUnit::createDay(status));
1100 measureUnit.adoptInstead(MeasureUnit::createHour(status));
1101 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
1102 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
1103 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
1104 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
1105 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
1106 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
1107 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
1108 measureUnit.adoptInstead(MeasureUnit::createYear(status));
1109 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
1110 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
1111 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
1112 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
1113 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
1114 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
1115 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
1116 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
1117 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
1118 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
1119 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
1120 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
1121 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
1122 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
1123 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
1124 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
1125 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
1126 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
1127 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
1128 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
1129 measureUnit.adoptInstead(MeasureUnit::createInch(status));
1130 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
1131 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
1132 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
1133 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
1134 measureUnit.adoptInstead(MeasureUnit::createMile(status));
1135 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
1136 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
1137 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
1138 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
1139 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
1140 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
1141 measureUnit.adoptInstead(MeasureUnit::createPoint(status));
1142 measureUnit.adoptInstead(MeasureUnit::createYard(status));
1143 measureUnit.adoptInstead(MeasureUnit::createLux(status));
1144 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
1145 measureUnit.adoptInstead(MeasureUnit::createGram(status));
1146 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
1147 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
1148 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
1149 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
1150 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
1151 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
1152 measureUnit.adoptInstead(MeasureUnit::createPound(status));
1153 measureUnit.adoptInstead(MeasureUnit::createStone(status));
1154 measureUnit.adoptInstead(MeasureUnit::createTon(status));
1155 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
1156 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
1157 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
1158 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
1159 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
1160 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
1161 measureUnit.adoptInstead(MeasureUnit::createAtmosphere(status));
1162 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
1163 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
1164 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
1165 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
1166 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
1167 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
1168 measureUnit.adoptInstead(MeasureUnit::createKnot(status));
1169 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
1170 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
1171 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
1172 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
1173 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
1174 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
1175 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
1176 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
1177 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
1178 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
1179 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
1180 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
1181 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
1182 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
1183 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
1184 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
1185 measureUnit.adoptInstead(MeasureUnit::createCup(status));
1186 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
1187 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
1188 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
1189 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
1190 measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
1191 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
1192 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
1193 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
1194 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
1195 measureUnit.adoptInstead(MeasureUnit::createPint(status));
1196 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
1197 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
1198 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
1199 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
1200 assertSuccess("", status);
1201}
1202
1203void MeasureFormatTest::TestCompatible64() {
1204 UErrorCode status = U_ZERO_ERROR;
1205 LocalPointer<MeasureUnit> measureUnit;
1206 MeasureUnit measureUnitValue;
1207 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
1208 measureUnitValue = MeasureUnit::getGForce();
1209 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
1210 measureUnitValue = MeasureUnit::getMeterPerSecondSquared();
1211 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
1212 measureUnitValue = MeasureUnit::getArcMinute();
1213 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
1214 measureUnitValue = MeasureUnit::getArcSecond();
1215 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
1216 measureUnitValue = MeasureUnit::getDegree();
1217 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
1218 measureUnitValue = MeasureUnit::getRadian();
1219 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
1220 measureUnitValue = MeasureUnit::getRevolutionAngle();
1221 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
1222 measureUnitValue = MeasureUnit::getAcre();
1223 measureUnit.adoptInstead(MeasureUnit::createDunam(status));
1224 measureUnitValue = MeasureUnit::getDunam();
1225 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
1226 measureUnitValue = MeasureUnit::getHectare();
1227 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
1228 measureUnitValue = MeasureUnit::getSquareCentimeter();
1229 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
1230 measureUnitValue = MeasureUnit::getSquareFoot();
1231 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
1232 measureUnitValue = MeasureUnit::getSquareInch();
1233 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
1234 measureUnitValue = MeasureUnit::getSquareKilometer();
1235 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
1236 measureUnitValue = MeasureUnit::getSquareMeter();
1237 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
1238 measureUnitValue = MeasureUnit::getSquareMile();
1239 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
1240 measureUnitValue = MeasureUnit::getSquareYard();
1241 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
1242 measureUnitValue = MeasureUnit::getKarat();
1243 measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
1244 measureUnitValue = MeasureUnit::getMilligramPerDeciliter();
1245 measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
1246 measureUnitValue = MeasureUnit::getMillimolePerLiter();
1247 measureUnit.adoptInstead(MeasureUnit::createMole(status));
1248 measureUnitValue = MeasureUnit::getMole();
1249 measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
1250 measureUnitValue = MeasureUnit::getPartPerMillion();
1251 measureUnit.adoptInstead(MeasureUnit::createPercent(status));
1252 measureUnitValue = MeasureUnit::getPercent();
1253 measureUnit.adoptInstead(MeasureUnit::createPermille(status));
1254 measureUnitValue = MeasureUnit::getPermille();
1255 measureUnit.adoptInstead(MeasureUnit::createPermyriad(status));
1256 measureUnitValue = MeasureUnit::getPermyriad();
1257 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
1258 measureUnitValue = MeasureUnit::getLiterPer100Kilometers();
1259 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
1260 measureUnitValue = MeasureUnit::getLiterPerKilometer();
1261 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
1262 measureUnitValue = MeasureUnit::getMilePerGallon();
1263 measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
1264 measureUnitValue = MeasureUnit::getMilePerGallonImperial();
1265 measureUnit.adoptInstead(MeasureUnit::createBit(status));
1266 measureUnitValue = MeasureUnit::getBit();
1267 measureUnit.adoptInstead(MeasureUnit::createByte(status));
1268 measureUnitValue = MeasureUnit::getByte();
1269 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
1270 measureUnitValue = MeasureUnit::getGigabit();
1271 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
1272 measureUnitValue = MeasureUnit::getGigabyte();
1273 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
1274 measureUnitValue = MeasureUnit::getKilobit();
1275 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
1276 measureUnitValue = MeasureUnit::getKilobyte();
1277 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
1278 measureUnitValue = MeasureUnit::getMegabit();
1279 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
1280 measureUnitValue = MeasureUnit::getMegabyte();
1281 measureUnit.adoptInstead(MeasureUnit::createPetabyte(status));
1282 measureUnitValue = MeasureUnit::getPetabyte();
1283 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
1284 measureUnitValue = MeasureUnit::getTerabit();
1285 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
1286 measureUnitValue = MeasureUnit::getTerabyte();
1287 measureUnit.adoptInstead(MeasureUnit::createCentury(status));
1288 measureUnitValue = MeasureUnit::getCentury();
1289 measureUnit.adoptInstead(MeasureUnit::createDay(status));
1290 measureUnitValue = MeasureUnit::getDay();
1291 measureUnit.adoptInstead(MeasureUnit::createDayPerson(status));
1292 measureUnitValue = MeasureUnit::getDayPerson();
1293 measureUnit.adoptInstead(MeasureUnit::createHour(status));
1294 measureUnitValue = MeasureUnit::getHour();
1295 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
1296 measureUnitValue = MeasureUnit::getMicrosecond();
1297 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
1298 measureUnitValue = MeasureUnit::getMillisecond();
1299 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
1300 measureUnitValue = MeasureUnit::getMinute();
1301 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
1302 measureUnitValue = MeasureUnit::getMonth();
1303 measureUnit.adoptInstead(MeasureUnit::createMonthPerson(status));
1304 measureUnitValue = MeasureUnit::getMonthPerson();
1305 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
1306 measureUnitValue = MeasureUnit::getNanosecond();
1307 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
1308 measureUnitValue = MeasureUnit::getSecond();
1309 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
1310 measureUnitValue = MeasureUnit::getWeek();
1311 measureUnit.adoptInstead(MeasureUnit::createWeekPerson(status));
1312 measureUnitValue = MeasureUnit::getWeekPerson();
1313 measureUnit.adoptInstead(MeasureUnit::createYear(status));
1314 measureUnitValue = MeasureUnit::getYear();
1315 measureUnit.adoptInstead(MeasureUnit::createYearPerson(status));
1316 measureUnitValue = MeasureUnit::getYearPerson();
1317 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
1318 measureUnitValue = MeasureUnit::getAmpere();
1319 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
1320 measureUnitValue = MeasureUnit::getMilliampere();
1321 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
1322 measureUnitValue = MeasureUnit::getOhm();
1323 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
1324 measureUnitValue = MeasureUnit::getVolt();
1325 measureUnit.adoptInstead(MeasureUnit::createBritishThermalUnit(status));
1326 measureUnitValue = MeasureUnit::getBritishThermalUnit();
1327 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
1328 measureUnitValue = MeasureUnit::getCalorie();
1329 measureUnit.adoptInstead(MeasureUnit::createElectronvolt(status));
1330 measureUnitValue = MeasureUnit::getElectronvolt();
1331 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
1332 measureUnitValue = MeasureUnit::getFoodcalorie();
1333 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
1334 measureUnitValue = MeasureUnit::getJoule();
1335 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
1336 measureUnitValue = MeasureUnit::getKilocalorie();
1337 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
1338 measureUnitValue = MeasureUnit::getKilojoule();
1339 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
1340 measureUnitValue = MeasureUnit::getKilowattHour();
1341 measureUnit.adoptInstead(MeasureUnit::createNewton(status));
1342 measureUnitValue = MeasureUnit::getNewton();
1343 measureUnit.adoptInstead(MeasureUnit::createPoundForce(status));
1344 measureUnitValue = MeasureUnit::getPoundForce();
1345 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
1346 measureUnitValue = MeasureUnit::getGigahertz();
1347 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
1348 measureUnitValue = MeasureUnit::getHertz();
1349 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
1350 measureUnitValue = MeasureUnit::getKilohertz();
1351 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
1352 measureUnitValue = MeasureUnit::getMegahertz();
1353 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
1354 measureUnitValue = MeasureUnit::getAstronomicalUnit();
1355 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
1356 measureUnitValue = MeasureUnit::getCentimeter();
1357 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
1358 measureUnitValue = MeasureUnit::getDecimeter();
1359 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
1360 measureUnitValue = MeasureUnit::getFathom();
1361 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
1362 measureUnitValue = MeasureUnit::getFoot();
1363 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
1364 measureUnitValue = MeasureUnit::getFurlong();
1365 measureUnit.adoptInstead(MeasureUnit::createInch(status));
1366 measureUnitValue = MeasureUnit::getInch();
1367 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
1368 measureUnitValue = MeasureUnit::getKilometer();
1369 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
1370 measureUnitValue = MeasureUnit::getLightYear();
1371 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
1372 measureUnitValue = MeasureUnit::getMeter();
1373 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
1374 measureUnitValue = MeasureUnit::getMicrometer();
1375 measureUnit.adoptInstead(MeasureUnit::createMile(status));
1376 measureUnitValue = MeasureUnit::getMile();
1377 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
1378 measureUnitValue = MeasureUnit::getMileScandinavian();
1379 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
1380 measureUnitValue = MeasureUnit::getMillimeter();
1381 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
1382 measureUnitValue = MeasureUnit::getNanometer();
1383 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
1384 measureUnitValue = MeasureUnit::getNauticalMile();
1385 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
1386 measureUnitValue = MeasureUnit::getParsec();
1387 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
1388 measureUnitValue = MeasureUnit::getPicometer();
1389 measureUnit.adoptInstead(MeasureUnit::createPoint(status));
1390 measureUnitValue = MeasureUnit::getPoint();
1391 measureUnit.adoptInstead(MeasureUnit::createSolarRadius(status));
1392 measureUnitValue = MeasureUnit::getSolarRadius();
1393 measureUnit.adoptInstead(MeasureUnit::createYard(status));
1394 measureUnitValue = MeasureUnit::getYard();
1395 measureUnit.adoptInstead(MeasureUnit::createLux(status));
1396 measureUnitValue = MeasureUnit::getLux();
1397 measureUnit.adoptInstead(MeasureUnit::createSolarLuminosity(status));
1398 measureUnitValue = MeasureUnit::getSolarLuminosity();
1399 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
1400 measureUnitValue = MeasureUnit::getCarat();
1401 measureUnit.adoptInstead(MeasureUnit::createDalton(status));
1402 measureUnitValue = MeasureUnit::getDalton();
1403 measureUnit.adoptInstead(MeasureUnit::createEarthMass(status));
1404 measureUnitValue = MeasureUnit::getEarthMass();
1405 measureUnit.adoptInstead(MeasureUnit::createGram(status));
1406 measureUnitValue = MeasureUnit::getGram();
1407 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
1408 measureUnitValue = MeasureUnit::getKilogram();
1409 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
1410 measureUnitValue = MeasureUnit::getMetricTon();
1411 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
1412 measureUnitValue = MeasureUnit::getMicrogram();
1413 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
1414 measureUnitValue = MeasureUnit::getMilligram();
1415 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
1416 measureUnitValue = MeasureUnit::getOunce();
1417 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
1418 measureUnitValue = MeasureUnit::getOunceTroy();
1419 measureUnit.adoptInstead(MeasureUnit::createPound(status));
1420 measureUnitValue = MeasureUnit::getPound();
1421 measureUnit.adoptInstead(MeasureUnit::createSolarMass(status));
1422 measureUnitValue = MeasureUnit::getSolarMass();
1423 measureUnit.adoptInstead(MeasureUnit::createStone(status));
1424 measureUnitValue = MeasureUnit::getStone();
1425 measureUnit.adoptInstead(MeasureUnit::createTon(status));
1426 measureUnitValue = MeasureUnit::getTon();
1427 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
1428 measureUnitValue = MeasureUnit::getGigawatt();
1429 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
1430 measureUnitValue = MeasureUnit::getHorsepower();
1431 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
1432 measureUnitValue = MeasureUnit::getKilowatt();
1433 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
1434 measureUnitValue = MeasureUnit::getMegawatt();
1435 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
1436 measureUnitValue = MeasureUnit::getMilliwatt();
1437 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
1438 measureUnitValue = MeasureUnit::getWatt();
1439 measureUnit.adoptInstead(MeasureUnit::createAtmosphere(status));
1440 measureUnitValue = MeasureUnit::getAtmosphere();
1441 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
1442 measureUnitValue = MeasureUnit::getHectopascal();
1443 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
1444 measureUnitValue = MeasureUnit::getInchHg();
1445 measureUnit.adoptInstead(MeasureUnit::createKilopascal(status));
1446 measureUnitValue = MeasureUnit::getKilopascal();
1447 measureUnit.adoptInstead(MeasureUnit::createMegapascal(status));
1448 measureUnitValue = MeasureUnit::getMegapascal();
1449 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
1450 measureUnitValue = MeasureUnit::getMillibar();
1451 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
1452 measureUnitValue = MeasureUnit::getMillimeterOfMercury();
1453 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
1454 measureUnitValue = MeasureUnit::getPoundPerSquareInch();
1455 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
1456 measureUnitValue = MeasureUnit::getKilometerPerHour();
1457 measureUnit.adoptInstead(MeasureUnit::createKnot(status));
1458 measureUnitValue = MeasureUnit::getKnot();
1459 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
1460 measureUnitValue = MeasureUnit::getMeterPerSecond();
1461 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
1462 measureUnitValue = MeasureUnit::getMilePerHour();
1463 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
1464 measureUnitValue = MeasureUnit::getCelsius();
1465 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
1466 measureUnitValue = MeasureUnit::getFahrenheit();
1467 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
1468 measureUnitValue = MeasureUnit::getGenericTemperature();
1469 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
1470 measureUnitValue = MeasureUnit::getKelvin();
1471 measureUnit.adoptInstead(MeasureUnit::createNewtonMeter(status));
1472 measureUnitValue = MeasureUnit::getNewtonMeter();
1473 measureUnit.adoptInstead(MeasureUnit::createPoundFoot(status));
1474 measureUnitValue = MeasureUnit::getPoundFoot();
1475 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
1476 measureUnitValue = MeasureUnit::getAcreFoot();
1477 measureUnit.adoptInstead(MeasureUnit::createBarrel(status));
1478 measureUnitValue = MeasureUnit::getBarrel();
1479 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
1480 measureUnitValue = MeasureUnit::getBushel();
1481 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
1482 measureUnitValue = MeasureUnit::getCentiliter();
1483 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
1484 measureUnitValue = MeasureUnit::getCubicCentimeter();
1485 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
1486 measureUnitValue = MeasureUnit::getCubicFoot();
1487 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
1488 measureUnitValue = MeasureUnit::getCubicInch();
1489 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
1490 measureUnitValue = MeasureUnit::getCubicKilometer();
1491 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
1492 measureUnitValue = MeasureUnit::getCubicMeter();
1493 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
1494 measureUnitValue = MeasureUnit::getCubicMile();
1495 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
1496 measureUnitValue = MeasureUnit::getCubicYard();
1497 measureUnit.adoptInstead(MeasureUnit::createCup(status));
1498 measureUnitValue = MeasureUnit::getCup();
1499 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
1500 measureUnitValue = MeasureUnit::getCupMetric();
1501 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
1502 measureUnitValue = MeasureUnit::getDeciliter();
1503 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
1504 measureUnitValue = MeasureUnit::getFluidOunce();
1505 measureUnit.adoptInstead(MeasureUnit::createFluidOunceImperial(status));
1506 measureUnitValue = MeasureUnit::getFluidOunceImperial();
1507 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
1508 measureUnitValue = MeasureUnit::getGallon();
1509 measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
1510 measureUnitValue = MeasureUnit::getGallonImperial();
1511 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
1512 measureUnitValue = MeasureUnit::getHectoliter();
1513 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
1514 measureUnitValue = MeasureUnit::getLiter();
1515 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
1516 measureUnitValue = MeasureUnit::getMegaliter();
1517 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
1518 measureUnitValue = MeasureUnit::getMilliliter();
1519 measureUnit.adoptInstead(MeasureUnit::createPint(status));
1520 measureUnitValue = MeasureUnit::getPint();
1521 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
1522 measureUnitValue = MeasureUnit::getPintMetric();
1523 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
1524 measureUnitValue = MeasureUnit::getQuart();
1525 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
1526 measureUnitValue = MeasureUnit::getTablespoon();
1527 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
1528 measureUnitValue = MeasureUnit::getTeaspoon();
1529 assertSuccess("", status);
1530}
1531
340931cb
A
1532void MeasureFormatTest::TestCompatible65() {
1533 UErrorCode status = U_ZERO_ERROR;
1534 LocalPointer<MeasureUnit> measureUnit;
1535 MeasureUnit measureUnitValue;
1536 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
1537 measureUnitValue = MeasureUnit::getGForce();
1538 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
1539 measureUnitValue = MeasureUnit::getMeterPerSecondSquared();
1540 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
1541 measureUnitValue = MeasureUnit::getArcMinute();
1542 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
1543 measureUnitValue = MeasureUnit::getArcSecond();
1544 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
1545 measureUnitValue = MeasureUnit::getDegree();
1546 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
1547 measureUnitValue = MeasureUnit::getRadian();
1548 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
1549 measureUnitValue = MeasureUnit::getRevolutionAngle();
1550 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
1551 measureUnitValue = MeasureUnit::getAcre();
1552 measureUnit.adoptInstead(MeasureUnit::createDunam(status));
1553 measureUnitValue = MeasureUnit::getDunam();
1554 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
1555 measureUnitValue = MeasureUnit::getHectare();
1556 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
1557 measureUnitValue = MeasureUnit::getSquareCentimeter();
1558 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
1559 measureUnitValue = MeasureUnit::getSquareFoot();
1560 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
1561 measureUnitValue = MeasureUnit::getSquareInch();
1562 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
1563 measureUnitValue = MeasureUnit::getSquareKilometer();
1564 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
1565 measureUnitValue = MeasureUnit::getSquareMeter();
1566 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
1567 measureUnitValue = MeasureUnit::getSquareMile();
1568 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
1569 measureUnitValue = MeasureUnit::getSquareYard();
1570 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
1571 measureUnitValue = MeasureUnit::getKarat();
1572 measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
1573 measureUnitValue = MeasureUnit::getMilligramPerDeciliter();
1574 measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
1575 measureUnitValue = MeasureUnit::getMillimolePerLiter();
1576 measureUnit.adoptInstead(MeasureUnit::createMole(status));
1577 measureUnitValue = MeasureUnit::getMole();
1578 measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
1579 measureUnitValue = MeasureUnit::getPartPerMillion();
1580 measureUnit.adoptInstead(MeasureUnit::createPercent(status));
1581 measureUnitValue = MeasureUnit::getPercent();
1582 measureUnit.adoptInstead(MeasureUnit::createPermille(status));
1583 measureUnitValue = MeasureUnit::getPermille();
1584 measureUnit.adoptInstead(MeasureUnit::createPermyriad(status));
1585 measureUnitValue = MeasureUnit::getPermyriad();
1586 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
1587 measureUnitValue = MeasureUnit::getLiterPer100Kilometers();
1588 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
1589 measureUnitValue = MeasureUnit::getLiterPerKilometer();
1590 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
1591 measureUnitValue = MeasureUnit::getMilePerGallon();
1592 measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
1593 measureUnitValue = MeasureUnit::getMilePerGallonImperial();
1594 measureUnit.adoptInstead(MeasureUnit::createBit(status));
1595 measureUnitValue = MeasureUnit::getBit();
1596 measureUnit.adoptInstead(MeasureUnit::createByte(status));
1597 measureUnitValue = MeasureUnit::getByte();
1598 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
1599 measureUnitValue = MeasureUnit::getGigabit();
1600 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
1601 measureUnitValue = MeasureUnit::getGigabyte();
1602 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
1603 measureUnitValue = MeasureUnit::getKilobit();
1604 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
1605 measureUnitValue = MeasureUnit::getKilobyte();
1606 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
1607 measureUnitValue = MeasureUnit::getMegabit();
1608 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
1609 measureUnitValue = MeasureUnit::getMegabyte();
1610 measureUnit.adoptInstead(MeasureUnit::createPetabyte(status));
1611 measureUnitValue = MeasureUnit::getPetabyte();
1612 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
1613 measureUnitValue = MeasureUnit::getTerabit();
1614 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
1615 measureUnitValue = MeasureUnit::getTerabyte();
1616 measureUnit.adoptInstead(MeasureUnit::createCentury(status));
1617 measureUnitValue = MeasureUnit::getCentury();
1618 measureUnit.adoptInstead(MeasureUnit::createDay(status));
1619 measureUnitValue = MeasureUnit::getDay();
1620 measureUnit.adoptInstead(MeasureUnit::createDayPerson(status));
1621 measureUnitValue = MeasureUnit::getDayPerson();
1622 measureUnit.adoptInstead(MeasureUnit::createDecade(status));
1623 measureUnitValue = MeasureUnit::getDecade();
1624 measureUnit.adoptInstead(MeasureUnit::createHour(status));
1625 measureUnitValue = MeasureUnit::getHour();
1626 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
1627 measureUnitValue = MeasureUnit::getMicrosecond();
1628 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
1629 measureUnitValue = MeasureUnit::getMillisecond();
1630 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
1631 measureUnitValue = MeasureUnit::getMinute();
1632 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
1633 measureUnitValue = MeasureUnit::getMonth();
1634 measureUnit.adoptInstead(MeasureUnit::createMonthPerson(status));
1635 measureUnitValue = MeasureUnit::getMonthPerson();
1636 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
1637 measureUnitValue = MeasureUnit::getNanosecond();
1638 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
1639 measureUnitValue = MeasureUnit::getSecond();
1640 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
1641 measureUnitValue = MeasureUnit::getWeek();
1642 measureUnit.adoptInstead(MeasureUnit::createWeekPerson(status));
1643 measureUnitValue = MeasureUnit::getWeekPerson();
1644 measureUnit.adoptInstead(MeasureUnit::createYear(status));
1645 measureUnitValue = MeasureUnit::getYear();
1646 measureUnit.adoptInstead(MeasureUnit::createYearPerson(status));
1647 measureUnitValue = MeasureUnit::getYearPerson();
1648 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
1649 measureUnitValue = MeasureUnit::getAmpere();
1650 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
1651 measureUnitValue = MeasureUnit::getMilliampere();
1652 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
1653 measureUnitValue = MeasureUnit::getOhm();
1654 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
1655 measureUnitValue = MeasureUnit::getVolt();
1656 measureUnit.adoptInstead(MeasureUnit::createBritishThermalUnit(status));
1657 measureUnitValue = MeasureUnit::getBritishThermalUnit();
1658 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
1659 measureUnitValue = MeasureUnit::getCalorie();
1660 measureUnit.adoptInstead(MeasureUnit::createElectronvolt(status));
1661 measureUnitValue = MeasureUnit::getElectronvolt();
1662 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
1663 measureUnitValue = MeasureUnit::getFoodcalorie();
1664 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
1665 measureUnitValue = MeasureUnit::getJoule();
1666 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
1667 measureUnitValue = MeasureUnit::getKilocalorie();
1668 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
1669 measureUnitValue = MeasureUnit::getKilojoule();
1670 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
1671 measureUnitValue = MeasureUnit::getKilowattHour();
1672 measureUnit.adoptInstead(MeasureUnit::createThermUs(status));
1673 measureUnitValue = MeasureUnit::getThermUs();
1674 measureUnit.adoptInstead(MeasureUnit::createNewton(status));
1675 measureUnitValue = MeasureUnit::getNewton();
1676 measureUnit.adoptInstead(MeasureUnit::createPoundForce(status));
1677 measureUnitValue = MeasureUnit::getPoundForce();
1678 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
1679 measureUnitValue = MeasureUnit::getGigahertz();
1680 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
1681 measureUnitValue = MeasureUnit::getHertz();
1682 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
1683 measureUnitValue = MeasureUnit::getKilohertz();
1684 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
1685 measureUnitValue = MeasureUnit::getMegahertz();
1686 measureUnit.adoptInstead(MeasureUnit::createDotPerCentimeter(status));
1687 measureUnitValue = MeasureUnit::getDotPerCentimeter();
1688 measureUnit.adoptInstead(MeasureUnit::createDotPerInch(status));
1689 measureUnitValue = MeasureUnit::getDotPerInch();
1690 measureUnit.adoptInstead(MeasureUnit::createEm(status));
1691 measureUnitValue = MeasureUnit::getEm();
1692 measureUnit.adoptInstead(MeasureUnit::createMegapixel(status));
1693 measureUnitValue = MeasureUnit::getMegapixel();
1694 measureUnit.adoptInstead(MeasureUnit::createPixel(status));
1695 measureUnitValue = MeasureUnit::getPixel();
1696 measureUnit.adoptInstead(MeasureUnit::createPixelPerCentimeter(status));
1697 measureUnitValue = MeasureUnit::getPixelPerCentimeter();
1698 measureUnit.adoptInstead(MeasureUnit::createPixelPerInch(status));
1699 measureUnitValue = MeasureUnit::getPixelPerInch();
1700 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
1701 measureUnitValue = MeasureUnit::getAstronomicalUnit();
1702 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
1703 measureUnitValue = MeasureUnit::getCentimeter();
1704 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
1705 measureUnitValue = MeasureUnit::getDecimeter();
1706 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
1707 measureUnitValue = MeasureUnit::getFathom();
1708 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
1709 measureUnitValue = MeasureUnit::getFoot();
1710 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
1711 measureUnitValue = MeasureUnit::getFurlong();
1712 measureUnit.adoptInstead(MeasureUnit::createInch(status));
1713 measureUnitValue = MeasureUnit::getInch();
1714 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
1715 measureUnitValue = MeasureUnit::getKilometer();
1716 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
1717 measureUnitValue = MeasureUnit::getLightYear();
1718 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
1719 measureUnitValue = MeasureUnit::getMeter();
1720 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
1721 measureUnitValue = MeasureUnit::getMicrometer();
1722 measureUnit.adoptInstead(MeasureUnit::createMile(status));
1723 measureUnitValue = MeasureUnit::getMile();
1724 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
1725 measureUnitValue = MeasureUnit::getMileScandinavian();
1726 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
1727 measureUnitValue = MeasureUnit::getMillimeter();
1728 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
1729 measureUnitValue = MeasureUnit::getNanometer();
1730 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
1731 measureUnitValue = MeasureUnit::getNauticalMile();
1732 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
1733 measureUnitValue = MeasureUnit::getParsec();
1734 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
1735 measureUnitValue = MeasureUnit::getPicometer();
1736 measureUnit.adoptInstead(MeasureUnit::createPoint(status));
1737 measureUnitValue = MeasureUnit::getPoint();
1738 measureUnit.adoptInstead(MeasureUnit::createSolarRadius(status));
1739 measureUnitValue = MeasureUnit::getSolarRadius();
1740 measureUnit.adoptInstead(MeasureUnit::createYard(status));
1741 measureUnitValue = MeasureUnit::getYard();
1742 measureUnit.adoptInstead(MeasureUnit::createLux(status));
1743 measureUnitValue = MeasureUnit::getLux();
1744 measureUnit.adoptInstead(MeasureUnit::createSolarLuminosity(status));
1745 measureUnitValue = MeasureUnit::getSolarLuminosity();
1746 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
1747 measureUnitValue = MeasureUnit::getCarat();
1748 measureUnit.adoptInstead(MeasureUnit::createDalton(status));
1749 measureUnitValue = MeasureUnit::getDalton();
1750 measureUnit.adoptInstead(MeasureUnit::createEarthMass(status));
1751 measureUnitValue = MeasureUnit::getEarthMass();
1752 measureUnit.adoptInstead(MeasureUnit::createGram(status));
1753 measureUnitValue = MeasureUnit::getGram();
1754 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
1755 measureUnitValue = MeasureUnit::getKilogram();
1756 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
1757 measureUnitValue = MeasureUnit::getMetricTon();
1758 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
1759 measureUnitValue = MeasureUnit::getMicrogram();
1760 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
1761 measureUnitValue = MeasureUnit::getMilligram();
1762 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
1763 measureUnitValue = MeasureUnit::getOunce();
1764 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
1765 measureUnitValue = MeasureUnit::getOunceTroy();
1766 measureUnit.adoptInstead(MeasureUnit::createPound(status));
1767 measureUnitValue = MeasureUnit::getPound();
1768 measureUnit.adoptInstead(MeasureUnit::createSolarMass(status));
1769 measureUnitValue = MeasureUnit::getSolarMass();
1770 measureUnit.adoptInstead(MeasureUnit::createStone(status));
1771 measureUnitValue = MeasureUnit::getStone();
1772 measureUnit.adoptInstead(MeasureUnit::createTon(status));
1773 measureUnitValue = MeasureUnit::getTon();
1774 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
1775 measureUnitValue = MeasureUnit::getGigawatt();
1776 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
1777 measureUnitValue = MeasureUnit::getHorsepower();
1778 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
1779 measureUnitValue = MeasureUnit::getKilowatt();
1780 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
1781 measureUnitValue = MeasureUnit::getMegawatt();
1782 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
1783 measureUnitValue = MeasureUnit::getMilliwatt();
1784 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
1785 measureUnitValue = MeasureUnit::getWatt();
1786 measureUnit.adoptInstead(MeasureUnit::createAtmosphere(status));
1787 measureUnitValue = MeasureUnit::getAtmosphere();
1788 measureUnit.adoptInstead(MeasureUnit::createBar(status));
1789 measureUnitValue = MeasureUnit::getBar();
1790 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
1791 measureUnitValue = MeasureUnit::getHectopascal();
1792 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
1793 measureUnitValue = MeasureUnit::getInchHg();
1794 measureUnit.adoptInstead(MeasureUnit::createKilopascal(status));
1795 measureUnitValue = MeasureUnit::getKilopascal();
1796 measureUnit.adoptInstead(MeasureUnit::createMegapascal(status));
1797 measureUnitValue = MeasureUnit::getMegapascal();
1798 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
1799 measureUnitValue = MeasureUnit::getMillibar();
1800 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
1801 measureUnitValue = MeasureUnit::getMillimeterOfMercury();
1802 measureUnit.adoptInstead(MeasureUnit::createPascal(status));
1803 measureUnitValue = MeasureUnit::getPascal();
1804 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
1805 measureUnitValue = MeasureUnit::getPoundPerSquareInch();
1806 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
1807 measureUnitValue = MeasureUnit::getKilometerPerHour();
1808 measureUnit.adoptInstead(MeasureUnit::createKnot(status));
1809 measureUnitValue = MeasureUnit::getKnot();
1810 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
1811 measureUnitValue = MeasureUnit::getMeterPerSecond();
1812 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
1813 measureUnitValue = MeasureUnit::getMilePerHour();
1814 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
1815 measureUnitValue = MeasureUnit::getCelsius();
1816 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
1817 measureUnitValue = MeasureUnit::getFahrenheit();
1818 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
1819 measureUnitValue = MeasureUnit::getGenericTemperature();
1820 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
1821 measureUnitValue = MeasureUnit::getKelvin();
1822 measureUnit.adoptInstead(MeasureUnit::createNewtonMeter(status));
1823 measureUnitValue = MeasureUnit::getNewtonMeter();
1824 measureUnit.adoptInstead(MeasureUnit::createPoundFoot(status));
1825 measureUnitValue = MeasureUnit::getPoundFoot();
1826 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
1827 measureUnitValue = MeasureUnit::getAcreFoot();
1828 measureUnit.adoptInstead(MeasureUnit::createBarrel(status));
1829 measureUnitValue = MeasureUnit::getBarrel();
1830 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
1831 measureUnitValue = MeasureUnit::getBushel();
1832 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
1833 measureUnitValue = MeasureUnit::getCentiliter();
1834 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
1835 measureUnitValue = MeasureUnit::getCubicCentimeter();
1836 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
1837 measureUnitValue = MeasureUnit::getCubicFoot();
1838 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
1839 measureUnitValue = MeasureUnit::getCubicInch();
1840 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
1841 measureUnitValue = MeasureUnit::getCubicKilometer();
1842 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
1843 measureUnitValue = MeasureUnit::getCubicMeter();
1844 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
1845 measureUnitValue = MeasureUnit::getCubicMile();
1846 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
1847 measureUnitValue = MeasureUnit::getCubicYard();
1848 measureUnit.adoptInstead(MeasureUnit::createCup(status));
1849 measureUnitValue = MeasureUnit::getCup();
1850 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
1851 measureUnitValue = MeasureUnit::getCupMetric();
1852 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
1853 measureUnitValue = MeasureUnit::getDeciliter();
1854 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
1855 measureUnitValue = MeasureUnit::getFluidOunce();
1856 measureUnit.adoptInstead(MeasureUnit::createFluidOunceImperial(status));
1857 measureUnitValue = MeasureUnit::getFluidOunceImperial();
1858 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
1859 measureUnitValue = MeasureUnit::getGallon();
1860 measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
1861 measureUnitValue = MeasureUnit::getGallonImperial();
1862 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
1863 measureUnitValue = MeasureUnit::getHectoliter();
1864 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
1865 measureUnitValue = MeasureUnit::getLiter();
1866 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
1867 measureUnitValue = MeasureUnit::getMegaliter();
1868 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
1869 measureUnitValue = MeasureUnit::getMilliliter();
1870 measureUnit.adoptInstead(MeasureUnit::createPint(status));
1871 measureUnitValue = MeasureUnit::getPint();
1872 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
1873 measureUnitValue = MeasureUnit::getPintMetric();
1874 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
1875 measureUnitValue = MeasureUnit::getQuart();
1876 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
1877 measureUnitValue = MeasureUnit::getTablespoon();
1878 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
1879 measureUnitValue = MeasureUnit::getTeaspoon();
1880 assertSuccess("", status);
1881}
1882
57a6839d
A
1883void MeasureFormatTest::TestBasic() {
1884 UErrorCode status = U_ZERO_ERROR;
1885 MeasureUnit *ptr1 = MeasureUnit::createArcMinute(status);
1886 MeasureUnit *ptr2 = MeasureUnit::createArcMinute(status);
1887 if (!(*ptr1 == *ptr2)) {
1888 errln("Expect == to work.");
1889 }
1890 if (*ptr1 != *ptr2) {
1891 errln("Expect != to work.");
1892 }
1893 MeasureUnit *ptr3 = MeasureUnit::createMeter(status);
1894 if (*ptr1 == *ptr3) {
1895 errln("Expect == to work.");
1896 }
1897 if (!(*ptr1 != *ptr3)) {
1898 errln("Expect != to work.");
1899 }
340931cb 1900 MeasureUnit *ptr4 = ptr1->clone();
57a6839d
A
1901 if (*ptr1 != *ptr4) {
1902 errln("Expect clone to work.");
1903 }
1904 MeasureUnit stack;
1905 stack = *ptr1;
1906 if (*ptr1 != stack) {
1907 errln("Expect assignment to work.");
1908 }
1909
1910 delete ptr1;
1911 delete ptr2;
1912 delete ptr3;
1913 delete ptr4;
1914}
1915
1916void MeasureFormatTest::TestGetAvailable() {
1917 MeasureUnit *units = NULL;
1918 UErrorCode status = U_ZERO_ERROR;
1919 int32_t totalCount = MeasureUnit::getAvailable(units, 0, status);
1920 while (status == U_BUFFER_OVERFLOW_ERROR) {
1921 status = U_ZERO_ERROR;
1922 delete [] units;
1923 units = new MeasureUnit[totalCount];
1924 totalCount = MeasureUnit::getAvailable(units, totalCount, status);
1925 }
1926 if (U_FAILURE(status)) {
1927 dataerrln("Failure creating format object - %s", u_errorName(status));
1928 delete [] units;
1929 return;
1930 }
1931 if (totalCount < 200) {
1932 errln("Expect at least 200 measure units including currencies.");
1933 }
1934 delete [] units;
1935 StringEnumeration *types = MeasureUnit::getAvailableTypes(status);
1936 if (U_FAILURE(status)) {
1937 dataerrln("Failure getting types - %s", u_errorName(status));
1938 delete types;
1939 return;
1940 }
1941 if (types->count(status) < 10) {
1942 errln("Expect at least 10 distinct unit types.");
1943 }
1944 units = NULL;
1945 int32_t unitCapacity = 0;
1946 int32_t unitCountSum = 0;
1947 for (
1948 const char* type = types->next(NULL, status);
1949 type != NULL;
1950 type = types->next(NULL, status)) {
1951 int32_t unitCount = MeasureUnit::getAvailable(type, units, unitCapacity, status);
1952 while (status == U_BUFFER_OVERFLOW_ERROR) {
1953 status = U_ZERO_ERROR;
1954 delete [] units;
1955 units = new MeasureUnit[unitCount];
1956 unitCapacity = unitCount;
1957 unitCount = MeasureUnit::getAvailable(type, units, unitCapacity, status);
1958 }
1959 if (U_FAILURE(status)) {
1960 dataerrln("Failure getting units - %s", u_errorName(status));
1961 delete [] units;
1962 delete types;
1963 return;
1964 }
1965 if (unitCount < 1) {
1966 errln("Expect at least one unit count per type.");
1967 }
1968 unitCountSum += unitCount;
1969 }
1970 if (unitCountSum != totalCount) {
1971 errln("Expected total unit count to equal sum of unit counts by type.");
1972 }
1973 delete [] units;
1974 delete types;
1975}
1976
1977void MeasureFormatTest::TestExamplesInDocs() {
1978 UErrorCode status = U_ZERO_ERROR;
1979 MeasureFormat fmtFr(Locale::getFrench(), UMEASFMT_WIDTH_SHORT, status);
1980 MeasureFormat fmtFrFull(
1981 Locale::getFrench(), UMEASFMT_WIDTH_WIDE, status);
1982 MeasureFormat fmtFrNarrow(
1983 Locale::getFrench(), UMEASFMT_WIDTH_NARROW, status);
1984 MeasureFormat fmtEn(Locale::getUS(), UMEASFMT_WIDTH_WIDE, status);
1985 if (!assertSuccess("Error creating formatters", status)) {
1986 return;
1987 }
f3c0d7a5
A
1988 Measure measureC((double)23, MeasureUnit::createCelsius(status), status);
1989 Measure measureF((double)70, MeasureUnit::createFahrenheit(status), status);
57a6839d 1990 Measure feetAndInches[] = {
f3c0d7a5
A
1991 Measure((double)70, MeasureUnit::createFoot(status), status),
1992 Measure((double)5.3, MeasureUnit::createInch(status), status)};
57a6839d 1993 Measure footAndInch[] = {
f3c0d7a5
A
1994 Measure((double)1, MeasureUnit::createFoot(status), status),
1995 Measure((double)1, MeasureUnit::createInch(status), status)};
57a6839d 1996 Measure inchAndFeet[] = {
f3c0d7a5
A
1997 Measure((double)1, MeasureUnit::createInch(status), status),
1998 Measure((double)2, MeasureUnit::createFoot(status), status)};
57a6839d
A
1999 if (!assertSuccess("Error creating measurements.", status)) {
2000 return;
2001 }
2002 verifyFormat(
2003 "Celsius",
2004 fmtFr,
2005 &measureC,
2006 1,
3d1f044b 2007 "23\\u202F\\u00B0C");
57a6839d
A
2008 verifyFormatWithPrefix(
2009 "Celsius",
2010 fmtFr,
2011 "Prefix: ",
2012 &measureC,
2013 1,
3d1f044b 2014 "Prefix: 23\\u202F\\u00B0C");
57a6839d
A
2015 verifyFormat(
2016 "Fahrenheit",
2017 fmtFr,
2018 &measureF,
2019 1,
3d1f044b 2020 "70\\u202F\\u00B0F");
57a6839d
A
2021 verifyFormat(
2022 "Feet and inches",
2023 fmtFrFull,
2024 feetAndInches,
b331163b 2025 UPRV_LENGTHOF(feetAndInches),
3d1f044b 2026 "70 pieds et 5,3\\u00A0pouces");
57a6839d
A
2027 verifyFormatWithPrefix(
2028 "Feet and inches",
2029 fmtFrFull,
2030 "Prefix: ",
2031 feetAndInches,
b331163b 2032 UPRV_LENGTHOF(feetAndInches),
3d1f044b 2033 "Prefix: 70 pieds et 5,3\\u00A0pouces");
57a6839d
A
2034 verifyFormat(
2035 "Foot and inch",
2036 fmtFrFull,
2037 footAndInch,
b331163b 2038 UPRV_LENGTHOF(footAndInch),
3d1f044b 2039 "1\\u00A0pied et 1\\u00A0pouce");
57a6839d
A
2040 verifyFormat(
2041 "Foot and inch narrow",
2042 fmtFrNarrow,
2043 footAndInch,
b331163b 2044 UPRV_LENGTHOF(footAndInch),
57a6839d
A
2045 "1\\u2032 1\\u2033");
2046 verifyFormat(
2047 "Inch and feet",
2048 fmtEn,
2049 inchAndFeet,
b331163b 2050 UPRV_LENGTHOF(inchAndFeet),
57a6839d
A
2051 "1 inch, 2 feet");
2052}
2053
2054void MeasureFormatTest::TestFormatPeriodEn() {
2055 UErrorCode status = U_ZERO_ERROR;
340931cb
A
2056 Measure t_1y[] = {Measure((double)1, MeasureUnit::createYear(status), status)};
2057 Measure t_5M[] = {Measure((double)5, MeasureUnit::createMonth(status), status)};
2058 Measure t_4d[] = {Measure((double)4, MeasureUnit::createDay(status), status)};
2059 Measure t_2h[] = {Measure((double)2, MeasureUnit::createHour(status), status)};
f3c0d7a5 2060 Measure t_19m[] = {Measure((double)19, MeasureUnit::createMinute(status), status)};
57a6839d 2061 Measure t_1h_23_5s[] = {
f3c0d7a5
A
2062 Measure((double)1.0, MeasureUnit::createHour(status), status),
2063 Measure((double)23.5, MeasureUnit::createSecond(status), status)
57a6839d
A
2064 };
2065 Measure t_1h_23_5m[] = {
f3c0d7a5
A
2066 Measure((double)1.0, MeasureUnit::createHour(status), status),
2067 Measure((double)23.5, MeasureUnit::createMinute(status), status)
57a6839d
A
2068 };
2069 Measure t_1h_0m_23s[] = {
2070 Measure(
f3c0d7a5 2071 (double)1.0,
57a6839d
A
2072 TimeUnit::createInstance(
2073 TimeUnit::UTIMEUNIT_HOUR, status),
2074 status),
2075 Measure(
f3c0d7a5 2076 (double)0.0,
57a6839d
A
2077 TimeUnit::createInstance(
2078 TimeUnit::UTIMEUNIT_MINUTE, status),
2079 status),
2080 Measure(
f3c0d7a5 2081 (double)23.0,
57a6839d
A
2082 TimeUnit::createInstance(
2083 TimeUnit::UTIMEUNIT_SECOND, status),
2084 status)
2085 };
2086 Measure t_2y_5M_3w_4d[] = {
2087 Measure(2.0, MeasureUnit::createYear(status), status),
2088 Measure(5.0, MeasureUnit::createMonth(status), status),
2089 Measure(3.0, MeasureUnit::createWeek(status), status),
2090 Measure(4.0, MeasureUnit::createDay(status), status)
2091 };
2092 Measure t_1m_59_9996s[] = {
2093 Measure(1.0, MeasureUnit::createMinute(status), status),
2094 Measure(59.9996, MeasureUnit::createSecond(status), status)
2095 };
2096 Measure t_5h_17m[] = {
2097 Measure(5.0, MeasureUnit::createHour(status), status),
2098 Measure(17.0, MeasureUnit::createMinute(status), status)
2099 };
2100 Measure t_neg5h_17m[] = {
2101 Measure(-5.0, MeasureUnit::createHour(status), status),
2102 Measure(17.0, MeasureUnit::createMinute(status), status)
2103 };
2104 Measure t_19m_28s[] = {
2105 Measure(19.0, MeasureUnit::createMinute(status), status),
2106 Measure(28.0, MeasureUnit::createSecond(status), status)
2107 };
2108 Measure t_0h_0m_9s[] = {
2109 Measure(0.0, MeasureUnit::createHour(status), status),
2110 Measure(0.0, MeasureUnit::createMinute(status), status),
2111 Measure(9.0, MeasureUnit::createSecond(status), status)
2112 };
2113 Measure t_0h_0m_17s[] = {
2114 Measure(0.0, MeasureUnit::createHour(status), status),
2115 Measure(0.0, MeasureUnit::createMinute(status), status),
2116 Measure(17.0, MeasureUnit::createSecond(status), status)
2117 };
2118 Measure t_6h_56_92m[] = {
2119 Measure(6.0, MeasureUnit::createHour(status), status),
2120 Measure(56.92, MeasureUnit::createMinute(status), status)
2121 };
2122 Measure t_3h_4s_5m[] = {
2123 Measure(3.0, MeasureUnit::createHour(status), status),
2124 Measure(4.0, MeasureUnit::createSecond(status), status),
2125 Measure(5.0, MeasureUnit::createMinute(status), status)
2126 };
2127 Measure t_6_7h_56_92m[] = {
2128 Measure(6.7, MeasureUnit::createHour(status), status),
2129 Measure(56.92, MeasureUnit::createMinute(status), status)
2130 };
2131
2132 Measure t_3h_5h[] = {
2133 Measure(3.0, MeasureUnit::createHour(status), status),
2134 Measure(5.0, MeasureUnit::createHour(status), status)
2135 };
2136
2137 if (!assertSuccess("Error creating Measure objects", status)) {
2138 return;
2139 }
2ca993e8 2140
57a6839d 2141 ExpectedResult fullData[] = {
b331163b
A
2142 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1 minute, 59.9996 seconds"},
2143 {t_19m, UPRV_LENGTHOF(t_19m), "19 minutes"},
2144 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1 hour, 23.5 seconds"},
2145 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1 hour, 23.5 minutes"},
2146 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1 hour, 0 minutes, 23 seconds"},
2147 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2 years, 5 months, 3 weeks, 4 days"}};
57a6839d
A
2148
2149 ExpectedResult abbrevData[] = {
b331163b
A
2150 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1 min, 59.9996 sec"},
2151 {t_19m, UPRV_LENGTHOF(t_19m), "19 min"},
2152 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1 hr, 23.5 sec"},
2153 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1 hr, 23.5 min"},
2154 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1 hr, 0 min, 23 sec"},
2155 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2 yrs, 5 mths, 3 wks, 4 days"}};
57a6839d
A
2156
2157 ExpectedResult narrowData[] = {
b331163b
A
2158 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1m 59.9996s"},
2159 {t_19m, UPRV_LENGTHOF(t_19m), "19m"},
2160 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1h 23.5s"},
2161 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1h 23.5m"},
2162 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1h 0m 23s"},
f3c0d7a5 2163 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2y 5mo 3w 4d"}};
57a6839d
A
2164
2165 ExpectedResult numericData[] = {
b331163b
A
2166 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1:59.9996"},
2167 {t_19m, UPRV_LENGTHOF(t_19m), "19m"},
2168 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1:00:23.5"},
2169 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1:23.5"},
2170 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1:00:23"},
2171 {t_5h_17m, UPRV_LENGTHOF(t_5h_17m), "5:17"},
2172 {t_neg5h_17m, UPRV_LENGTHOF(t_neg5h_17m), "-5h 17m"},
2173 {t_19m_28s, UPRV_LENGTHOF(t_19m_28s), "19:28"},
f3c0d7a5 2174 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2y 5mo 3w 4d"},
b331163b
A
2175 {t_0h_0m_9s, UPRV_LENGTHOF(t_0h_0m_9s), "0:00:09"},
2176 {t_6h_56_92m, UPRV_LENGTHOF(t_6h_56_92m), "6:56.92"},
2177 {t_6_7h_56_92m, UPRV_LENGTHOF(t_6_7h_56_92m), "6:56.92"},
2178 {t_3h_4s_5m, UPRV_LENGTHOF(t_3h_4s_5m), "3h 4s 5m"},
2179 {t_3h_5h, UPRV_LENGTHOF(t_3h_5h), "3h 5h"}};
57a6839d
A
2180
2181 ExpectedResult fullDataDe[] = {
b331163b
A
2182 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1 Minute und 59,9996 Sekunden"},
2183 {t_19m, UPRV_LENGTHOF(t_19m), "19 Minuten"},
2184 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1 Stunde und 23,5 Sekunden"},
2185 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1 Stunde und 23,5 Minuten"},
2186 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1 Stunde, 0 Minuten und 23 Sekunden"},
2187 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2 Jahre, 5 Monate, 3 Wochen und 4 Tage"}};
57a6839d
A
2188
2189 ExpectedResult numericDataDe[] = {
b331163b
A
2190 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1:59,9996"},
2191 {t_19m, UPRV_LENGTHOF(t_19m), "19min"},
2192 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1:00:23,5"},
2193 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1:23,5"},
2194 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1:00:23"},
2195 {t_5h_17m, UPRV_LENGTHOF(t_5h_17m), "5:17"},
2196 {t_19m_28s, UPRV_LENGTHOF(t_19m_28s), "19:28"},
2197 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2J 5M 3W 4d"},
2198 {t_0h_0m_17s, UPRV_LENGTHOF(t_0h_0m_17s), "0:00:17"},
2199 {t_6h_56_92m, UPRV_LENGTHOF(t_6h_56_92m), "6:56,92"},
2200 {t_3h_5h, UPRV_LENGTHOF(t_3h_5h), "3h 5h"}};
57a6839d 2201
340931cb
A
2202 ExpectedResult numericDataBn[] = {
2203 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "\\u09E7:\\u09EB\\u09EF.\\u09EF\\u09EF\\u09EF\\u09EC"},
2204 {t_19m, UPRV_LENGTHOF(t_19m), "\\u09E7\\u09EF \\u09AE\\u09BF\\u0983"},
2205 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "\\u09E7:\\u09E6\\u09E6:\\u09E8\\u09E9.\\u09EB"},
2206 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "\\u09E7:\\u09E6\\u09E6:\\u09E8\\u09E9"},
2207 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "\\u09E7:\\u09E8\\u09E9.\\u09EB"},
2208 {t_5h_17m, UPRV_LENGTHOF(t_5h_17m), "\\u09EB:\\u09E7\\u09ED"},
2209 {t_19m_28s, UPRV_LENGTHOF(t_19m_28s), "\\u09E7\\u09EF:\\u09E8\\u09EE"},
2210 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "\\u09E8 \\u09AC\\u099B\\u09B0, \\u09EB \\u09AE\\u09BE\\u09B8, \\u09E9 \\u09B8\\u09AA\\u09CD\\u09A4\\u09BE\\u09B9, \\u09EA \\u09A6\\u09BF\\u09A8"},
2211 {t_0h_0m_17s, UPRV_LENGTHOF(t_0h_0m_17s), "\\u09E6:\\u09E6\\u09E6:\\u09E7\\u09ED"},
2212 {t_6h_56_92m, UPRV_LENGTHOF(t_6h_56_92m), "\\u09EC:\\u09EB\\u09EC.\\u09EF\\u09E8"},
2213 {t_3h_5h, UPRV_LENGTHOF(t_3h_5h), "\\u09E9 \\u0998\\u0983, \\u09EB \\u0998\\u0983"}};
2214
2215 ExpectedResult numericDataBnLatn[] = {
2216 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1:59.9996"},
2217 {t_19m, UPRV_LENGTHOF(t_19m), "19 \\u09AE\\u09BF\\u0983"},
2218 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1:00:23.5"},
2219 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1:00:23"},
2220 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1:23.5"},
2221 {t_5h_17m, UPRV_LENGTHOF(t_5h_17m), "5:17"},
2222 {t_19m_28s, UPRV_LENGTHOF(t_19m_28s), "19:28"},
2223 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2 \\u09AC\\u099B\\u09B0, 5 \\u09AE\\u09BE\\u09B8, 3 \\u09B8\\u09AA\\u09CD\\u09A4\\u09BE\\u09B9, 4 \\u09A6\\u09BF\\u09A8"},
2224 {t_0h_0m_17s, UPRV_LENGTHOF(t_0h_0m_17s), "0:00:17"},
2225 {t_6h_56_92m, UPRV_LENGTHOF(t_6h_56_92m), "6:56.92"},
2226 {t_3h_5h, UPRV_LENGTHOF(t_3h_5h), "3 \\u0998\\u0983, 5 \\u0998\\u0983"}};
2227
2228 ExpectedResult fullDataSpellout[] = {
2229 {t_1y, UPRV_LENGTHOF(t_1y), "one year"},
2230 {t_5M, UPRV_LENGTHOF(t_5M), "five months"},
2231 {t_4d, UPRV_LENGTHOF(t_4d), "four days"},
2232 {t_2h, UPRV_LENGTHOF(t_2h), "two hours"},
2233 {t_19m, UPRV_LENGTHOF(t_19m), "nineteen minutes"}};
2234
2235 ExpectedResult fullDataSpelloutFr[] = {
2236 {t_1y, UPRV_LENGTHOF(t_1y), "un\\u00A0an"},
2237 {t_5M, UPRV_LENGTHOF(t_5M), "cinq\\u00A0mois"},
2238 {t_4d, UPRV_LENGTHOF(t_4d), "quatre\\u00A0jours"},
2239 {t_2h, UPRV_LENGTHOF(t_2h), "deux\\u00A0heures"},
2240 {t_19m, UPRV_LENGTHOF(t_19m), "dix-neuf minutes"}};
2241
57a6839d
A
2242 Locale en(Locale::getEnglish());
2243 LocalPointer<NumberFormat> nf(NumberFormat::createInstance(en, status));
2244 if (U_FAILURE(status)) {
2245 dataerrln("Error creating number format en object - %s", u_errorName(status));
2246 return;
2247 }
2248 nf->setMaximumFractionDigits(4);
340931cb 2249 MeasureFormat mf(en, UMEASFMT_WIDTH_WIDE, nf->clone(), status);
57a6839d
A
2250 if (!assertSuccess("Error creating measure format en WIDE", status)) {
2251 return;
2252 }
b331163b 2253 verifyFormat("en WIDE", mf, fullData, UPRV_LENGTHOF(fullData));
57a6839d
A
2254
2255 // exercise copy constructor
2256 {
2257 MeasureFormat mf2(mf);
b331163b 2258 verifyFormat("en WIDE copy", mf2, fullData, UPRV_LENGTHOF(fullData));
57a6839d
A
2259 }
2260 // exercise clone
2261 {
340931cb 2262 MeasureFormat *mf3 = mf.clone();
b331163b 2263 verifyFormat("en WIDE copy", *mf3, fullData, UPRV_LENGTHOF(fullData));
57a6839d
A
2264 delete mf3;
2265 }
340931cb 2266 mf = MeasureFormat(en, UMEASFMT_WIDTH_SHORT, nf->clone(), status);
57a6839d
A
2267 if (!assertSuccess("Error creating measure format en SHORT", status)) {
2268 return;
2269 }
b331163b 2270 verifyFormat("en SHORT", mf, abbrevData, UPRV_LENGTHOF(abbrevData));
340931cb 2271 mf = MeasureFormat(en, UMEASFMT_WIDTH_NARROW, nf->clone(), status);
57a6839d
A
2272 if (!assertSuccess("Error creating measure format en NARROW", status)) {
2273 return;
2274 }
b331163b 2275 verifyFormat("en NARROW", mf, narrowData, UPRV_LENGTHOF(narrowData));
340931cb 2276 mf = MeasureFormat(en, UMEASFMT_WIDTH_NUMERIC, nf->clone(), status);
57a6839d
A
2277 if (!assertSuccess("Error creating measure format en NUMERIC", status)) {
2278 return;
2279 }
b331163b 2280 verifyFormat("en NUMERIC", mf, numericData, UPRV_LENGTHOF(numericData));
2ca993e8 2281
57a6839d
A
2282 Locale de(Locale::getGerman());
2283 nf.adoptInstead(NumberFormat::createInstance(de, status));
2284 if (!assertSuccess("Error creating number format de object", status)) {
2285 return;
2286 }
2287 nf->setMaximumFractionDigits(4);
340931cb 2288 mf = MeasureFormat(de, UMEASFMT_WIDTH_WIDE, nf->clone(), status);
57a6839d
A
2289 if (!assertSuccess("Error creating measure format de WIDE", status)) {
2290 return;
2291 }
b331163b 2292 verifyFormat("de WIDE", mf, fullDataDe, UPRV_LENGTHOF(fullDataDe));
340931cb 2293 mf = MeasureFormat(de, UMEASFMT_WIDTH_NUMERIC, nf->clone(), status);
57a6839d
A
2294 if (!assertSuccess("Error creating measure format de NUMERIC", status)) {
2295 return;
2296 }
b331163b 2297 verifyFormat("de NUMERIC", mf, numericDataDe, UPRV_LENGTHOF(numericDataDe));
340931cb
A
2298
2299 Locale bengali("bn");
2300 nf.adoptInstead(NumberFormat::createInstance(bengali, status));
2301 if (!assertSuccess("Error creating number format de object", status)) {
2302 return;
2303 }
2304 nf->setMaximumFractionDigits(4);
2305 mf = MeasureFormat(bengali, UMEASFMT_WIDTH_NUMERIC, nf->clone(), status);
2306 if (!assertSuccess("Error creating measure format bn NUMERIC", status)) {
2307 return;
2308 }
2309 verifyFormat("bn NUMERIC", mf, numericDataBn, UPRV_LENGTHOF(numericDataBn));
2310
2311 Locale bengaliLatin("bn-u-nu-latn");
2312 nf.adoptInstead(NumberFormat::createInstance(bengaliLatin, status));
2313 if (!assertSuccess("Error creating number format de object", status)) {
2314 return;
2315 }
2316 nf->setMaximumFractionDigits(4);
2317 mf = MeasureFormat(bengaliLatin, UMEASFMT_WIDTH_NUMERIC, nf->clone(), status);
2318 if (!assertSuccess("Error creating measure format bn-u-nu-latn NUMERIC", status)) {
2319 return;
2320 }
2321 verifyFormat("bn-u-nu-latn NUMERIC", mf, numericDataBnLatn, UPRV_LENGTHOF(numericDataBnLatn));
2322
2323 status = U_ZERO_ERROR;
2324 LocalPointer<RuleBasedNumberFormat> rbnf(new RuleBasedNumberFormat(URBNF_SPELLOUT, en, status));
2325 if (U_FAILURE(status)) {
2326 dataerrln("Error creating rbnf en object - %s", u_errorName(status));
2327 return;
2328 }
2329 mf = MeasureFormat(en, UMEASFMT_WIDTH_WIDE, rbnf->clone(), status);
2330 if (!assertSuccess("Error creating measure format en WIDE with rbnf", status)) {
2331 return;
2332 }
2333 verifyFormat("en WIDE rbnf", mf, fullDataSpellout, UPRV_LENGTHOF(fullDataSpellout));
2334
2335 Locale fr(Locale::getFrench());
2336 LocalPointer<RuleBasedNumberFormat> rbnffr(new RuleBasedNumberFormat(URBNF_SPELLOUT, fr, status));
2337 if (U_FAILURE(status)) {
2338 dataerrln("Error creating rbnf fr object - %s", u_errorName(status));
2339 return;
2340 }
2341 mf = MeasureFormat(fr, UMEASFMT_WIDTH_WIDE, rbnffr->clone(), status);
2342 if (!assertSuccess("Error creating measure format fr WIDE with rbnf", status)) {
2343 return;
2344 }
2345 verifyFormat("fr WIDE rbnf", mf, fullDataSpelloutFr, UPRV_LENGTHOF(fullDataSpellout));
57a6839d
A
2346}
2347
2348void MeasureFormatTest::Test10219FractionalPlurals() {
2349 Locale en(Locale::getEnglish());
2350 double values[] = {1.588, 1.011};
2351 const char *expected[2][3] = {
2352 {"1 minute", "1.5 minutes", "1.58 minutes"},
2353 {"1 minute", "1.0 minutes", "1.01 minutes"}
2354 };
2355 UErrorCode status = U_ZERO_ERROR;
b331163b
A
2356 for (int j = 0; j < UPRV_LENGTHOF(values); j++) {
2357 for (int i = 0; i < UPRV_LENGTHOF(expected[j]); i++) {
57a6839d
A
2358 DecimalFormat *df =
2359 (DecimalFormat *) NumberFormat::createInstance(en, status);
2360 if (U_FAILURE(status)) {
2361 dataerrln("Error creating Number format - %s", u_errorName(status));
2362 return;
2363 }
2364 df->setRoundingMode(DecimalFormat::kRoundDown);
2365 df->setMinimumFractionDigits(i);
2366 df->setMaximumFractionDigits(i);
2367 MeasureFormat mf(en, UMEASFMT_WIDTH_WIDE, df, status);
2368 if (!assertSuccess("Error creating Measure format", status)) {
2369 return;
2370 }
2371 Measure measure(values[j], MeasureUnit::createMinute(status), status);
2372 if (!assertSuccess("Error creating Measure unit", status)) {
2373 return;
2374 }
2375 verifyFormat("Test10219", mf, &measure, 1, expected[j][i]);
2ca993e8 2376 }
57a6839d
A
2377 }
2378}
2379
2380static MeasureUnit toMeasureUnit(MeasureUnit *adopted) {
2381 MeasureUnit result(*adopted);
2382 delete adopted;
2383 return result;
2384}
2385
2386void MeasureFormatTest::TestGreek() {
2387 Locale locales[] = {Locale("el_GR"), Locale("el")};
2388 UErrorCode status = U_ZERO_ERROR;
2389 MeasureUnit units[] = {
2390 toMeasureUnit(MeasureUnit::createSecond(status)),
2391 toMeasureUnit(MeasureUnit::createMinute(status)),
2392 toMeasureUnit(MeasureUnit::createHour(status)),
2393 toMeasureUnit(MeasureUnit::createDay(status)),
2394 toMeasureUnit(MeasureUnit::createWeek(status)),
2395 toMeasureUnit(MeasureUnit::createMonth(status)),
2396 toMeasureUnit(MeasureUnit::createYear(status))};
2397 if (!assertSuccess("Error creating Measure units", status)) {
2398 return;
2399 }
2400 UMeasureFormatWidth styles[] = {
2401 UMEASFMT_WIDTH_WIDE,
2402 UMEASFMT_WIDTH_SHORT};
2403 int32_t numbers[] = {1, 7};
2404 const char *expected[] = {
b331163b 2405 // "el_GR" 1 wide
57a6839d
A
2406 "1 \\u03B4\\u03B5\\u03C5\\u03C4\\u03B5\\u03C1\\u03CC\\u03BB\\u03B5\\u03C0\\u03C4\\u03BF",
2407 "1 \\u03BB\\u03B5\\u03C0\\u03C4\\u03CC",
2408 "1 \\u03CE\\u03C1\\u03B1",
2409 "1 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B1",
2410 "1 \\u03B5\\u03B2\\u03B4\\u03BF\\u03BC\\u03AC\\u03B4\\u03B1",
2411 "1 \\u03BC\\u03AE\\u03BD\\u03B1\\u03C2",
2412 "1 \\u03AD\\u03C4\\u03BF\\u03C2",
b331163b 2413 // "el_GR" 1 short
57a6839d
A
2414 "1 \\u03B4\\u03B5\\u03C5\\u03C4.",
2415 "1 \\u03BB\\u03B5\\u03C0.",
2416 "1 \\u03CE\\u03C1\\u03B1",
2417 "1 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B1",
2418 "1 \\u03B5\\u03B2\\u03B4.",
2419 "1 \\u03BC\\u03AE\\u03BD.",
340931cb 2420 "1 \\u03AD\\u03C4.", // year (one)
b331163b 2421 // "el_GR" 7 wide
57a6839d
A
2422 "7 \\u03B4\\u03B5\\u03C5\\u03C4\\u03B5\\u03C1\\u03CC\\u03BB\\u03B5\\u03C0\\u03C4\\u03B1",
2423 "7 \\u03BB\\u03B5\\u03C0\\u03C4\\u03AC",
2424 "7 \\u03CE\\u03C1\\u03B5\\u03C2",
2425 "7 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B5\\u03C2",
2426 "7 \\u03B5\\u03B2\\u03B4\\u03BF\\u03BC\\u03AC\\u03B4\\u03B5\\u03C2",
2427 "7 \\u03BC\\u03AE\\u03BD\\u03B5\\u03C2",
2428 "7 \\u03AD\\u03C4\\u03B7",
b331163b 2429 // "el_GR" 7 short
57a6839d
A
2430 "7 \\u03B4\\u03B5\\u03C5\\u03C4.",
2431 "7 \\u03BB\\u03B5\\u03C0.",
340931cb 2432 "7 \\u03CE\\u03C1.", // hour (other)
57a6839d
A
2433 "7 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B5\\u03C2",
2434 "7 \\u03B5\\u03B2\\u03B4.",
2435 "7 \\u03BC\\u03AE\\u03BD.",
b331163b
A
2436 "7 \\u03AD\\u03C4.", // year (other)
2437
2438 // "el" 1 wide
57a6839d
A
2439 "1 \\u03B4\\u03B5\\u03C5\\u03C4\\u03B5\\u03C1\\u03CC\\u03BB\\u03B5\\u03C0\\u03C4\\u03BF",
2440 "1 \\u03BB\\u03B5\\u03C0\\u03C4\\u03CC",
2441 "1 \\u03CE\\u03C1\\u03B1",
2442 "1 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B1",
2443 "1 \\u03B5\\u03B2\\u03B4\\u03BF\\u03BC\\u03AC\\u03B4\\u03B1",
2444 "1 \\u03BC\\u03AE\\u03BD\\u03B1\\u03C2",
2445 "1 \\u03AD\\u03C4\\u03BF\\u03C2",
b331163b 2446 // "el" 1 short
57a6839d
A
2447 "1 \\u03B4\\u03B5\\u03C5\\u03C4.",
2448 "1 \\u03BB\\u03B5\\u03C0.",
2449 "1 \\u03CE\\u03C1\\u03B1",
2450 "1 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B1",
2451 "1 \\u03B5\\u03B2\\u03B4.",
2452 "1 \\u03BC\\u03AE\\u03BD.",
340931cb 2453 "1 \\u03AD\\u03C4.", // year (one)
b331163b 2454 // "el" 7 wide
57a6839d
A
2455 "7 \\u03B4\\u03B5\\u03C5\\u03C4\\u03B5\\u03C1\\u03CC\\u03BB\\u03B5\\u03C0\\u03C4\\u03B1",
2456 "7 \\u03BB\\u03B5\\u03C0\\u03C4\\u03AC",
2457 "7 \\u03CE\\u03C1\\u03B5\\u03C2",
2458 "7 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B5\\u03C2",
2459 "7 \\u03B5\\u03B2\\u03B4\\u03BF\\u03BC\\u03AC\\u03B4\\u03B5\\u03C2",
2460 "7 \\u03BC\\u03AE\\u03BD\\u03B5\\u03C2",
2461 "7 \\u03AD\\u03C4\\u03B7",
b331163b 2462 // "el" 7 short
57a6839d
A
2463 "7 \\u03B4\\u03B5\\u03C5\\u03C4.",
2464 "7 \\u03BB\\u03B5\\u03C0.",
340931cb 2465 "7 \\u03CE\\u03C1.", // hour (other)
57a6839d
A
2466 "7 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B5\\u03C2",
2467 "7 \\u03B5\\u03B2\\u03B4.",
2468 "7 \\u03BC\\u03AE\\u03BD.",
b331163b 2469 "7 \\u03AD\\u03C4."}; // year (other)
57a6839d
A
2470
2471 int32_t counter = 0;
b331163b
A
2472 for (int32_t locIndex = 0; locIndex < UPRV_LENGTHOF(locales); ++locIndex ) {
2473 for( int32_t numIndex = 0; numIndex < UPRV_LENGTHOF(numbers); ++numIndex ) {
2474 for ( int32_t styleIndex = 0; styleIndex < UPRV_LENGTHOF(styles); ++styleIndex ) {
2475 for ( int32_t unitIndex = 0; unitIndex < UPRV_LENGTHOF(units); ++unitIndex ) {
57a6839d
A
2476 Measure measure(numbers[numIndex], new MeasureUnit(units[unitIndex]), status);
2477 if (!assertSuccess("Error creating Measure", status)) {
2478 return;
2479 }
2480 MeasureFormat fmt(locales[locIndex], styles[styleIndex], status);
2481 if (!assertSuccess("Error creating Measure format", status)) {
2482 return;
2483 }
2484 verifyFormat("TestGreek", fmt, &measure, 1, expected[counter]);
2485 ++counter;
2486 }
2487 }
2488 }
2489 }
2490}
2491
2492void MeasureFormatTest::TestFormatSingleArg() {
2493 UErrorCode status = U_ZERO_ERROR;
2494 MeasureFormat fmt("en", UMEASFMT_WIDTH_WIDE, status);
2495 if (!assertSuccess("Error creating formatter", status)) {
2496 return;
2497 }
2498 UnicodeString buffer;
f3c0d7a5 2499 FieldPosition pos(FieldPosition::DONT_CARE);
57a6839d
A
2500 fmt.format(
2501 new Measure(3.5, MeasureUnit::createFoot(status), status),
2502 buffer,
2503 pos,
2504 status);
2505 if (!assertSuccess("Error formatting", status)) {
2506 return;
2507 }
2508 assertEquals(
2509 "TestFormatSingleArg",
2510 UnicodeString("3.5 feet"),
2511 buffer);
2512}
2513
2514void MeasureFormatTest::TestFormatMeasuresZeroArg() {
2515 UErrorCode status = U_ZERO_ERROR;
2516 MeasureFormat fmt("en", UMEASFMT_WIDTH_WIDE, status);
2517 verifyFormat("TestFormatMeasuresZeroArg", fmt, NULL, 0, "");
2518}
2519
b331163b
A
2520void MeasureFormatTest::TestSimplePer() {
2521 Locale en("en");
2522 UErrorCode status = U_ZERO_ERROR;
2523 LocalPointer<MeasureUnit> second(MeasureUnit::createSecond(status));
2524 LocalPointer<MeasureUnit> minute(MeasureUnit::createMinute(status));
2525 LocalPointer<MeasureUnit> pound(MeasureUnit::createPound(status));
2526 if (!assertSuccess("", status)) {
2527 return;
2528 }
2529
2530 helperTestSimplePer(
2531 en, UMEASFMT_WIDTH_WIDE,
2532 1.0, *pound, *second, "1 pound per second");
2533 helperTestSimplePer(
2534 en, UMEASFMT_WIDTH_WIDE,
2535 2.0, *pound, *second, "2 pounds per second");
2536 helperTestSimplePer(
2537 en, UMEASFMT_WIDTH_WIDE,
2538 1.0, *pound, *minute, "1 pound per minute");
2539 helperTestSimplePer(
2540 en, UMEASFMT_WIDTH_WIDE,
2541 2.0, *pound, *minute, "2 pounds per minute");
2542
2543 helperTestSimplePer(
2ca993e8 2544 en, UMEASFMT_WIDTH_SHORT, 1.0, *pound, *second, "1 lb/s");
b331163b 2545 helperTestSimplePer(
2ca993e8 2546 en, UMEASFMT_WIDTH_SHORT, 2.0, *pound, *second, "2 lb/s");
b331163b
A
2547 helperTestSimplePer(
2548 en, UMEASFMT_WIDTH_SHORT, 1.0, *pound, *minute, "1 lb/min");
2549 helperTestSimplePer(
2550 en, UMEASFMT_WIDTH_SHORT, 2.0, *pound, *minute, "2 lb/min");
2551
2552 helperTestSimplePer(
2553 en, UMEASFMT_WIDTH_NARROW, 1.0, *pound, *second, "1#/s");
2554 helperTestSimplePer(
2555 en, UMEASFMT_WIDTH_NARROW, 2.0, *pound, *second, "2#/s");
2556 helperTestSimplePer(
2ca993e8 2557 en, UMEASFMT_WIDTH_NARROW, 1.0, *pound, *minute, "1#/min");
b331163b 2558 helperTestSimplePer(
2ca993e8 2559 en, UMEASFMT_WIDTH_NARROW, 2.0, *pound, *minute, "2#/min");
b331163b
A
2560
2561 helperTestSimplePer(
2562 en, UMEASFMT_WIDTH_SHORT,
2ca993e8 2563 23.3, *pound, *second, "23.3 lb/s",
b331163b
A
2564 NumberFormat::kDecimalSeparatorField,
2565 2, 3);
2566
2567 helperTestSimplePer(
2568 en, UMEASFMT_WIDTH_SHORT,
2ca993e8 2569 23.3, *pound, *second, "23.3 lb/s",
b331163b
A
2570 NumberFormat::kIntegerField,
2571 0, 2);
2572
2573 helperTestSimplePer(
2574 en, UMEASFMT_WIDTH_SHORT,
2575 23.3, *pound, *minute, "23.3 lb/min",
2576 NumberFormat::kDecimalSeparatorField,
2577 2, 3);
2578
2579 helperTestSimplePer(
2580 en, UMEASFMT_WIDTH_SHORT,
2581 23.3, *pound, *minute, "23.3 lb/min",
2582 NumberFormat::kIntegerField,
2583 0, 2);
2584}
2585
2586void MeasureFormatTest::TestNumeratorPlurals() {
2587 Locale pl("pl");
2588 UErrorCode status = U_ZERO_ERROR;
2589 LocalPointer<MeasureUnit> second(MeasureUnit::createSecond(status));
2590 LocalPointer<MeasureUnit> foot(MeasureUnit::createFoot(status));
2591 if (!assertSuccess("", status)) {
2592 return;
2593 }
2594
2595 helperTestSimplePer(
2596 pl,
2597 UMEASFMT_WIDTH_WIDE,
2598 1.0, *foot, *second, "1 stopa na sekund\\u0119");
2599 helperTestSimplePer(
2600 pl,
2601 UMEASFMT_WIDTH_WIDE,
2602 2.0, *foot, *second, "2 stopy na sekund\\u0119");
2603 helperTestSimplePer(
2604 pl,
2605 UMEASFMT_WIDTH_WIDE,
2606 5.0, *foot, *second, "5 st\\u00f3p na sekund\\u0119");
2607 helperTestSimplePer(
2608 pl, UMEASFMT_WIDTH_WIDE,
2609 1.5, *foot, *second, "1,5 stopy na sekund\\u0119");
2610}
2611
2612void MeasureFormatTest::helperTestSimplePer(
2613 const Locale &locale,
2614 UMeasureFormatWidth width,
2615 double value,
2616 const MeasureUnit &unit,
2617 const MeasureUnit &perUnit,
2618 const char *expected) {
2619 helperTestSimplePer(
2620 locale,
2621 width,
2622 value,
2623 unit,
2624 perUnit,
2625 expected,
2626 FieldPosition::DONT_CARE,
2627 0,
2628 0);
2629}
2630
2631void MeasureFormatTest::helperTestSimplePer(
2632 const Locale &locale,
2633 UMeasureFormatWidth width,
2634 double value,
2635 const MeasureUnit &unit,
2636 const MeasureUnit &perUnit,
2637 const char *expected,
2638 int32_t field,
2639 int32_t expected_start,
2640 int32_t expected_end) {
2641 UErrorCode status = U_ZERO_ERROR;
2642 FieldPosition pos(field);
2643 MeasureFormat fmt(locale, width, status);
2644 if (!assertSuccess("Error creating format object", status)) {
2645 return;
2646 }
340931cb 2647 Measure measure(value, unit.clone(), status);
b331163b
A
2648 if (!assertSuccess("Error creating measure object", status)) {
2649 return;
2650 }
2651 UnicodeString prefix("prefix: ");
2652 UnicodeString buffer(prefix);
2653 fmt.formatMeasurePerUnit(
2654 measure,
2655 perUnit,
2656 buffer,
2657 pos,
2658 status);
2659 if (!assertSuccess("Error formatting measures with per", status)) {
2660 return;
2661 }
2662 UnicodeString uexpected(expected);
2663 uexpected = prefix + uexpected;
2664 assertEquals(
2665 "TestSimplePer",
2666 uexpected.unescape(),
2667 buffer);
2668 if (field != FieldPosition::DONT_CARE) {
2669 assertEquals(
2670 "Start", expected_start, pos.getBeginIndex() - prefix.length());
2671 assertEquals(
2672 "End", expected_end, pos.getEndIndex() - prefix.length());
2673 }
2674}
2675
57a6839d
A
2676void MeasureFormatTest::TestMultiples() {
2677 Locale ru("ru");
2678 Locale en("en");
0f5d89e8
A
2679 helperTestMultiples(en, UMEASFMT_WIDTH_WIDE, "2 miles, 1 foot, 2.3 inches");
2680 helperTestMultiples(en, UMEASFMT_WIDTH_SHORT, "2 mi, 1 ft, 2.3 in");
57a6839d 2681 helperTestMultiples(en, UMEASFMT_WIDTH_NARROW, "2mi 1\\u2032 2.3\\u2033");
0f5d89e8 2682 helperTestMultiples(ru, UMEASFMT_WIDTH_WIDE, "2 \\u043C\\u0438\\u043B\\u0438, 1 \\u0444\\u0443\\u0442, 2,3 \\u0434\\u044E\\u0439\\u043C\\u0430");
3d1f044b
A
2683 helperTestMultiples(ru, UMEASFMT_WIDTH_SHORT, "2 \\u043C\\u0438, 1 \\u0444\\u0442, 2,3 \\u0434\\u044E\\u0439\\u043C.");
2684 helperTestMultiples(ru, UMEASFMT_WIDTH_NARROW, "2 \\u043C\\u0438 1\\u2032 2,3\\u2033");
57a6839d
A
2685}
2686
2687void MeasureFormatTest::helperTestMultiples(
2688 const Locale &locale,
2689 UMeasureFormatWidth width,
2690 const char *expected) {
2691 UErrorCode status = U_ZERO_ERROR;
f3c0d7a5 2692 FieldPosition pos(FieldPosition::DONT_CARE);
57a6839d
A
2693 MeasureFormat fmt(locale, width, status);
2694 if (!assertSuccess("Error creating format object", status)) {
2695 return;
2696 }
2697 Measure measures[] = {
f3c0d7a5
A
2698 Measure(2.0, MeasureUnit::createMile(status), status),
2699 Measure(1.0, MeasureUnit::createFoot(status), status),
57a6839d
A
2700 Measure(2.3, MeasureUnit::createInch(status), status)};
2701 if (!assertSuccess("Error creating measures", status)) {
2702 return;
2703 }
2704 UnicodeString buffer;
b331163b 2705 fmt.formatMeasures(measures, UPRV_LENGTHOF(measures), buffer, pos, status);
57a6839d
A
2706 if (!assertSuccess("Error formatting measures", status)) {
2707 return;
2708 }
2709 assertEquals("TestMultiples", UnicodeString(expected).unescape(), buffer);
2710}
2711
2ca993e8
A
2712void MeasureFormatTest::TestManyLocaleDurations() {
2713 UErrorCode status = U_ZERO_ERROR;
2714 Measure measures[] = {
f3c0d7a5
A
2715 Measure(5.0, MeasureUnit::createHour(status), status),
2716 Measure(37.0, MeasureUnit::createMinute(status), status)};
2ca993e8
A
2717 if (!assertSuccess("Error creating measures", status)) {
2718 return;
2719 }
340931cb 2720 helperTestManyLocaleDurations("ca", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5 h 37 min");
2ca993e8
A
2721 helperTestManyLocaleDurations("da", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5 t. 37 m."); // Apple data change
2722 helperTestManyLocaleDurations("da", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5.37");
2723 helperTestManyLocaleDurations("de", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5h 37min"); // Apple data change
2724 helperTestManyLocaleDurations("de", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
2725 helperTestManyLocaleDurations("en", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5h 37m");
2726 helperTestManyLocaleDurations("en", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
f3c0d7a5
A
2727 helperTestManyLocaleDurations("en_GB", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5h 37m");
2728 helperTestManyLocaleDurations("en_GB", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
340931cb 2729 helperTestManyLocaleDurations("es", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5 h 37 min");
2ca993e8 2730 helperTestManyLocaleDurations("es", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
340931cb 2731 helperTestManyLocaleDurations("fi", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5 t 37 min"); // Apple data change
2ca993e8
A
2732 helperTestManyLocaleDurations("fi", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5.37");
2733 helperTestManyLocaleDurations("fr", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5h 37mn");
0f5d89e8 2734 helperTestManyLocaleDurations("fr", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
2ca993e8
A
2735 helperTestManyLocaleDurations("is", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5 klst. og 37 m\\u00EDn.");
2736 helperTestManyLocaleDurations("is", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
0f5d89e8 2737 helperTestManyLocaleDurations("ja", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5\\u6642\\u959337\\u5206");
2ca993e8 2738 helperTestManyLocaleDurations("ja", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
1a147d09 2739 helperTestManyLocaleDurations("nb", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5 t, 37 m");
f3c0d7a5 2740 helperTestManyLocaleDurations("nb", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
2ca993e8
A
2741 helperTestManyLocaleDurations("nl", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5 u, 37 m");
2742 helperTestManyLocaleDurations("nl", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
0f5d89e8 2743 helperTestManyLocaleDurations("nn", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5t og 37m");
f3c0d7a5 2744 helperTestManyLocaleDurations("nn", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
2ca993e8
A
2745 helperTestManyLocaleDurations("sv", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5h 37m");
2746 helperTestManyLocaleDurations("sv", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
2747 helperTestManyLocaleDurations("zh", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5\\u5C0F\\u65F637\\u5206\\u949F");
2748 helperTestManyLocaleDurations("zh", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
2749}
2750
2751void MeasureFormatTest::helperTestManyLocaleDurations( const char *localeID,
2752 UMeasureFormatWidth width,
2753 const Measure *measures,
2754 int32_t measureCount,
2755 const char *expected) {
2756 UErrorCode status = U_ZERO_ERROR;
2757 MeasureFormat fmt(Locale(localeID), width, status);
2758 if (U_FAILURE(status)) {
2759 errln("Could not create MeasureFormat for locale %s, width %d, status: %s", localeID, (int)width, u_errorName(status));
2760 return;
2761 }
2762 UnicodeString buffer;
f3c0d7a5 2763 FieldPosition pos(FieldPosition::DONT_CARE);
2ca993e8
A
2764 fmt.formatMeasures(measures, measureCount, buffer, pos, status);
2765 if (U_FAILURE(status)) {
2766 errln("MeasureFormat::formatMeasures failed for locale %s, width %d, status: %s", localeID, (int)width, u_errorName(status));
2767 return;
2768 }
2769 UnicodeString expStr(UnicodeString(expected).unescape());
2770 if (buffer != expStr) {
2771 errln("MeasureFormat::formatMeasures for locale " + UnicodeString(localeID) + ", width " + width + ", expected \"" + expStr + "\", got \"" + buffer + "\"");
2772 }
2773}
2774
57a6839d
A
2775void MeasureFormatTest::TestGram() {
2776 UErrorCode status = U_ZERO_ERROR;
2777 MeasureFormat fmt("en", UMEASFMT_WIDTH_SHORT, status);
2778 if (!assertSuccess("Error creating format object", status)) {
2779 return;
2780 }
f3c0d7a5
A
2781 Measure gram((double)1, MeasureUnit::createGram(status), status);
2782 Measure gforce((double)1, MeasureUnit::createGForce(status), status);
57a6839d
A
2783 if (!assertSuccess("Error creating measures", status)) {
2784 return;
2785 }
2786 verifyFormat("TestGram", fmt, &gram, 1, "1 g");
2787 verifyFormat("TestGram", fmt, &gforce, 1, "1 G");
2788}
2789
2790void MeasureFormatTest::TestCurrencies() {
3d1f044b 2791 UChar USD[4] = {};
f3c0d7a5 2792 u_uastrcpy(USD, "USD");
57a6839d 2793 UErrorCode status = U_ZERO_ERROR;
3d1f044b
A
2794 CurrencyUnit USD_unit(USD, status);
2795 assertEquals("Currency Unit", USD, USD_unit.getISOCurrency());
2796 if (!assertSuccess("Error creating CurrencyUnit", status)) {
2797 return;
2798 }
57a6839d 2799 CurrencyAmount USD_1(1.0, USD, status);
f3c0d7a5 2800 assertEquals("Currency Code", USD, USD_1.getISOCurrency());
57a6839d
A
2801 CurrencyAmount USD_2(2.0, USD, status);
2802 CurrencyAmount USD_NEG_1(-1.0, USD, status);
f3c0d7a5 2803 if (!assertSuccess("Error creating currencies", status)) {
57a6839d
A
2804 return;
2805 }
2806 Locale en("en");
2807 MeasureFormat fmt(en, UMEASFMT_WIDTH_WIDE, status);
2808 if (!assertSuccess("Error creating format object", status)) {
2809 return;
2810 }
2811 verifyFormat("TestCurrenciesWide", fmt, &USD_NEG_1, 1, "-1.00 US dollars");
2812 verifyFormat("TestCurrenciesWide", fmt, &USD_1, 1, "1.00 US dollars");
2813 verifyFormat("TestCurrenciesWide", fmt, &USD_2, 1, "2.00 US dollars");
2814 fmt = MeasureFormat(en, UMEASFMT_WIDTH_SHORT, status);
2815 if (!assertSuccess("Error creating format object", status)) {
2816 return;
2817 }
3d1f044b
A
2818 verifyFormat("TestCurrenciesShort", fmt, &USD_NEG_1, 1, "-USD\\u00A01.00");
2819 verifyFormat("TestCurrenciesShort", fmt, &USD_1, 1, "USD\\u00A01.00");
2820 verifyFormat("TestCurrenciesShort", fmt, &USD_2, 1, "USD\\u00A02.00");
57a6839d
A
2821 fmt = MeasureFormat(en, UMEASFMT_WIDTH_NARROW, status);
2822 if (!assertSuccess("Error creating format object", status)) {
2823 return;
2824 }
2825 verifyFormat("TestCurrenciesNarrow", fmt, &USD_NEG_1, 1, "-$1.00");
2826 verifyFormat("TestCurrenciesNarrow", fmt, &USD_1, 1, "$1.00");
2827 verifyFormat("TestCurrenciesNarrow", fmt, &USD_2, 1, "$2.00");
2828 fmt = MeasureFormat(en, UMEASFMT_WIDTH_NUMERIC, status);
2829 if (!assertSuccess("Error creating format object", status)) {
2830 return;
2831 }
2832 verifyFormat("TestCurrenciesNumeric", fmt, &USD_NEG_1, 1, "-$1.00");
2833 verifyFormat("TestCurrenciesNumeric", fmt, &USD_1, 1, "$1.00");
2834 verifyFormat("TestCurrenciesNumeric", fmt, &USD_2, 1, "$2.00");
2835}
2836
f3c0d7a5
A
2837void MeasureFormatTest::TestDisplayNames() {
2838 UErrorCode status = U_ZERO_ERROR;
2839 helperTestDisplayName( MeasureUnit::createYear(status), "en", UMEASFMT_WIDTH_WIDE, "years" );
2840 helperTestDisplayName( MeasureUnit::createYear(status), "ja", UMEASFMT_WIDTH_WIDE, "\\u5E74" );
2841 helperTestDisplayName( MeasureUnit::createYear(status), "es", UMEASFMT_WIDTH_WIDE, "a\\u00F1os" );
2842 helperTestDisplayName( MeasureUnit::createYear(status), "pt", UMEASFMT_WIDTH_WIDE, "anos" );
2843 helperTestDisplayName( MeasureUnit::createYear(status), "pt-PT", UMEASFMT_WIDTH_WIDE, "anos" );
2844 helperTestDisplayName( MeasureUnit::createAmpere(status), "en", UMEASFMT_WIDTH_WIDE, "amperes" );
2845 helperTestDisplayName( MeasureUnit::createAmpere(status), "ja", UMEASFMT_WIDTH_WIDE, "\\u30A2\\u30F3\\u30DA\\u30A2" );
2846 helperTestDisplayName( MeasureUnit::createAmpere(status), "es", UMEASFMT_WIDTH_WIDE, "amperios" );
2847 helperTestDisplayName( MeasureUnit::createAmpere(status), "pt", UMEASFMT_WIDTH_WIDE, "amperes" );
2848 helperTestDisplayName( MeasureUnit::createAmpere(status), "pt-PT", UMEASFMT_WIDTH_WIDE, "amperes" );
2849 helperTestDisplayName( MeasureUnit::createMeterPerSecondSquared(status), "pt", UMEASFMT_WIDTH_WIDE, "metros por segundo ao quadrado" );
2850 helperTestDisplayName( MeasureUnit::createMeterPerSecondSquared(status), "pt-PT", UMEASFMT_WIDTH_WIDE, "metros por segundo quadrado" );
2851 helperTestDisplayName( MeasureUnit::createSquareKilometer(status), "pt", UMEASFMT_WIDTH_NARROW, "km\\u00B2" );
2852 helperTestDisplayName( MeasureUnit::createSquareKilometer(status), "pt", UMEASFMT_WIDTH_SHORT, "km\\u00B2" );
2853 helperTestDisplayName( MeasureUnit::createSquareKilometer(status), "pt", UMEASFMT_WIDTH_WIDE, "quil\\u00F4metros quadrados" );
2854 helperTestDisplayName( MeasureUnit::createSecond(status), "pt-PT", UMEASFMT_WIDTH_NARROW, "s" );
2855 helperTestDisplayName( MeasureUnit::createSecond(status), "pt-PT", UMEASFMT_WIDTH_SHORT, "s" );
2856 helperTestDisplayName( MeasureUnit::createSecond(status), "pt-PT", UMEASFMT_WIDTH_WIDE, "segundos" );
2857 helperTestDisplayName( MeasureUnit::createSecond(status), "pt", UMEASFMT_WIDTH_NARROW, "seg" );
0f5d89e8 2858 helperTestDisplayName( MeasureUnit::createSecond(status), "pt", UMEASFMT_WIDTH_SHORT, "seg" );
f3c0d7a5
A
2859 helperTestDisplayName( MeasureUnit::createSecond(status), "pt", UMEASFMT_WIDTH_WIDE, "segundos" );
2860 assertSuccess("Error creating measure units", status);
2861}
2862
2863void MeasureFormatTest::helperTestDisplayName(const MeasureUnit *unit,
2864 const char *localeID,
2865 UMeasureFormatWidth width,
2866 const char *expected) {
2867 UErrorCode status = U_ZERO_ERROR;
2868 MeasureFormat fmt(Locale(localeID), width, status);
2869 if (U_FAILURE(status)) {
2870 errln("Could not create MeasureFormat for locale %s, width %d, status: %s",
2871 localeID, (int)width, u_errorName(status));
2872 return;
2873 }
2874
2875 UnicodeString dnam = fmt.getUnitDisplayName(*unit, status);
2876 if (U_FAILURE(status)) {
2877 errln("MeasureFormat::getUnitDisplayName failed for unit %s-%s, locale %s, width %d, status: %s",
2878 unit->getType(), unit->getSubtype(), localeID, (int)width, u_errorName(status));
2879 return;
2880 }
2881
2882 UnicodeString expStr(UnicodeString(expected).unescape());
2883 if (dnam != expStr) {
2884 errln("MeasureFormat::getUnitDisplayName for unit %s-%s, locale %s, width %d: expected \"%s\", got \"%s\"",
2885 unit->getType(), unit->getSubtype(), localeID, (int)width, CStr(expStr)(), CStr(dnam)());
2886 }
2887
2888 // Delete the measure unit
2889 delete unit;
2890}
2891
57a6839d
A
2892void MeasureFormatTest::TestFieldPosition() {
2893 UErrorCode status = U_ZERO_ERROR;
2894 MeasureFormat fmt("en", UMEASFMT_WIDTH_SHORT, status);
2895 if (!assertSuccess("Error creating format object", status)) {
2896 return;
2897 }
2898 Measure measure(43.5, MeasureUnit::createFoot(status), status);
2899 if (!assertSuccess("Error creating measure object 1", status)) {
2900 return;
2901 }
2902 UnicodeString prefix("123456: ");
2903 verifyFieldPosition(
2904 "",
2905 fmt,
2906 prefix,
2907 &measure,
2908 1,
2909 NumberFormat::kDecimalSeparatorField,
2910 10,
2911 11);
f3c0d7a5 2912 measure = Measure(43.0, MeasureUnit::createFoot(status), status);
57a6839d
A
2913 if (!assertSuccess("Error creating measure object 2", status)) {
2914 return;
2915 }
2916 verifyFieldPosition(
2917 "",
2918 fmt,
2919 prefix,
2920 &measure,
2921 1,
2922 NumberFormat::kDecimalSeparatorField,
2923 0,
2924 0);
2925}
2926
2927void MeasureFormatTest::TestFieldPositionMultiple() {
2928 UErrorCode status = U_ZERO_ERROR;
2929 MeasureFormat fmt("en", UMEASFMT_WIDTH_SHORT, status);
2930 if (!assertSuccess("Error creating format object", status)) {
2931 return;
2932 }
2933 Measure first[] = {
f3c0d7a5
A
2934 Measure((double)354, MeasureUnit::createMeter(status), status),
2935 Measure((double)23, MeasureUnit::createCentimeter(status), status)};
57a6839d 2936 Measure second[] = {
f3c0d7a5
A
2937 Measure((double)354, MeasureUnit::createMeter(status), status),
2938 Measure((double)23, MeasureUnit::createCentimeter(status), status),
2939 Measure((double)5.4, MeasureUnit::createMillimeter(status), status)};
57a6839d 2940 Measure third[] = {
f3c0d7a5
A
2941 Measure((double)3, MeasureUnit::createMeter(status), status),
2942 Measure((double)23, MeasureUnit::createCentimeter(status), status),
2943 Measure((double)5, MeasureUnit::createMillimeter(status), status)};
57a6839d
A
2944 if (!assertSuccess("Error creating measure objects", status)) {
2945 return;
2946 }
2947 UnicodeString prefix("123456: ");
2948 verifyFieldPosition(
2949 "Integer",
2950 fmt,
2951 prefix,
2952 first,
b331163b 2953 UPRV_LENGTHOF(first),
57a6839d
A
2954 NumberFormat::kIntegerField,
2955 8,
2956 11);
2957 verifyFieldPosition(
2958 "Decimal separator",
2959 fmt,
2960 prefix,
2961 second,
b331163b 2962 UPRV_LENGTHOF(second),
57a6839d
A
2963 NumberFormat::kDecimalSeparatorField,
2964 23,
2965 24);
2966 verifyFieldPosition(
2967 "no decimal separator",
2968 fmt,
2969 prefix,
2970 third,
b331163b 2971 UPRV_LENGTHOF(third),
57a6839d
A
2972 NumberFormat::kDecimalSeparatorField,
2973 0,
2974 0);
2975}
2976
2977void MeasureFormatTest::TestBadArg() {
2978 UErrorCode status = U_ZERO_ERROR;
2979 MeasureFormat fmt("en", UMEASFMT_WIDTH_SHORT, status);
2980 if (!assertSuccess("Error creating format object", status)) {
2981 return;
2982 }
f3c0d7a5 2983 FieldPosition pos(FieldPosition::DONT_CARE);
57a6839d
A
2984 UnicodeString buffer;
2985 fmt.format(
2986 9.3,
2987 buffer,
2988 pos,
2989 status);
2990 if (status != U_ILLEGAL_ARGUMENT_ERROR) {
2991 errln("Expected ILLEGAL_ARGUMENT_ERROR");
2992 }
2993}
2994
2995void MeasureFormatTest::TestEquality() {
2996 UErrorCode status = U_ZERO_ERROR;
2997 NumberFormat* nfeq = NumberFormat::createInstance("en", status);
2998 NumberFormat* nfne = NumberFormat::createInstance("fr", status);
2999 MeasureFormat fmt("en", UMEASFMT_WIDTH_SHORT, status);
3000 MeasureFormat fmtEq2("en", UMEASFMT_WIDTH_SHORT, nfeq, status);
3001 MeasureFormat fmtne1("en", UMEASFMT_WIDTH_WIDE, status);
3002 MeasureFormat fmtne2("fr", UMEASFMT_WIDTH_SHORT, status);
3003 MeasureFormat fmtne3("en", UMEASFMT_WIDTH_SHORT, nfne, status);
3004 if (U_FAILURE(status)) {
3005 dataerrln("Error creating MeasureFormats - %s", u_errorName(status));
3006 return;
3007 }
3008 MeasureFormat fmtEq(fmt);
3009 assertTrue("Equal", fmt == fmtEq);
3010 assertTrue("Equal2", fmt == fmtEq2);
3011 assertFalse("Equal Neg", fmt != fmtEq);
3012 assertTrue("Not Equal 1", fmt != fmtne1);
3013 assertFalse("Not Equal Neg 1", fmt == fmtne1);
3014 assertTrue("Not Equal 2", fmt != fmtne2);
3015 assertTrue("Not Equal 3", fmt != fmtne3);
3016}
3017
b331163b
A
3018void MeasureFormatTest::TestGroupingSeparator() {
3019 UErrorCode status = U_ZERO_ERROR;
3020 Locale en("en");
3021 MeasureFormat fmt(en, UMEASFMT_WIDTH_SHORT, status);
3022 if (!assertSuccess("Error creating format object", status)) {
3023 return;
3024 }
3025 Measure ms[] = {
3026 Measure((int32_t)INT32_MAX, MeasureUnit::createYear(status), status),
3027 Measure((int32_t)INT32_MIN, MeasureUnit::createMonth(status), status),
f3c0d7a5
A
3028 Measure(-987.0, MeasureUnit::createDay(status), status),
3029 Measure(1362.0, MeasureUnit::createHour(status), status),
3030 Measure(987.0, MeasureUnit::createMinute(status), status)};
b331163b
A
3031 FieldPosition pos(NumberFormat::kGroupingSeparatorField);
3032 UnicodeString appendTo;
3033 fmt.formatMeasures(ms, 5, appendTo, pos, status);
3034 if (!assertSuccess("Error formatting", status)) {
3035 return;
3036 }
3037 assertEquals(
3038 "grouping separator",
3039 "2,147,483,647 yrs, -2,147,483,648 mths, -987 days, 1,362 hr, 987 min",
3040 appendTo);
3d1f044b
A
3041 assertEquals("begin index", 1, pos.getBeginIndex());
3042 assertEquals("end index", 2, pos.getEndIndex());
b331163b
A
3043}
3044
57a6839d
A
3045void MeasureFormatTest::TestDoubleZero() {
3046 UErrorCode status = U_ZERO_ERROR;
3047 Measure measures[] = {
3048 Measure(4.7, MeasureUnit::createHour(status), status),
f3c0d7a5
A
3049 Measure(23.0, MeasureUnit::createMinute(status), status),
3050 Measure(16.0, MeasureUnit::createSecond(status), status)};
57a6839d
A
3051 Locale en("en");
3052 NumberFormat *nf = NumberFormat::createInstance(en, status);
3053 MeasureFormat fmt("en", UMEASFMT_WIDTH_WIDE, nf, status);
3054 UnicodeString appendTo;
3055 FieldPosition pos(FieldPosition::DONT_CARE);
3056 if (U_FAILURE(status)) {
3057 dataerrln("Error creating formatter - %s", u_errorName(status));
3058 return;
3059 }
3060 nf->setMinimumFractionDigits(2);
3061 nf->setMaximumFractionDigits(2);
b331163b 3062 fmt.formatMeasures(measures, UPRV_LENGTHOF(measures), appendTo, pos, status);
57a6839d
A
3063 if (!assertSuccess("Error formatting", status)) {
3064 return;
3065 }
3066 assertEquals(
3067 "TestDoubleZero",
3068 UnicodeString("4 hours, 23 minutes, 16.00 seconds"),
3069 appendTo);
3070 measures[0] = Measure(-4.7, MeasureUnit::createHour(status), status);
3071 appendTo.remove();
b331163b 3072 fmt.formatMeasures(measures, UPRV_LENGTHOF(measures), appendTo, pos, status);
57a6839d
A
3073 if (!assertSuccess("Error formatting", status)) {
3074 return;
3075 }
3076 assertEquals(
3077 "TestDoubleZero",
3078 UnicodeString("-4 hours, 23 minutes, 16.00 seconds"),
3079 appendTo);
3080}
3081
b331163b
A
3082void MeasureFormatTest::TestUnitPerUnitResolution() {
3083 UErrorCode status = U_ZERO_ERROR;
3084 Locale en("en");
3085 MeasureFormat fmt("en", UMEASFMT_WIDTH_SHORT, status);
f3c0d7a5 3086 Measure measure(50.0, MeasureUnit::createPound(status), status);
b331163b
A
3087 LocalPointer<MeasureUnit> sqInch(MeasureUnit::createSquareInch(status));
3088 if (!assertSuccess("Create of format unit and per unit", status)) {
3089 return;
3090 }
f3c0d7a5 3091 FieldPosition pos(FieldPosition::DONT_CARE);
b331163b
A
3092 UnicodeString actual;
3093 fmt.formatMeasurePerUnit(
3094 measure,
3095 *sqInch,
3096 actual,
3097 pos,
3098 status);
3099 assertEquals("", "50 psi", actual);
3100}
3101
2ca993e8
A
3102void MeasureFormatTest::TestIndividualPluralFallback() {
3103 // See ticket #11986 "incomplete fallback in MeasureFormat".
3104 // In CLDR 28, fr_CA temperature-generic/short has only the "one" form,
3105 // and falls back to fr for the "other" form.
3106 IcuTestErrorCode errorCode(*this, "TestIndividualPluralFallback");
3107 MeasureFormat mf("fr_CA", UMEASFMT_WIDTH_SHORT, errorCode);
3108 LocalPointer<Measure> twoDeg(
f3c0d7a5 3109 new Measure(2.0, MeasureUnit::createGenericTemperature(errorCode), errorCode), errorCode);
2ca993e8
A
3110 UnicodeString expected = UNICODE_STRING_SIMPLE("2\\u00B0").unescape();
3111 UnicodeString actual;
3112 assertEquals("2 deg temp in fr_CA", expected, mf.format(twoDeg.orphan(), actual, errorCode), TRUE);
3113}
3114
3d1f044b
A
3115void MeasureFormatTest::Test20332_PersonUnits() {
3116 IcuTestErrorCode status(*this, "Test20332_PersonUnits");
3117 const struct TestCase {
3118 const char* locale;
3119 MeasureUnit* unitToAdopt;
3120 UMeasureFormatWidth width;
3121 const char* expected;
3122 } cases[] = {
3123 {"en-us", MeasureUnit::createYearPerson(status), UMEASFMT_WIDTH_NARROW, "25y"},
3124 {"en-us", MeasureUnit::createYearPerson(status), UMEASFMT_WIDTH_SHORT, "25 yrs"},
3125 {"en-us", MeasureUnit::createYearPerson(status), UMEASFMT_WIDTH_WIDE, "25 years"},
3126 {"en-us", MeasureUnit::createMonthPerson(status), UMEASFMT_WIDTH_NARROW, "25mo"},
3127 {"en-us", MeasureUnit::createMonthPerson(status), UMEASFMT_WIDTH_SHORT, "25 mths"},
3128 {"en-us", MeasureUnit::createMonthPerson(status), UMEASFMT_WIDTH_WIDE, "25 months"},
3129 {"en-us", MeasureUnit::createWeekPerson(status), UMEASFMT_WIDTH_NARROW, "25w"},
3130 {"en-us", MeasureUnit::createWeekPerson(status), UMEASFMT_WIDTH_SHORT, "25 wks"},
3131 {"en-us", MeasureUnit::createWeekPerson(status), UMEASFMT_WIDTH_WIDE, "25 weeks"},
3132 {"en-us", MeasureUnit::createDayPerson(status), UMEASFMT_WIDTH_NARROW, "25d"},
3133 {"en-us", MeasureUnit::createDayPerson(status), UMEASFMT_WIDTH_SHORT, "25 days"},
3134 {"en-us", MeasureUnit::createDayPerson(status), UMEASFMT_WIDTH_WIDE, "25 days"}
3135 };
3136 for (const auto& cas : cases) {
3137 MeasureFormat mf(cas.locale, cas.width, status);
3138 if (status.errIfFailureAndReset()) { return; }
3139 Measure measure(25, cas.unitToAdopt, status);
3140 if (status.errIfFailureAndReset()) { return; }
3141 verifyFormat(cas.locale, mf, &measure, 1, cas.expected);
3142 }
3143}
3144
340931cb
A
3145void MeasureFormatTest::TestNumericTime() {
3146 IcuTestErrorCode status(*this, "TestNumericTime");
3147
3148 MeasureFormat fmt("en", UMEASFMT_WIDTH_NUMERIC, status);
3149
3150 Measure hours(112, MeasureUnit::createHour(status), status);
3151 Measure minutes(113, MeasureUnit::createMinute(status), status);
3152 Measure seconds(114, MeasureUnit::createSecond(status), status);
3153 Measure fhours(112.8765, MeasureUnit::createHour(status), status);
3154 Measure fminutes(113.8765, MeasureUnit::createMinute(status), status);
3155 Measure fseconds(114.8765, MeasureUnit::createSecond(status), status);
3156 if (status.errDataIfFailureAndReset(WHERE)) return;
3157
3158 verifyFormat("hours", fmt, &hours, 1, "112h");
3159 verifyFormat("minutes", fmt, &minutes, 1, "113m");
3160 verifyFormat("seconds", fmt, &seconds, 1, "114s");
3161
3162 verifyFormat("fhours", fmt, &fhours, 1, "112.876h");
3163 verifyFormat("fminutes", fmt, &fminutes, 1, "113.876m");
3164 verifyFormat("fseconds", fmt, &fseconds, 1, "114.876s");
3165
3166 Measure hoursMinutes[2] = {hours, minutes};
3167 verifyFormat("hoursMinutes", fmt, hoursMinutes, 2, "112:113");
3168 Measure hoursSeconds[2] = {hours, seconds};
3169 verifyFormat("hoursSeconds", fmt, hoursSeconds, 2, "112:00:114");
3170 Measure minutesSeconds[2] = {minutes, seconds};
3171 verifyFormat("minutesSeconds", fmt, minutesSeconds, 2, "113:114");
3172
3173 Measure hoursFminutes[2] = {hours, fminutes};
3174 verifyFormat("hoursFminutes", fmt, hoursFminutes, 2, "112:113.876");
3175 Measure hoursFseconds[2] = {hours, fseconds};
3176 verifyFormat("hoursFseconds", fmt, hoursFseconds, 2, "112:00:114.876");
3177 Measure minutesFseconds[2] = {minutes, fseconds};
3178 verifyFormat("hoursMminutesFsecondsinutes", fmt, minutesFseconds, 2, "113:114.876");
3179
3180 Measure fhoursMinutes[2] = {fhours, minutes};
3181 verifyFormat("fhoursMinutes", fmt, fhoursMinutes, 2, "112:113");
3182 Measure fhoursSeconds[2] = {fhours, seconds};
3183 verifyFormat("fhoursSeconds", fmt, fhoursSeconds, 2, "112:00:114");
3184 Measure fminutesSeconds[2] = {fminutes, seconds};
3185 verifyFormat("fminutesSeconds", fmt, fminutesSeconds, 2, "113:114");
3186
3187 Measure fhoursFminutes[2] = {fhours, fminutes};
3188 verifyFormat("fhoursFminutes", fmt, fhoursFminutes, 2, "112:113.876");
3189 Measure fhoursFseconds[2] = {fhours, fseconds};
3190 verifyFormat("fhoursFseconds", fmt, fhoursFseconds, 2, "112:00:114.876");
3191 Measure fminutesFseconds[2] = {fminutes, fseconds};
3192 verifyFormat("fminutesFseconds", fmt, fminutesFseconds, 2, "113:114.876");
3193
3194 Measure hoursMinutesSeconds[3] = {hours, minutes, seconds};
3195 verifyFormat("hoursMinutesSeconds", fmt, hoursMinutesSeconds, 3, "112:113:114");
3196 Measure fhoursFminutesFseconds[3] = {fhours, fminutes, fseconds};
3197 verifyFormat("fhoursFminutesFseconds", fmt, fhoursFminutesFseconds, 3, "112:113:114.876");
3198}
3199
3200void MeasureFormatTest::TestNumericTimeSomeSpecialFormats() {
3201 IcuTestErrorCode status(*this, "TestNumericTimeSomeSpecialFormats");
3202
3203 Measure fhours(2.8765432, MeasureUnit::createHour(status), status);
3204 Measure fminutes(3.8765432, MeasureUnit::createMinute(status), status);
3205 if (status.errDataIfFailureAndReset(WHERE)) return;
3206
3207 Measure fhoursFminutes[2] = {fhours, fminutes};
3208
3209 // Latvian is one of the very few locales 0-padding the hour
3210 MeasureFormat fmtLt("lt", UMEASFMT_WIDTH_NUMERIC, status);
3211 if (status.errDataIfFailureAndReset(WHERE)) return;
3212 verifyFormat("Latvian fhoursFminutes", fmtLt, fhoursFminutes, 2, "02:03,877");
3213
3214 // Danish is one of the very few locales using '.' as separator
3215 MeasureFormat fmtDa("da", UMEASFMT_WIDTH_NUMERIC, status);
3216 verifyFormat("Danish fhoursFminutes", fmtDa, fhoursFminutes, 2, "2.03,877");
3217}
3218
3d1f044b 3219
57a6839d
A
3220void MeasureFormatTest::verifyFieldPosition(
3221 const char *description,
3222 const MeasureFormat &fmt,
3223 const UnicodeString &prefix,
3224 const Measure *measures,
3225 int32_t measureCount,
3226 NumberFormat::EAlignmentFields field,
3227 int32_t start,
3228 int32_t end) {
3229 // 8 char lead
3230 UnicodeString result(prefix);
3231 FieldPosition pos(field);
3232 UErrorCode status = U_ZERO_ERROR;
3233 CharString ch;
3234 const char *descPrefix = ch.append(description, status)
3235 .append(": ", status).data();
3236 CharString beginIndex;
3237 beginIndex.append(descPrefix, status).append("beginIndex", status);
3238 CharString endIndex;
3239 endIndex.append(descPrefix, status).append("endIndex", status);
3240 fmt.formatMeasures(measures, measureCount, result, pos, status);
3241 if (!assertSuccess("Error formatting", status)) {
3242 return;
3243 }
3244 assertEquals(beginIndex.data(), start, pos.getBeginIndex());
3245 assertEquals(endIndex.data(), end, pos.getEndIndex());
3246}
3247
3248void MeasureFormatTest::verifyFormat(
3249 const char *description,
3250 const MeasureFormat &fmt,
3251 const Measure *measures,
3252 int32_t measureCount,
3253 const char *expected) {
3254 verifyFormatWithPrefix(
3255 description,
3256 fmt,
3257 "",
3258 measures,
3259 measureCount,
3260 expected);
3261}
3262
3263void MeasureFormatTest::verifyFormatWithPrefix(
3264 const char *description,
3265 const MeasureFormat &fmt,
3266 const UnicodeString &prefix,
3267 const Measure *measures,
3268 int32_t measureCount,
3269 const char *expected) {
3270 UnicodeString result(prefix);
f3c0d7a5 3271 FieldPosition pos(FieldPosition::DONT_CARE);
57a6839d
A
3272 UErrorCode status = U_ZERO_ERROR;
3273 fmt.formatMeasures(measures, measureCount, result, pos, status);
3274 if (!assertSuccess("Error formatting", status)) {
3275 return;
3276 }
f3c0d7a5 3277 assertEquals(description, ctou(expected), result);
57a6839d
A
3278}
3279
3280void MeasureFormatTest::verifyFormat(
3281 const char *description,
3282 const MeasureFormat &fmt,
3283 const ExpectedResult *expectedResults,
3284 int32_t count) {
3285 for (int32_t i = 0; i < count; ++i) {
3286 verifyFormat(description, fmt, expectedResults[i].measures, expectedResults[i].count, expectedResults[i].expected);
3287 }
3288}
3289
3290extern IntlTest *createMeasureFormatTest() {
3291 return new MeasureFormatTest();
3292}
3293
3294#endif
3295