From 72e1610789cf725f66b6679dbeba91d1efbb0589 Mon Sep 17 00:00:00 2001 From: Mark Davis Date: Tue, 22 Sep 2015 11:23:13 +0000 Subject: [PATCH] ICU-11898 fixed assertion and added test. X-SVN-Rev: 37983 --- .../classes/core/src/com/ibm/icu/text/PluralFormat.java | 2 +- .../com/ibm/icu/dev/test/format/PluralFormatUnitTest.java | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/PluralFormat.java b/icu4j/main/classes/core/src/com/ibm/icu/text/PluralFormat.java index 5ca2ec855cf..81c687a129e 100644 --- a/icu4j/main/classes/core/src/com/ibm/icu/text/PluralFormat.java +++ b/icu4j/main/classes/core/src/com/ibm/icu/text/PluralFormat.java @@ -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); } } diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/PluralFormatUnitTest.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/PluralFormatUnitTest.java index 261b78acce5..852218894a5 100644 --- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/PluralFormatUnitTest.java +++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/PluralFormatUnitTest.java @@ -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); + } }