History log of /libcore/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/RuleBasedCollatorTest.java
Revision Date Author Comments
3df3bfcbad6f4da20964424c4772985d1b1586a1 26-Aug-2015 Rayhaan Jaufeerally <rayhaan@google.com> Revert "Revert "Migrate Collator classes to use ICU4J.""

The SDK build is now fixed by adding icu4j as a dependency of docs.

This reverts commit 5fc822e7ef47448adccd73ca2ebbd28a068f5136.

Change-Id: Ibac9b40189a83323e5175e8ea26c973eb07bc34f
5fc822e7ef47448adccd73ca2ebbd28a068f5136 18-Aug-2015 Neil Fuller <nfuller@google.com> Revert "Migrate Collator classes to use ICU4J."

This reverts commit bf7bbff3a512b3350911d129aba5503dcfde9311.

Change-Id: I5e3d3481d1df11d31871d63fd1575cbf46698dee
bf7bbff3a512b3350911d129aba5503dcfde9311 23-Jul-2015 Rayhaan Jaufeerally <rayhaan@google.com> Migrate Collator classes to use ICU4J.

The following benchmarks have been run and show the performance
gains from calling ICU4J.

----- ICU4J -----
benchmark us linear runtime
CollatorIdentical 6.90 ==============================
CollatorPrimary 3.20 =============
CollatorSecondary 3.79 ================
CollatorTertiary 4.28 ==================
vm: app_process

----- ICU4C -----
benchmark us linear runtime
CollatorIdentical 11.75 ==============================
CollatorPrimary 10.01 =========================
CollatorSecondary 9.88 =========================
CollatorTertiary 10.26 ==========================
vm: app_process

All tests relating to Collation pass after this change.

With respect to CJK character loading time, tests were done on a
Nexus 6 running this change, in the US locale and TRADITIONAL_CHINESE
locale.

In EN-US:
Time to load Traditional Chinese collator after boot: 76ms, 76ms
Time to load again: (39ms, 36ms, 36ms), (36ms, 36ms, 48ms)
In ZH-TW:
Time to load Traditional Chinese collator after boot: 37ms, 36ms
Time to load again: (36ms, 36ms, 36ms), (35ms, 37ms, 35ms)

This seems to indicate the system is creating a Collator on boot meaning
that ICU is caching it after the first creation. So if a device is in the
Traditional Chinese locale, the cost of creating Traditional Chinese
collators should have been absorbed at boot time.

Loading up the CJK ideographs uses up around ~500k of memory. From the
above findings, if the device is in a language requiring those characters
then they should be loaded up on boot in the Zygote, which may mean the
memory is shared across processes wishing to use the data.

Change-Id: I98a1c32c8f58e03d16d694b8a4fca4ced961af8e
2b6169d920f6b88a4d665713081b35e44a1d7532 22-Jul-2014 Narayan Kamath <narayan@google.com> Fix Collator tests.

Use the modern "es-u-co-trad" instead of "es-TRADITIONAL".
The latter is an invalid language tag (TRADITIONAL is an invalid
variant) so we will not support it any longer.

bug: 15849709

(cherry picked from commit ee7d0c5bfcc6891034eaea0fa4a9571ffde5d2ae)

Change-Id: I560837f07fa67cc556381e0644dd49e6c9fdc59c
ee7d0c5bfcc6891034eaea0fa4a9571ffde5d2ae 22-Jul-2014 Narayan Kamath <narayan@google.com> Fix Collator tests.

Use the modern "es-u-co-trad" instead of "es-TRADITIONAL".
The latter is an invalid language tag (TRADITIONAL is an invalid
variant) so we will not support it any longer.

bug: 15849709
Change-Id: Ia4172879041f42a3b5ff8b027b44c48b3c336f2c
3e3ea7374ec174050c91066bf2e3b154bffd4e96 22-Apr-2014 Elliott Hughes <enh@google.com> Allow empty rules in a RuleBasedCollator.

This is allowed by the CLDR specification, and we were already allowing
most forms of empty rules, just not the zero-length string.

Change-Id: I3c2a020aac23e54f8044defbfe2e2a5b600e454c
55dfcd8b9609f112b0542af6a705080d98e00d2a 18-Apr-2014 ccornelius <ccornelius@google.com> Update collation tests for icu4c 53.

As of ICU 53, rule strings must begin with a reset '&'.
http://www.unicode.org/reports/tr35/tr35-35/tr35-collation.html#Rules

Also, fewer collation elements exist in ICU 53 because ae-ligature maps to
two rather than three logical collation elements. Now the last one
yields only one CollationElementIterator value rather than two.

Finally, it's no longer possible to switch from forward to backward iteration
without calling reset/setOffset/setText. This used to be undefined behavior
but is now checked.

Change-Id: I663a2b229e551cd6f5753ddae0660f813dbbf866
74473971cc9d960376295fbcc430320c9ed62991 29-Aug-2013 Elliott Hughes <enh@google.com> Fix harmony java.text test failures.

There were plenty of bad tests here, but there were some real bugs too.

* DecimalFormat was only handling RoundingMode.UNNECESSARY for double
formatting.

* DecimalFormat was not ensuring that it's superclass' fields were
being correctly updated.

* NumberFormat was throwing NPE for a null object because of an
improved detail message, despite being specified to throw IAE.

* We weren't mapping NumberFormat.Field instances to the corresponding icu4c
UNUM_x_FIELD constant, so we weren't actually setting FieldPosition
objects correctly.

* SimpleDateFormat was not formatting milliseconds correctly with 'S'.

* NativeDecimalFormat wasn't handling JNI NewString OOME correctly.

Bug: 2528220
Bug: 3056865
Bug: 3057080
Bug: 3057090
Change-Id: Iac11f902f2e9649e596e7e7b7bc501b13e956fca
994e4e5ded616a100ca42b16cffa36aa9f595f64 28-Aug-2013 Elliott Hughes <enh@google.com> Add harmony java.text tests.

Change-Id: Id8d0acd77d08ff337b4851ae74a48cc002d66cd9