summaryrefslogtreecommitdiff
path: root/android_icu4j/src/main/tests/android/icu/dev/test/message2/Mf2FeaturesTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'android_icu4j/src/main/tests/android/icu/dev/test/message2/Mf2FeaturesTest.java')
-rw-r--r--android_icu4j/src/main/tests/android/icu/dev/test/message2/Mf2FeaturesTest.java142
1 files changed, 67 insertions, 75 deletions
diff --git a/android_icu4j/src/main/tests/android/icu/dev/test/message2/Mf2FeaturesTest.java b/android_icu4j/src/main/tests/android/icu/dev/test/message2/Mf2FeaturesTest.java
index a5348ab7b..fc3c03852 100644
--- a/android_icu4j/src/main/tests/android/icu/dev/test/message2/Mf2FeaturesTest.java
+++ b/android_icu4j/src/main/tests/android/icu/dev/test/message2/Mf2FeaturesTest.java
@@ -1,6 +1,6 @@
/* GENERATED SOURCE. DO NOT MODIFY. */
// © 2022 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
+// License & terms of use: https://www.unicode.org/copyright.html
package android.icu.dev.test.message2;
@@ -28,7 +28,7 @@ import android.icu.testsharding.MainTestShard;
*/
@MainTestShard
@RunWith(JUnit4.class)
-@SuppressWarnings("javadoc")
+@SuppressWarnings({"static-method", "javadoc"})
public class Mf2FeaturesTest extends CoreTestFmwk {
// November 23, 2022 at 7:42:37.123 PM
@@ -37,7 +37,7 @@ public class Mf2FeaturesTest extends CoreTestFmwk {
@Test
public void testEmptyMessage() {
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{}")
+ .pattern("")
.arguments(Args.NONE)
.expected("")
.build());
@@ -46,7 +46,7 @@ public class Mf2FeaturesTest extends CoreTestFmwk {
@Test
public void testPlainText() {
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Hello World!}")
+ .pattern("Hello World!")
.arguments(Args.NONE)
.expected("Hello World!")
.build());
@@ -55,7 +55,7 @@ public class Mf2FeaturesTest extends CoreTestFmwk {
@Test
public void testPlaceholders() {
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Hello, {$userName}!}")
+ .pattern("Hello, {$userName}!")
.arguments(Args.of("userName", "John"))
.expected("Hello, John!")
.build());
@@ -65,7 +65,7 @@ public class Mf2FeaturesTest extends CoreTestFmwk {
public void testArgumentMissing() {
// Test to check what happens if an argument name from the placeholder is not found
// We do what the old ICU4J MessageFormat does.
- String message = "{Hello {$name}, today is {$today :datetime skeleton=yMMMMdEEEE}.}";
+ String message = "Hello {$name}, today is {$today :datetime year=numeric month=long day=numeric weekday=long}.";
TestUtils.runTestCase(new TestCase.Builder()
.pattern(message)
@@ -91,7 +91,7 @@ public class Mf2FeaturesTest extends CoreTestFmwk {
@Test
public void testDefaultLocale() {
- String message = "{Date: {$date :datetime skeleton=yMMMMdEEEE}.}";
+ String message = "Date: {$date :date year=numeric month=long day=numeric weekday=long}.";
String expectedEn = "Date: Wednesday, November 23, 2022.";
String expectedRo = "Date: miercuri, 23 noiembrie 2022.";
Map<String, Object> arguments = Args.of("date", TEST_DATE);
@@ -128,14 +128,14 @@ public class Mf2FeaturesTest extends CoreTestFmwk {
public void testAllKindOfDates() {
// Default function
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Testing date formatting: {$date}.}")
+ .pattern("Testing date formatting: {$date}.")
.locale("ro")
.arguments(Args.of("date", TEST_DATE))
.expected("Testing date formatting: 23.11.2022, 19:42.")
.build());
// Default options
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Testing date formatting: {$date :datetime}.}")
+ .pattern("Testing date formatting: {$date :datetime}.")
.locale("ro")
.arguments(Args.of("date", TEST_DATE))
.expected("Testing date formatting: 23.11.2022, 19:42.")
@@ -143,74 +143,66 @@ public class Mf2FeaturesTest extends CoreTestFmwk {
// Skeleton
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Testing date formatting: {$date :datetime skeleton=yMMMMd}.}")
+ .pattern("Testing date formatting: {$date :date year=numeric month=long day=numeric}.")
.locale("ro-RO")
.arguments(Args.of("date", TEST_DATE))
.expected("Testing date formatting: 23 noiembrie 2022.")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Testing date formatting: {$date :datetime skeleton=jm}.}")
+ .pattern("Testing date formatting: {$date :datetime hour=numeric minute=numeric}.")
.locale("ro-RO")
.arguments(Args.of("date", TEST_DATE))
.expected("Testing date formatting: 19:42.")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Testing date formatting: {$date :datetime skeleton=yMMMd}.}")
+ .pattern("Testing date formatting: {$date :date year=numeric month=short day=numeric}.")
.arguments(Args.of("date", TEST_DATE))
.expected("Testing date formatting: Nov 23, 2022.")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Testing date formatting: {$date :datetime skeleton=yMMMdjms}.}")
+ .pattern("Testing date formatting: {$date :datetime icu:skeleton=yMMMdjms}.")
.arguments(Args.of("date", TEST_DATE))
.expected("Testing date formatting: Nov 23, 2022, 7:42:37\u202FPM.")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Testing date formatting: {$date :datetime skeleton=jm}.}")
+ .pattern("Testing date formatting: {$date :datetime hour=numeric minute=numeric}.")
.arguments(Args.of("date", TEST_DATE))
.expected("Testing date formatting: 7:42\u202FPM.")
.build());
// Style
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Testing date formatting: {$date :datetime datestyle=long}.}")
+ .pattern("Testing date formatting: {$date :datetime dateStyle=long}.")
.arguments(Args.of("date", TEST_DATE))
.expected("Testing date formatting: November 23, 2022.")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern(
- "{Testing date formatting: {$date :datetime datestyle=medium}.}")
+ .pattern("Testing date formatting: {$date :datetime dateStyle=medium}.")
.arguments(Args.of("date", TEST_DATE))
.expected("Testing date formatting: Nov 23, 2022.")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Testing date formatting: {$date :datetime datestyle=short}.}")
+ .pattern("Testing date formatting: {$date :datetime dateStyle=short}.")
.arguments(Args.of("date", TEST_DATE))
.expected("Testing date formatting: 11/23/22.")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Testing date formatting: {$date :datetime timestyle=long}.}")
+ .pattern("Testing date formatting: {$date :datetime timeStyle=long}.")
.arguments(Args.of("date", TEST_DATE))
.expected("Testing date formatting: 7:42:37\u202FPM PST.")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Testing date formatting: {$date :datetime timestyle=medium}.}")
+ .pattern("Testing date formatting: {$date :datetime timeStyle=medium}.")
.arguments(Args.of("date", TEST_DATE))
.expected("Testing date formatting: 7:42:37\u202FPM.")
.build());
TestUtils.runTestCase(new TestCase.Builder()
.pattern(
- "{Testing date formatting: {$date :datetime timestyle=short}.}")
+ "Testing date formatting: {$date :datetime timeStyle=short}.")
.arguments(Args.of("date", TEST_DATE))
.expected("Testing date formatting: 7:42\u202FPM.")
.build());
-
- // Pattern
- TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Testing date formatting: {$date :datetime pattern=(d 'of' MMMM, y 'at' HH:mm)}.}")
- .arguments(Args.of("date", TEST_DATE))
- .expected("Testing date formatting: 23 of November, 2022 at 19:42.")
- .build());
}
@Test
@@ -219,19 +211,19 @@ public class Mf2FeaturesTest extends CoreTestFmwk {
// From literal values
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{From literal: {(123456789) :number}!}")
+ .pattern("From literal: {123456789 :number}!")
.locale("ro")
.arguments(Args.of("val", value))
.expected("From literal: 123.456.789!")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{From literal: {(123456789.531) :number}!}")
+ .pattern("From literal: {|123456789.531| :number}!")
.locale("ro")
.arguments(Args.of("val", value))
.expected("From literal: 123.456.789,531!")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{From literal: {(123456789.531) :number}!}")
+ .pattern("From literal: {123456789.531 :number}!")
.locale("my")
.arguments(Args.of("val", value))
.expected("From literal: \u1041\u1042\u1043,\u1044\u1045\u1046,\u1047\u1048\u1049.\u1045\u1043\u1041!")
@@ -239,37 +231,37 @@ public class Mf2FeaturesTest extends CoreTestFmwk {
// Testing that the detection works for various types (without specifying :number)
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Default double: {$val}!}")
+ .pattern("Default double: {$val}!")
.locale("en-IN")
.arguments(Args.of("val", value))
.expected("Default double: 1,23,45,67,890.97531!")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Default double: {$val}!}")
+ .pattern("Default double: {$val}!")
.locale("ro")
.arguments(Args.of("val", value))
.expected("Default double: 1.234.567.890,97531!")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Default float: {$val}!}")
+ .pattern("Default float: {$val}!")
.locale("ro")
.arguments(Args.of("val", 3.1415926535))
.expected("Default float: 3,141593!")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Default long: {$val}!}")
+ .pattern("Default long: {$val}!")
.locale("ro")
.arguments(Args.of("val", 1234567890123456789L))
.expected("Default long: 1.234.567.890.123.456.789!")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Default number: {$val}!}")
+ .pattern("Default number: {$val}!")
.locale("ro")
.arguments(Args.of("val", new BigDecimal("1234567890123456789.987654321")))
.expected("Default number: 1.234.567.890.123.456.789,987654!")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Price: {$val}}")
+ .pattern("Price: {$val}")
.locale("de")
.arguments(Args.of("val", new CurrencyAmount(1234.56, Currency.getInstance("EUR"))))
.expected("Price: 1.234,56\u00A0\u20AC")
@@ -277,33 +269,33 @@ public class Mf2FeaturesTest extends CoreTestFmwk {
// Various skeletons
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Skeletons, minFraction: {$val :number skeleton=(.00000000*)}!}")
+ .pattern("Option, minFraction: {$val :number minimumFractionDigits=8}!")
.locale("ro")
.arguments(Args.of("val", value))
- .expected("Skeletons, minFraction: 1.234.567.890,97531000!")
+ .expected("Option, minFraction: 1.234.567.890,97531000!")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Skeletons, maxFraction: {$val :number skeleton=(.###)}!}")
+ .pattern("Option, maxFraction: {$val :number maximumFractionDigits=3}!")
.locale("ro")
.arguments(Args.of("val", value))
- .expected("Skeletons, maxFraction: 1.234.567.890,975!")
+ .expected("Option, maxFraction: 1.234.567.890,975!")
.build());
// Currency
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Skeletons, currency: {$val :number skeleton=(currency/EUR)}!}")
+ .pattern("Skeletons, currency: {$val :number icu:skeleton=|currency/EUR|}!")
.locale("de")
.arguments(Args.of("val", value))
.expected("Skeletons, currency: 1.234.567.890,98\u00A0\u20AC!")
.build());
// Currency as a parameter
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Skeletons, currency: {$val :number skeleton=$skel}!}")
+ .pattern("Skeletons, currency: {$val :number icu:skeleton=$skel}!")
.locale("de")
.arguments(Args.of("val", value, "skel", "currency/EUR"))
.expected("Skeletons, currency: 1.234.567.890,98\u00A0\u20AC!")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Skeletons, currency: {$val :number skeleton=$skel}!}")
+ .pattern("Skeletons, currency: {$val :number icu:skeleton=$skel}!")
.locale("de")
.arguments(Args.of("val", value, "skel", "currency/JPY"))
.expected("Skeletons, currency: 1.234.567.891\u00A0\u00A5!")
@@ -313,22 +305,22 @@ public class Mf2FeaturesTest extends CoreTestFmwk {
double celsius = 27;
TestUtils.runTestCase(new TestCase.Builder()
.pattern(""
- + "let $intl = {$valC :number skeleton=(unit/celsius)}\n"
- + "let $us = {$valF :number skeleton=(unit/fahrenheit)}\n"
- + "{Temperature: {$intl} ({$us})}")
+ + ".local $intl = {$valC :number icu:skeleton=|unit/celsius|}\n"
+ + ".local $us = {$valF :number icu:skeleton=|unit/fahrenheit|}\n"
+ + "{{Temperature: {$intl} ({$us})}}")
.locale("ro")
.arguments(Args.of("valC", celsius, "valF", celsius * 9 / 5 + 32))
.expected("Temperature: 27 \u00B0C (80,6 \u00B0F)")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Height: {$len :number skeleton=(unit/meter)}}")
+ .pattern("Height: {$len :number icu:skeleton=|unit/meter|}")
.locale("ro")
.arguments(Args.of("len", 1.75))
.expected("Height: 1,75 m")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Skeletons, currency: {$val :number skeleton=(currency/EUR)}!}")
+ .pattern("Skeletons, currency: {$val :number icu:skeleton=|currency/EUR|}!")
.locale("de")
.arguments(Args.of("val", value))
.expected("Skeletons, currency: 1.234.567.890,98\u00A0\u20AC!")
@@ -338,20 +330,20 @@ public class Mf2FeaturesTest extends CoreTestFmwk {
@Test
public void testSpecialPluralWithDecimals() {
String message;
- message = "let $amount = {$count :number}\n"
- + "match {$amount :plural}\n"
- + " when 1 {I have {$amount} dollar.}\n"
- + " when * {I have {$amount} dollars.}\n";
+ message = ".local $amount = {$count :number}\n"
+ + ".match {$amount :number}\n"
+ + " 1 {{I have {$amount} dollar.}}\n"
+ + " * {{I have {$amount} dollars.}}\n";
TestUtils.runTestCase(new TestCase.Builder()
.pattern(message)
.locale("en-US")
.arguments(Args.of("count", 1))
.expected("I have 1 dollar.")
.build());
- message = "let $amount = {$count :number skeleton=(.00*)}\n"
- + "match {$amount :plural skeleton=(.00*)}\n"
- + " when 1 {I have {$amount} dollar.}\n"
- + " when * {I have {$amount} dollars.}\n";
+ message = ".local $amount = {$count :number minimumFractionDigits=2}\n"
+ + ".match {$amount :number minimumFractionDigits=2}\n"
+ + " one {{I have {$amount} dollar.}}\n"
+ + " * {{I have {$amount} dollars.}}\n";
TestUtils.runTestCase(new TestCase.Builder()
.pattern(message)
.locale("en-US")
@@ -363,13 +355,13 @@ public class Mf2FeaturesTest extends CoreTestFmwk {
@Test
public void testDefaultFunctionAndOptions() {
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Testing date formatting: {$date}.}")
+ .pattern("Testing date formatting: {$date}.")
.locale("ro")
.arguments(Args.of("date", TEST_DATE))
.expected("Testing date formatting: 23.11.2022, 19:42.")
.build());
TestUtils.runTestCase(new TestCase.Builder()
- .pattern("{Testing date formatting: {$date :datetime}.}")
+ .pattern("Testing date formatting: {$date :datetime}.")
.locale("ro")
.arguments(Args.of("date", TEST_DATE))
.expected("Testing date formatting: 23.11.2022, 19:42.")
@@ -378,9 +370,9 @@ public class Mf2FeaturesTest extends CoreTestFmwk {
@Test
public void testSimpleSelection() {
- String message = "match {$count :plural}\n"
- + " when 1 {You have one notification.}\n"
- + " when * {You have {$count} notifications.}\n";
+ String message = ".match {$count :number}\n"
+ + " 1 {{You have one notification.}}\n"
+ + " * {{You have {$count} notifications.}}\n";
TestUtils.runTestCase(new TestCase.Builder()
.pattern(message)
@@ -397,13 +389,13 @@ public class Mf2FeaturesTest extends CoreTestFmwk {
@Test
public void testComplexSelection() {
String message = ""
- + "match {$photoCount :plural} {$userGender :select}\n"
- + " when 1 masculine {{$userName} added a new photo to his album.}\n"
- + " when 1 feminine {{$userName} added a new photo to her album.}\n"
- + " when 1 * {{$userName} added a new photo to their album.}\n"
- + " when * masculine {{$userName} added {$photoCount} photos to his album.}\n"
- + " when * feminine {{$userName} added {$photoCount} photos to her album.}\n"
- + " when * * {{$userName} added {$photoCount} photos to their album.}";
+ + ".match {$photoCount :number} {$userGender :string}\n"
+ + " 1 masculine {{{$userName} added a new photo to his album.}}\n"
+ + " 1 feminine {{{$userName} added a new photo to her album.}}\n"
+ + " 1 * {{{$userName} added a new photo to their album.}}\n"
+ + " * masculine {{{$userName} added {$photoCount} photos to his album.}}\n"
+ + " * feminine {{{$userName} added {$photoCount} photos to her album.}}\n"
+ + " * * {{{$userName} added {$photoCount} photos to their album.}}";
TestUtils.runTestCase(new TestCase.Builder().pattern(message)
.arguments(Args.of("photoCount", 1, "userGender", "masculine", "userName", "John"))
@@ -438,8 +430,8 @@ public class Mf2FeaturesTest extends CoreTestFmwk {
public void testSimpleLocaleVariable() {
TestUtils.runTestCase(new TestCase.Builder()
.pattern(""
- + "let $expDate = {$expDate :datetime skeleton=yMMMdE}\n"
- + "{Your tickets expire on {$expDate}.}")
+ + ".local $exp = {$expDate :datetime year=numeric month=short day=numeric weekday=short}\n"
+ + "{{Your tickets expire on {$exp}.}}")
.arguments(Args.of("count", 1, "expDate", TEST_DATE))
.expected("Your tickets expire on Wed, Nov 23, 2022.")
.build());
@@ -448,10 +440,10 @@ public class Mf2FeaturesTest extends CoreTestFmwk {
@Test
public void testLocaleVariableWithSelect() {
String message = ""
- + "let $expDate = {$expDate :datetime skeleton=yMMMdE}\n"
- + "match {$count :plural}\n"
- + " when 1 {Your ticket expires on {$expDate}.}\n"
- + " when * {Your {$count} tickets expire on {$expDate}.}\n";
+ + ".local $exp = {$expDate :date year=numeric month=short day=numeric weekday=short}\n"
+ + ".match {$count :number}\n"
+ + " 1 {{Your ticket expires on {$exp}.}}\n"
+ + " * {{Your {$count} tickets expire on {$exp}.}}\n";
TestUtils.runTestCase(new TestCase.Builder()
.pattern(message)