INITIAL_COMPOUND_PART_PER = kInitialCompoundPartOffset,
};
-// Trie value offset for powers like "square-", "cubic-", "p2-" etc.
+// Trie value offset for powers like "square-", "cubic-", "pow2-" etc.
constexpr int32_t kPowerPartOffset = 256;
enum PowerPart {
b.add("per-", INITIAL_COMPOUND_PART_PER, status);
b.add("square-", POWER_PART_P2, status);
b.add("cubic-", POWER_PART_P3, status);
- b.add("p2-", POWER_PART_P2, status);
- b.add("p3-", POWER_PART_P3, status);
- b.add("p4-", POWER_PART_P4, status);
- b.add("p5-", POWER_PART_P5, status);
- b.add("p6-", POWER_PART_P6, status);
- b.add("p7-", POWER_PART_P7, status);
- b.add("p8-", POWER_PART_P8, status);
- b.add("p9-", POWER_PART_P9, status);
- b.add("p10-", POWER_PART_P10, status);
- b.add("p11-", POWER_PART_P11, status);
- b.add("p12-", POWER_PART_P12, status);
- b.add("p13-", POWER_PART_P13, status);
- b.add("p14-", POWER_PART_P14, status);
- b.add("p15-", POWER_PART_P15, status);
+ b.add("pow2-", POWER_PART_P2, status);
+ b.add("pow3-", POWER_PART_P3, status);
+ b.add("pow4-", POWER_PART_P4, status);
+ b.add("pow5-", POWER_PART_P5, status);
+ b.add("pow6-", POWER_PART_P6, status);
+ b.add("pow7-", POWER_PART_P7, status);
+ b.add("pow8-", POWER_PART_P8, status);
+ b.add("pow9-", POWER_PART_P9, status);
+ b.add("pow10-", POWER_PART_P10, status);
+ b.add("pow11-", POWER_PART_P11, status);
+ b.add("pow12-", POWER_PART_P12, status);
+ b.add("pow13-", POWER_PART_P13, status);
+ b.add("pow14-", POWER_PART_P14, status);
+ b.add("pow15-", POWER_PART_P15, status);
if (U_FAILURE(status)) { return; }
// Add sanctioned simple units by offset
} else if (posPower == 3) {
output.append("cubic-", status);
} else if (posPower < 10) {
- output.append('p', status);
+ output.append("pow", status);
output.append(posPower + '0', status);
output.append('-', status);
} else if (posPower <= 15) {
- output.append("p1", status);
+ output.append("pow1", status);
output.append('0' + (posPower % 10), status);
output.append('-', status);
} else {
{"per-kilometer", "per-kilometer"},
// Normalization of power and per
- {"p2-foot-and-p2-mile", "square-foot-and-square-mile"},
+ {"pow2-foot-and-pow2-mile", "square-foot-and-square-mile"},
{"gram-square-gram-per-dekagram", "cubic-gram-per-dekagram"},
{"kilogram-per-meter-per-second", "kilogram-per-meter-second"},
"+meter",
"-kilometer",
"+kilometer",
- "-p2-meter",
- "+p2-meter",
+ "-pow2-meter",
+ "+pow2-meter",
+ "p2-meter",
+ "p4-meter",
"+",
"-",
"-mile",
verifySingleUnit(squareMeter, UMEASURE_SI_PREFIX_ONE, 2, "square-meter");
verifySingleUnit(overCubicCentimeter, UMEASURE_SI_PREFIX_CENTI, -3, "per-cubic-centimeter");
- verifySingleUnit(quarticKilometer, UMEASURE_SI_PREFIX_KILO, 4, "p4-kilometer");
- verifySingleUnit(overQuarticKilometer1, UMEASURE_SI_PREFIX_KILO, -4, "per-p4-kilometer");
+ verifySingleUnit(quarticKilometer, UMEASURE_SI_PREFIX_KILO, 4, "pow4-kilometer");
+ verifySingleUnit(overQuarticKilometer1, UMEASURE_SI_PREFIX_KILO, -4, "per-pow4-kilometer");
assertTrue("power inequality", quarticKilometer != overQuarticKilometer1);
.reciprocal(status)
.withSIPrefix(UMEASURE_SI_PREFIX_KILO, status);
- verifySingleUnit(overQuarticKilometer2, UMEASURE_SI_PREFIX_KILO, -4, "per-p4-kilometer");
- verifySingleUnit(overQuarticKilometer3, UMEASURE_SI_PREFIX_KILO, -4, "per-p4-kilometer");
- verifySingleUnit(overQuarticKilometer4, UMEASURE_SI_PREFIX_KILO, -4, "per-p4-kilometer");
+ verifySingleUnit(overQuarticKilometer2, UMEASURE_SI_PREFIX_KILO, -4, "per-pow4-kilometer");
+ verifySingleUnit(overQuarticKilometer3, UMEASURE_SI_PREFIX_KILO, -4, "per-pow4-kilometer");
+ verifySingleUnit(overQuarticKilometer4, UMEASURE_SI_PREFIX_KILO, -4, "per-pow4-kilometer");
assertTrue("reciprocal equality", overQuarticKilometer1 == overQuarticKilometer2);
assertTrue("reciprocal equality", overQuarticKilometer1 == overQuarticKilometer3);
assertTrue("kilometer equality", kilometer == kilometer2);
// Test out-of-range powers
- MeasureUnit power15 = MeasureUnit::forIdentifier("p15-kilometer", status);
- verifySingleUnit(power15, UMEASURE_SI_PREFIX_KILO, 15, "p15-kilometer");
+ MeasureUnit power15 = MeasureUnit::forIdentifier("pow15-kilometer", status);
+ verifySingleUnit(power15, UMEASURE_SI_PREFIX_KILO, 15, "pow15-kilometer");
status.errIfFailureAndReset();
- MeasureUnit power16a = MeasureUnit::forIdentifier("p16-kilometer", status);
+ MeasureUnit power16a = MeasureUnit::forIdentifier("pow16-kilometer", status);
status.expectErrorAndReset(U_ILLEGAL_ARGUMENT_ERROR);
MeasureUnit power16b = power15.product(kilometer, status);
status.expectErrorAndReset(U_ILLEGAL_ARGUMENT_ERROR);
- MeasureUnit powerN15 = MeasureUnit::forIdentifier("per-p15-kilometer", status);
- verifySingleUnit(powerN15, UMEASURE_SI_PREFIX_KILO, -15, "per-p15-kilometer");
+ MeasureUnit powerN15 = MeasureUnit::forIdentifier("per-pow15-kilometer", status);
+ verifySingleUnit(powerN15, UMEASURE_SI_PREFIX_KILO, -15, "per-pow15-kilometer");
status.errIfFailureAndReset();
- MeasureUnit powerN16a = MeasureUnit::forIdentifier("per-p16-kilometer", status);
+ MeasureUnit powerN16a = MeasureUnit::forIdentifier("per-pow16-kilometer", status);
status.expectErrorAndReset(U_ILLEGAL_ARGUMENT_ERROR);
MeasureUnit powerN16b = powerN15.product(overQuarticKilometer1, status);
status.expectErrorAndReset(U_ILLEGAL_ARGUMENT_ERROR);