]> granicus.if.org Git - icu/commitdiff
ICU-11898 fixed assertion and added test.
authorMark Davis <mark@macchiato.com>
Tue, 22 Sep 2015 11:23:13 +0000 (11:23 +0000)
committerMark Davis <mark@macchiato.com>
Tue, 22 Sep 2015 11:23:13 +0000 (11:23 +0000)
X-SVN-Rev: 37983

icu4j/main/classes/core/src/com/ibm/icu/text/PluralFormat.java
icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/PluralFormatUnitTest.java

index 5ca2ec855cf399cea7c93f18e888b5b83d0b79fb..81c687a129ebd6175a886da94a60661622baa1d8 100644 (file)
@@ -557,7 +557,7 @@ public class PluralFormat extends UFormat {
     private final class PluralSelectorAdapter implements PluralSelector {
         public String select(Object context, double number) {
             FixedDecimal dec = (FixedDecimal) context;
-            assert dec.source == number;
+            assert dec.source == (dec.isNegative ? -number : number);
             return pluralRules.select(dec);
         }
     }
index 261b78acce506c8761289e1846e1dd7b2c00d975..852218894a5a75acb16f59d71fcbb5e62f9cd0f8 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *******************************************************************************
- * Copyright (C) 2007-2014, International Business Machines Corporation and
+ * Copyright (C) 2007-2015, International Business Machines Corporation and
  * others. All Rights Reserved.
  *******************************************************************************
  */
@@ -368,4 +368,10 @@ public class PluralFormatUnitTest extends TestFmwk {
         assertEquals("offset-decimals format(2)", "another 1.0 meters", pf2.format(2));
         assertEquals("offset-decimals format(2.5)", "another 1.5 meters", pf2.format(2.5));
     }
+    
+    public void TestNegative() {
+        PluralFormat pluralFormat = new PluralFormat(ULocale.ENGLISH, "one{# foot}other{# feet}");
+        String actual = pluralFormat.format(-3);
+        assertEquals(pluralFormat.toString(), "-3 feet", actual);
+    }
 }