throw new NullPointerException("Type and subType must be non-null");
}
if (!"currency".equals(type)) {
- if (!ASCII.containsAll(type) || !ASCII_HYPHEN.containsAll(subType)) {
+ if (!ASCII.containsAll(type) || !ASCII_HYPHEN_DIGITS.containsAll(subType)) {
throw new IllegalArgumentException("The type or subType are invalid.");
}
}
}
static final UnicodeSet ASCII = new UnicodeSet('a', 'z').freeze();
- static final UnicodeSet ASCII_HYPHEN = new UnicodeSet('-', '-', 'a', 'z').freeze();
+ static final UnicodeSet ASCII_HYPHEN_DIGITS = new UnicodeSet('-', '-', '0', '9', 'a', 'z').freeze();
/**
* @internal
*/
public static final MeasureUnit RADIAN = MeasureUnit.internalGetInstance("angle", "radian");
+ /**
+ * Constant for unit of angle: revolution
+ * @draft ICU 56
+ * @provisional This API might change or be removed in a future release.
+ */
+ public static final MeasureUnit REVOLUTION = MeasureUnit.internalGetInstance("angle", "revolution");
+
/**
* Constant for unit of area: acre
* @stable ICU 53
*/
public static final MeasureUnit SQUARE_YARD = MeasureUnit.internalGetInstance("area", "square-yard");
+ /**
+ * Constant for unit of consumption: liter-per-100kilometers
+ * @draft ICU 56
+ * @provisional This API might change or be removed in a future release.
+ */
+ public static final MeasureUnit LITER_PER_100KILOMETERS = MeasureUnit.internalGetInstance("consumption", "liter-per-100kilometers");
+
/**
* Constant for unit of consumption: liter-per-kilometer
* @draft ICU 54
*/
public static final MeasureUnit TERABYTE = MeasureUnit.internalGetInstance("digital", "terabyte");
+ /**
+ * Constant for unit of duration: century
+ * @draft ICU 56
+ * @provisional This API might change or be removed in a future release.
+ */
+ public static final MeasureUnit CENTURY = MeasureUnit.internalGetInstance("duration", "century");
+
/**
* Constant for unit of duration: day
* @stable ICU 4.0
/**
* Constant for unit of duration: month
- *
* @stable ICU 4.0
*/
public static final TimeUnit MONTH = (TimeUnit) MeasureUnit.internalGetInstance("duration", "month");
*/
public static final MeasureUnit MILE = MeasureUnit.internalGetInstance("length", "mile");
+ /**
+ * Constant for unit of length: mile-scandinavian
+ * @draft ICU 56
+ * @provisional This API might change or be removed in a future release.
+ */
+ public static final MeasureUnit MILE_SCANDINAVIAN = MeasureUnit.internalGetInstance("length", "mile-scandinavian");
+
/**
* Constant for unit of length: millimeter
* @stable ICU 53
*/
public static final MeasureUnit KILOMETER_PER_HOUR = MeasureUnit.internalGetInstance("speed", "kilometer-per-hour");
+ /**
+ * Constant for unit of speed: knot
+ * @draft ICU 56
+ * @provisional This API might change or be removed in a future release.
+ */
+ public static final MeasureUnit KNOT = MeasureUnit.internalGetInstance("speed", "knot");
+
/**
* Constant for unit of speed: meter-per-second
* @stable ICU 53
*/
public static final MeasureUnit FAHRENHEIT = MeasureUnit.internalGetInstance("temperature", "fahrenheit");
+ /**
+ * Constant for unit of temperature: generic
+ * @draft ICU 55
+ * @provisional This API might change or be removed in a future release.
+ */
+ public static final MeasureUnit GENERIC = MeasureUnit.internalGetInstance("temperature", "generic");
+
/**
* Constant for unit of temperature: kelvin
* @draft ICU 54
*/
public static final MeasureUnit CUP = MeasureUnit.internalGetInstance("volume", "cup");
+ /**
+ * Constant for unit of volume: cup-metric
+ * @draft ICU 56
+ * @provisional This API might change or be removed in a future release.
+ */
+ public static final MeasureUnit CUP_METRIC = MeasureUnit.internalGetInstance("volume", "cup-metric");
+
/**
* Constant for unit of volume: deciliter
* @draft ICU 54
*/
public static final MeasureUnit PINT = MeasureUnit.internalGetInstance("volume", "pint");
+ /**
+ * Constant for unit of volume: pint-metric
+ * @draft ICU 56
+ * @provisional This API might change or be removed in a future release.
+ */
+ public static final MeasureUnit PINT_METRIC = MeasureUnit.internalGetInstance("volume", "pint-metric");
+
/**
* Constant for unit of volume: quart
* @draft ICU 54
}
}
- private static final String[] DRAFT_VERSIONS = {"54"};
+ private static final String[] DRAFT_VERSIONS = {"54", "55", "56"};
private static final HashSet<String> DRAFT_VERSION_SET = new HashSet<String>();
{"QUART", "54"},
{"TABLESPOON", "54"},
{"TEASPOON", "54"},
+ {"GENERIC", "55"},
+ {"REVOLUTION", "56"},
+ {"LITER_PER_100KILOMETERS", "56"},
+ {"CENTURY", "56"},
+ {"MILE_SCANDINAVIAN", "56"},
+ {"KNOT", "56"},
+ {"CUP_METRIC", "56"},
+ {"PINT_METRIC", "56"},
};
private static final HashMap<String, String> JAVA_VERSION_MAP = new HashMap<String, String>();
new MeasureUnitTest().run(args);
}
+ //public void testZZZ() {
+ // // various generateXXX calls go here, see
+ // // http://site.icu-project.org/design/formatting/measureformat/updating-measure-unit
+ //}
+
public void TestCompatible53_1() {
MeasureUnit[] units = {
MeasureUnit.G_FORCE,
assertEquals("", 121, units.length);
}
+ public void TestCompatible55_1() {
+ MeasureUnit[] units = {
+ MeasureUnit.G_FORCE,
+ MeasureUnit.METER_PER_SECOND_SQUARED,
+ MeasureUnit.ARC_MINUTE,
+ MeasureUnit.ARC_SECOND,
+ MeasureUnit.DEGREE,
+ MeasureUnit.RADIAN,
+ MeasureUnit.ACRE,
+ MeasureUnit.HECTARE,
+ MeasureUnit.SQUARE_CENTIMETER,
+ MeasureUnit.SQUARE_FOOT,
+ MeasureUnit.SQUARE_INCH,
+ MeasureUnit.SQUARE_KILOMETER,
+ MeasureUnit.SQUARE_METER,
+ MeasureUnit.SQUARE_MILE,
+ MeasureUnit.SQUARE_YARD,
+ MeasureUnit.LITER_PER_KILOMETER,
+ MeasureUnit.MILE_PER_GALLON,
+ MeasureUnit.BIT,
+ MeasureUnit.BYTE,
+ MeasureUnit.GIGABIT,
+ MeasureUnit.GIGABYTE,
+ MeasureUnit.KILOBIT,
+ MeasureUnit.KILOBYTE,
+ MeasureUnit.MEGABIT,
+ MeasureUnit.MEGABYTE,
+ MeasureUnit.TERABIT,
+ MeasureUnit.TERABYTE,
+ MeasureUnit.DAY,
+ MeasureUnit.HOUR,
+ MeasureUnit.MICROSECOND,
+ MeasureUnit.MILLISECOND,
+ MeasureUnit.MINUTE,
+ MeasureUnit.MONTH,
+ MeasureUnit.NANOSECOND,
+ MeasureUnit.SECOND,
+ MeasureUnit.WEEK,
+ MeasureUnit.YEAR,
+ MeasureUnit.AMPERE,
+ MeasureUnit.MILLIAMPERE,
+ MeasureUnit.OHM,
+ MeasureUnit.VOLT,
+ MeasureUnit.CALORIE,
+ MeasureUnit.FOODCALORIE,
+ MeasureUnit.JOULE,
+ MeasureUnit.KILOCALORIE,
+ MeasureUnit.KILOJOULE,
+ MeasureUnit.KILOWATT_HOUR,
+ MeasureUnit.GIGAHERTZ,
+ MeasureUnit.HERTZ,
+ MeasureUnit.KILOHERTZ,
+ MeasureUnit.MEGAHERTZ,
+ MeasureUnit.ASTRONOMICAL_UNIT,
+ MeasureUnit.CENTIMETER,
+ MeasureUnit.DECIMETER,
+ MeasureUnit.FATHOM,
+ MeasureUnit.FOOT,
+ MeasureUnit.FURLONG,
+ MeasureUnit.INCH,
+ MeasureUnit.KILOMETER,
+ MeasureUnit.LIGHT_YEAR,
+ MeasureUnit.METER,
+ MeasureUnit.MICROMETER,
+ MeasureUnit.MILE,
+ MeasureUnit.MILLIMETER,
+ MeasureUnit.NANOMETER,
+ MeasureUnit.NAUTICAL_MILE,
+ MeasureUnit.PARSEC,
+ MeasureUnit.PICOMETER,
+ MeasureUnit.YARD,
+ MeasureUnit.LUX,
+ MeasureUnit.CARAT,
+ MeasureUnit.GRAM,
+ MeasureUnit.KILOGRAM,
+ MeasureUnit.METRIC_TON,
+ MeasureUnit.MICROGRAM,
+ MeasureUnit.MILLIGRAM,
+ MeasureUnit.OUNCE,
+ MeasureUnit.OUNCE_TROY,
+ MeasureUnit.POUND,
+ MeasureUnit.STONE,
+ MeasureUnit.TON,
+ MeasureUnit.GIGAWATT,
+ MeasureUnit.HORSEPOWER,
+ MeasureUnit.KILOWATT,
+ MeasureUnit.MEGAWATT,
+ MeasureUnit.MILLIWATT,
+ MeasureUnit.WATT,
+ MeasureUnit.HECTOPASCAL,
+ MeasureUnit.INCH_HG,
+ MeasureUnit.MILLIBAR,
+ MeasureUnit.MILLIMETER_OF_MERCURY,
+ MeasureUnit.POUND_PER_SQUARE_INCH,
+ MeasureUnit.KARAT,
+ MeasureUnit.KILOMETER_PER_HOUR,
+ MeasureUnit.METER_PER_SECOND,
+ MeasureUnit.MILE_PER_HOUR,
+ MeasureUnit.CELSIUS,
+ MeasureUnit.FAHRENHEIT,
+ MeasureUnit.GENERIC,
+ MeasureUnit.KELVIN,
+ MeasureUnit.ACRE_FOOT,
+ MeasureUnit.BUSHEL,
+ MeasureUnit.CENTILITER,
+ MeasureUnit.CUBIC_CENTIMETER,
+ MeasureUnit.CUBIC_FOOT,
+ MeasureUnit.CUBIC_INCH,
+ MeasureUnit.CUBIC_KILOMETER,
+ MeasureUnit.CUBIC_METER,
+ MeasureUnit.CUBIC_MILE,
+ MeasureUnit.CUBIC_YARD,
+ MeasureUnit.CUP,
+ MeasureUnit.DECILITER,
+ MeasureUnit.FLUID_OUNCE,
+ MeasureUnit.GALLON,
+ MeasureUnit.HECTOLITER,
+ MeasureUnit.LITER,
+ MeasureUnit.MEGALITER,
+ MeasureUnit.MILLILITER,
+ MeasureUnit.PINT,
+ MeasureUnit.QUART,
+ MeasureUnit.TABLESPOON,
+ MeasureUnit.TEASPOON,
+ };
+ assertEquals("", 122, units.length);
+ }
+
+ public void TestCompatible56_1() {
+ MeasureUnit[] units = {
+ MeasureUnit.G_FORCE,
+ MeasureUnit.METER_PER_SECOND_SQUARED,
+ MeasureUnit.ARC_MINUTE,
+ MeasureUnit.ARC_SECOND,
+ MeasureUnit.DEGREE,
+ MeasureUnit.RADIAN,
+ MeasureUnit.REVOLUTION,
+ MeasureUnit.ACRE,
+ MeasureUnit.HECTARE,
+ MeasureUnit.SQUARE_CENTIMETER,
+ MeasureUnit.SQUARE_FOOT,
+ MeasureUnit.SQUARE_INCH,
+ MeasureUnit.SQUARE_KILOMETER,
+ MeasureUnit.SQUARE_METER,
+ MeasureUnit.SQUARE_MILE,
+ MeasureUnit.SQUARE_YARD,
+ MeasureUnit.LITER_PER_100KILOMETERS,
+ MeasureUnit.LITER_PER_KILOMETER,
+ MeasureUnit.MILE_PER_GALLON,
+ MeasureUnit.BIT,
+ MeasureUnit.BYTE,
+ MeasureUnit.GIGABIT,
+ MeasureUnit.GIGABYTE,
+ MeasureUnit.KILOBIT,
+ MeasureUnit.KILOBYTE,
+ MeasureUnit.MEGABIT,
+ MeasureUnit.MEGABYTE,
+ MeasureUnit.TERABIT,
+ MeasureUnit.TERABYTE,
+ MeasureUnit.CENTURY,
+ MeasureUnit.DAY,
+ MeasureUnit.HOUR,
+ MeasureUnit.MICROSECOND,
+ MeasureUnit.MILLISECOND,
+ MeasureUnit.MINUTE,
+ MeasureUnit.MONTH,
+ MeasureUnit.NANOSECOND,
+ MeasureUnit.SECOND,
+ MeasureUnit.WEEK,
+ MeasureUnit.YEAR,
+ MeasureUnit.AMPERE,
+ MeasureUnit.MILLIAMPERE,
+ MeasureUnit.OHM,
+ MeasureUnit.VOLT,
+ MeasureUnit.CALORIE,
+ MeasureUnit.FOODCALORIE,
+ MeasureUnit.JOULE,
+ MeasureUnit.KILOCALORIE,
+ MeasureUnit.KILOJOULE,
+ MeasureUnit.KILOWATT_HOUR,
+ MeasureUnit.GIGAHERTZ,
+ MeasureUnit.HERTZ,
+ MeasureUnit.KILOHERTZ,
+ MeasureUnit.MEGAHERTZ,
+ MeasureUnit.ASTRONOMICAL_UNIT,
+ MeasureUnit.CENTIMETER,
+ MeasureUnit.DECIMETER,
+ MeasureUnit.FATHOM,
+ MeasureUnit.FOOT,
+ MeasureUnit.FURLONG,
+ MeasureUnit.INCH,
+ MeasureUnit.KILOMETER,
+ MeasureUnit.LIGHT_YEAR,
+ MeasureUnit.METER,
+ MeasureUnit.MICROMETER,
+ MeasureUnit.MILE,
+ MeasureUnit.MILE_SCANDINAVIAN,
+ MeasureUnit.MILLIMETER,
+ MeasureUnit.NANOMETER,
+ MeasureUnit.NAUTICAL_MILE,
+ MeasureUnit.PARSEC,
+ MeasureUnit.PICOMETER,
+ MeasureUnit.YARD,
+ MeasureUnit.LUX,
+ MeasureUnit.CARAT,
+ MeasureUnit.GRAM,
+ MeasureUnit.KILOGRAM,
+ MeasureUnit.METRIC_TON,
+ MeasureUnit.MICROGRAM,
+ MeasureUnit.MILLIGRAM,
+ MeasureUnit.OUNCE,
+ MeasureUnit.OUNCE_TROY,
+ MeasureUnit.POUND,
+ MeasureUnit.STONE,
+ MeasureUnit.TON,
+ MeasureUnit.GIGAWATT,
+ MeasureUnit.HORSEPOWER,
+ MeasureUnit.KILOWATT,
+ MeasureUnit.MEGAWATT,
+ MeasureUnit.MILLIWATT,
+ MeasureUnit.WATT,
+ MeasureUnit.HECTOPASCAL,
+ MeasureUnit.INCH_HG,
+ MeasureUnit.MILLIBAR,
+ MeasureUnit.MILLIMETER_OF_MERCURY,
+ MeasureUnit.POUND_PER_SQUARE_INCH,
+ MeasureUnit.KARAT,
+ MeasureUnit.KILOMETER_PER_HOUR,
+ MeasureUnit.KNOT,
+ MeasureUnit.METER_PER_SECOND,
+ MeasureUnit.MILE_PER_HOUR,
+ MeasureUnit.CELSIUS,
+ MeasureUnit.FAHRENHEIT,
+ MeasureUnit.GENERIC,
+ MeasureUnit.KELVIN,
+ MeasureUnit.ACRE_FOOT,
+ MeasureUnit.BUSHEL,
+ MeasureUnit.CENTILITER,
+ MeasureUnit.CUBIC_CENTIMETER,
+ MeasureUnit.CUBIC_FOOT,
+ MeasureUnit.CUBIC_INCH,
+ MeasureUnit.CUBIC_KILOMETER,
+ MeasureUnit.CUBIC_METER,
+ MeasureUnit.CUBIC_MILE,
+ MeasureUnit.CUBIC_YARD,
+ MeasureUnit.CUP,
+ MeasureUnit.CUP_METRIC,
+ MeasureUnit.DECILITER,
+ MeasureUnit.FLUID_OUNCE,
+ MeasureUnit.GALLON,
+ MeasureUnit.HECTOLITER,
+ MeasureUnit.LITER,
+ MeasureUnit.MEGALITER,
+ MeasureUnit.MILLILITER,
+ MeasureUnit.PINT,
+ MeasureUnit.PINT_METRIC,
+ MeasureUnit.QUART,
+ MeasureUnit.TABLESPOON,
+ MeasureUnit.TEASPOON,
+ };
+ assertEquals("", 129, units.length);
+ }
+
public void TestExamplesInDocs() {
MeasureFormat fmtFr = MeasureFormat.getInstance(
ULocale.FRENCH, FormatWidth.SHORT);