From: Craig Cornelius Date: Fri, 4 Mar 2016 20:52:04 +0000 (+0000) Subject: ICU-11914 Refine tests, remove TODO comment. X-Git-Tag: milestone-59-0-1~557 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6622efa42cf9fb70f2fccb385f3cdf498a2f3f4e;p=icu ICU-11914 Refine tests, remove TODO comment. X-SVN-Rev: 38489 --- diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/NumberFormatTest.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/NumberFormatTest.java index e8b9d9b72c1..43ffaf282a1 100644 --- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/NumberFormatTest.java +++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/NumberFormatTest.java @@ -4390,32 +4390,35 @@ public class NumberFormatTest extends com.ibm.icu.dev.test.TestFmwk { int start = iterator.getRunStart(); int end = iterator.getRunLimit(); Iterator it = iterator.getAttributes().keySet().iterator(); - AttributedCharacterIterator.Attribute attribute = (AttributedCharacterIterator.Attribute) it.next(); - Object value = iterator.getAttribute(attribute); - result.add(new FieldContainer(start, end, attribute, value)); + while (it.hasNext()) { + AttributedCharacterIterator.Attribute attribute = (AttributedCharacterIterator.Attribute) it.next(); + Object value = iterator.getAttribute(attribute); + + result.add(new FieldContainer(start, end, attribute, value)); + } iterator.setIndex(end); } assertEquals("Comparing vector length for " + formattedOutput, expected.size(), result.size()); - if (!expected.containsAll(result)) { + if (!expected.containsAll(result) || !result.containsAll(expected)) { // Print information on the differences. + System.out.println(" "); for (int i = 0; i < expected.size(); i++) { - System.out.println(" expected[" + i + "] =" + + System.out.println(" expected[" + i + "] = " + expected.get(i).start + " " + expected.get(i).end + " " + - expected.get(i).attribute + " " + expected.get(i).value); - System.out.println(" result[" + i + "] =" + + } + for (int i = 0; i < result.size(); i++) { + System.out.println(" result[" + i + "] = " + result.get(i).start + " " + result.get(i).end + " " + - result.get(i).attribute + " " + result.get(i).value); } } - // TODO: restore when #11914 is fixed. - // assertTrue("Comparing vector results for " + formattedOutput, - // expected.containsAll(result)); + assertTrue("Comparing vector results for " + formattedOutput, + expected.containsAll(result)); } // Testing for Issue 11914, missing FieldPositions for some field types. @@ -4424,8 +4427,10 @@ public class NumberFormatTest extends com.ibm.icu.dev.test.TestFmwk { List v1 = new ArrayList(7); v1.add(new FieldContainer(0, 3, NumberFormat.Field.INTEGER)); v1.add(new FieldContainer(3, 4, NumberFormat.Field.GROUPING_SEPARATOR)); + v1.add(new FieldContainer(3, 4, NumberFormat.Field.INTEGER)); v1.add(new FieldContainer(4, 7, NumberFormat.Field.INTEGER)); v1.add(new FieldContainer(7, 8, NumberFormat.Field.GROUPING_SEPARATOR)); + v1.add(new FieldContainer(7, 8, NumberFormat.Field.INTEGER)); v1.add(new FieldContainer(8, 11, NumberFormat.Field.INTEGER)); v1.add(new FieldContainer(11, 12, NumberFormat.Field.DECIMAL_SEPARATOR)); v1.add(new FieldContainer(12, 15, NumberFormat.Field.FRACTION)); @@ -4460,14 +4465,21 @@ public class NumberFormatTest extends com.ibm.icu.dev.test.TestFmwk { v3.add(new FieldContainer(1, 2, NumberFormat.Field.INTEGER)); v3.add(new FieldContainer(2, 3, NumberFormat.Field.GROUPING_SEPARATOR)); v3.add(new FieldContainer(3, 6, NumberFormat.Field.INTEGER)); + v3.add(new FieldContainer(2, 3, NumberFormat.Field.INTEGER)); v3.add(new FieldContainer(6, 7, NumberFormat.Field.GROUPING_SEPARATOR)); + v3.add(new FieldContainer(6, 7, NumberFormat.Field.INTEGER)); v3.add(new FieldContainer(7, 10, NumberFormat.Field.INTEGER)); + v3.add(new FieldContainer(10, 11, NumberFormat.Field.INTEGER)); v3.add(new FieldContainer(10, 11, NumberFormat.Field.GROUPING_SEPARATOR)); v3.add(new FieldContainer(11, 14, NumberFormat.Field.INTEGER)); + v3.add(new FieldContainer(14, 15, NumberFormat.Field.INTEGER)); v3.add(new FieldContainer(14, 15, NumberFormat.Field.GROUPING_SEPARATOR)); v3.add(new FieldContainer(15, 18, NumberFormat.Field.INTEGER)); + + v3.add(new FieldContainer(18, 19, NumberFormat.Field.INTEGER)); v3.add(new FieldContainer(18, 19, NumberFormat.Field.GROUPING_SEPARATOR)); v3.add(new FieldContainer(19, 22, NumberFormat.Field.INTEGER)); + v3.add(new FieldContainer(22, 23, NumberFormat.Field.INTEGER)); v3.add(new FieldContainer(22, 23, NumberFormat.Field.GROUPING_SEPARATOR)); v3.add(new FieldContainer(23, 26, NumberFormat.Field.INTEGER)); BigInteger bigNumberInt = new BigInteger("-1234567890246813579"); @@ -4491,6 +4503,28 @@ public class NumberFormatTest extends com.ibm.icu.dev.test.TestFmwk { iterator = fmt2.formatToCharacterIterator(numberBigD); CompareAttributedCharacterFormatOutput(iterator, v4, fmtNumberBigDExp); + } + public void test_formatToCharacterIterator() throws Exception { + AttributedCharacterIterator iterator; + int[] runStarts; + int[] runLimits; + String result; + char current; + // BigInteger. + iterator = new DecimalFormat().formatToCharacterIterator(new BigInteger("123456789")); + runStarts = new int[] { 0, 0, 0, 3, 4, 4, 4, 7, 8, 8, 8 }; + runLimits = new int[] { 3, 3, 3, 4, 7, 7, 7, 8, 11, 11, 11 }; + result = "123,456,789"; + current = iterator.current(); + for (int i = 0; i < runStarts.length; i++) { + assertEquals("wrong start @" + i, runStarts[i], iterator.getRunStart()); + assertEquals("wrong limit @" + i, runLimits[i], iterator.getRunLimit()); + assertEquals("wrong char @" + i, result.charAt(i), current); + current = iterator.next(); + } + assertEquals("Begin index:", 0, iterator.getBeginIndex()); + assertEquals("End index: ", 11, iterator.getEndIndex()); } + }