diff options
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.java | 142 |
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) |