From: Maxime Serrano Date: Fri, 17 Aug 2012 21:27:08 +0000 (+0000) Subject: ICU-9353 Do not generate surrogates in the Monkey test so as to avoid generating... X-Git-Tag: milestone-59-0-1~3652 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1a702c375507868a5c28e97f77671fc653175f03;p=icu ICU-9353 Do not generate surrogates in the Monkey test so as to avoid generating higher CJK characters; also, hand off to Unhandled if we do not have a breakengine of this type X-SVN-Rev: 32195 --- diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/RuleBasedBreakIterator.java b/icu4j/main/classes/core/src/com/ibm/icu/text/RuleBasedBreakIterator.java index 787f76ca7c1..4ff71987431 100644 --- a/icu4j/main/classes/core/src/com/ibm/icu/text/RuleBasedBreakIterator.java +++ b/icu4j/main/classes/core/src/com/ibm/icu/text/RuleBasedBreakIterator.java @@ -1036,12 +1036,21 @@ public class RuleBasedBreakIterator extends BreakIterator { case UScript.KATAKANA: case UScript.HIRAGANA: case UScript.HAN: - if (getBreakType() == KIND_WORD) + if (getBreakType() == KIND_WORD) { eng = new CjkBreakEngine(false); + } + else { + fUnhandledBreakEngine.handleChar(c, getBreakType()); + eng = fUnhandledBreakEngine; + } break; case UScript.HANGUL: - if (getBreakType() == KIND_WORD) + if (getBreakType() == KIND_WORD) { eng = new CjkBreakEngine(true); + } else { + fUnhandledBreakEngine.handleChar(c, getBreakType()); + eng = fUnhandledBreakEngine; + } break; default: fUnhandledBreakEngine.handleChar(c, getBreakType()); diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/rbbi/RBBITestMonkey.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/rbbi/RBBITestMonkey.java index 6b3c1308bd3..9e3719b5348 100644 --- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/rbbi/RBBITestMonkey.java +++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/rbbi/RBBITestMonkey.java @@ -300,7 +300,8 @@ public class RBBITestMonkey extends TestFmwk { fOtherSet.removeAll(fExtendSet); fOtherSet.removeAll(fExtendNumLetSet); // Inhibit dictionary characters from being tested at all. - fOtherSet.removeAll(new UnicodeSet("[\\p{LineBreak = Complex_Context}]")); + // remove surrogates so as to not generate higher CJK characters + fOtherSet.removeAll(new UnicodeSet("[[\\p{LineBreak = Complex_Context}][:Line_Break=Surrogate:]]")); fOtherSet.removeAll(fDictionaryCjkSet); fSets = new ArrayList(); @@ -613,7 +614,6 @@ public class RBBITestMonkey extends TestFmwk { fSets.add(fWJ); fSets.add(fSA); fSets.add(fSG); - } void setText(StringBuffer s) {