blob: 4f3d0373b4a3fa52603896a1a935ffab81456ca6 [file] [log] [blame]
# Copyright (c) 2001-2009 International Business Machines
# Corporation and others. All Rights Reserved.
#
# RBBI Test Data
#
# File: rbbitst.txt
#
# The format of this file looks vaguely like some kind of xml-ish markup,
# but it is NOT. The syntax is this..
#
# <word> any following data is for word break testing
# <sent> any following data is for sentence break testing
# <line> any following data is for line break testing
# <char> any following data is for char break testing
# <locale local_name> Switch to the named locale at the next occurence of <word>, <sent>, etc.
# <data> ... </data> test data. May span multiple lines.
# <> Break position, status == 0
# • Break position, status == 0 (Bullet, \u2022)
# <nnn> Break position, status == nnn
# \ Escape. Normal ICU unescape applied.
# \ at end of line -> Line Continuation. Remove both the backslash and the new line
#
#
# Temp debugging tests
<line>
<data>•\ufffc•\u30e3\u000c<100>\u1b39\u300a\u002f\u203a\u200b•\ufffc•\uaf64•\udcfb•</data>
########################################################################################
#
#
# G r a p h e m e C l u s t e r T e s t s
#
#
##########################################################################################
<char>
<data>•a•b•c• •,•\u0666•</data> # Quick Test
<data>•\r•\r•\r\n•\r\n•\n•\r•</data> # don't break CR/LF
# Always break after controls. Combining chars don't combine with them.
<data>•\u0003•\N{COMBINING GRAVE ACCENT}•\r•\N{COMBINING GRAVE ACCENT}•</data>
<data>•\u0085•\N{COMBINING MACRON}•A\N{COMBINING MACRON}•</data>
# Surrogates
<data>•\U00011000•\U00010020•\U00010000\N{COMBINING MACRON}•</data>
<data>•\ud800\udc00•\udbff\udfff•a•</data>
# Extend (Combining chars) combine.
<data>•A\N{COMBINING GRAVE ACCENT}•B•</data>
<data>•\N{GREEK SMALL LETTER MU}\N{COMBINING LOW LINE}\N{COMBINING HORN}•</data>
<data>•a\u0301•b\u0302•c\u0303•d\u0304•e\u0305•f\u0306•g\u0307•h\u0308•i\u0309•</data>
<data>•a\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304\u0301\u0302\u0303\u0304•</data>
# Don't break Hangul Syllables
# L : \u1100
# V : \u1161
# T : \u11A8
# LV : \uAC00
# LVT : \uAC01
<data>•\u1100\u1161\u11a8•\u1100\u1161\u11a8•</data> #LVT
<data>•\u1100\u1161•\u1100\u1161•</data>
<data>•\u1100\u1161\u11a8•\u1161•\u1100•\u11a8•\u1161\u1161\u1161\u11a8•</data>
<data>•\u1100\u1100\uac01•\u1100\uac01•\u1100\uac01\u0301•\uac01•</data>
<data>•\u1100\u0301•\u1161\u11a8\u0301•\u11a8•</data>
# Hindi combining chars. (An old test)
# TODO: Update these tests for Unicode 5.1 Extended Grapheme clusters
#<data>•भ••ा•\u0930•\u0924• •\u0938\u0941\u0902•\u0926•\u0930•
#•\u0939•\u094c•\u0964•</data>
#<data>•\u0916\u0947•\u0938\u0941\u0902•\u0926•\u0930•\u0939•\u094c•\u0964•</data>
# Bug 1587. Tamil. \u0baa\u0bc1 is an Extended Grpaheme Cluster
<data>•\u0baa\u0bc1•\u0baa\u0bc1•</data>
# Regression test for bug 1889
<data>•\u0f40\u0f7d•\u0000•\u0f7e•</data>
# 0xffff is a legal character, and should not stop the break iterator early.
# (Requires special casing in implementation, which is why it gets a test.)
<data>•\uffff•\uffff• •a•</data>
# Treat Japanese Half Width voicing marks as combining
<data>•A\uff9e•B\uff9f\uff9e\uff9f•C•</data>
########################################################################################
#
#
# E x t e n d e d G r a p h e m e C l u s t e r T e s t s
#
#
##########################################################################################
#<xgc>
# Plain Vanilla grapheme clusters
#<data>•a•b•c•</data>
#<data>•a\u0301\u0302• •b\u0303\u0304•</data>
# Assorted Hindi combining marks
#<data>•\u0904\u0903• •\u0937\u093E• •\u0904\u093F• •\u0937\u0940• •\u0937\u0949• •\u0937\u094A• •\u0937\u094B• •\u0937\u094C•</data>
# Thai Clusters
# $Prepend $Extend* $PrependBase $Extend*;
#
#<data>•\u0e40\u0e01•\u0e44\u0301\u0e23\u0302\u0303•\u0e40•\u0e40\u0e02•\u0e02• •</data>
########################################################################################
#
#
# W o r d B o u n d a r y T e s t s
#
#
##########################################################################################
<word>
#
# Quick sanity test
#
<data>•hello<200> •there<200> •goodbye<200></data>
<data>•hello<200> •12345<100> •,•</data>
#
# Test data originally in RBBIAPITest::TestFirstNextFollowing() and TestLastPreviousPreceding()
#
<word>
<data>•This<200> •is<200> •a<200> •word<200> •break<200>.• • •Isn't<200> •it<200>?• •2.25<100></data>
#
# Data originally from TestDefaultRuleBasedWordIteration()
#
<data>•Write<200> •wordrules<200>.• •123.456<100> •alpha\u00adbeta\u00adgamma<200> •\u092f\u0939<200> •</data>
<data>• •\u0939\u093f\u0928\u094d\u200d\u0926\u0940<200> •\u0939\u0948<200> •\u0905\u093e\u092a<200> •\u0938\u093f\u0916\u094b\u0917\u0947<200>?•</data>
#Hindi Numbers
<data>• •\u0968\u0966.\u0969\u096f<100> •\u0967\u0966\u0966.\u0966\u0966<100> •\N{RUPEE SIGN}•\u0967,\u0967\u0966\u0966.\u0966\u0966<100> • •\u0905\u092e\u091c<200>\n•</data>
<data>•\u0938\u094d\u200d\u0935\u0924\u0902deadTA\u0930<200>\r•It's<200> •$•30.10<100> •12,34<100>¢•£•¤•¥•alpha\u05f3beta\u05f4gamma<200> •</data>
<data>•Badges<200>?• •BADGES<200>!•?•!• •We<200> •don't<200> •need<200> •no<200> •STINKING<200> •BADGES<200>!•!•1000,233,456.000<100> •1,23.322<100>%•123.1222<100>$•123,000.20<100> •179.01<100>%•X<200> •Now<200>\r•is<200>\n•the<200>\r\n•time<200> •</data>
#Hangul
<data>•\uc5f0\ud569<200> •\uc7a5\ub85c\uad50\ud68c<200> •\u1109\u1161\u11bc\u1112\u1161\u11bc<200> •\u1112\u1161\u11ab\u110b\u1175\u11ab<200> •Hello<200>,• •how<200> •are<200> •you<200> •</data>
# Words containing non-BMP letters
<data>•abc\U00010300<200> •abc\N{DESERET SMALL LETTER ENG}<200> •abc\N{MATHEMATICAL BOLD SMALL Z}<200> •abc\N{MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL}<200> •</data>
# Unassigned code points
<data>•abc<200>\U0001D800•def<200>\U0001D3FF• •</data>
# Hiragana & Katakana stay together, but separates from each other and Latin.
<data>•abc<200>\N{HIRAGANA LETTER SMALL A}<300>\N{HIRAGANA LETTER VU}\N{COMBINING ACUTE ACCENT}<300>\N{HIRAGANA ITERATION MARK}<300>\N{KATAKANA LETTER SMALL A}\N{KATAKANA ITERATION MARK}\N{HALFWIDTH KATAKANA LETTER WO}\N{HALFWIDTH KATAKANA LETTER N}<300>def<200>#•</data>
# Words with interior formatting characters
<data>•def\N{COMBINING ACUTE ACCENT}\N{SYRIAC ABBREVIATION MARK}ghi<200> •</data>
# to test for bug #4097779
<data>•aa\N{COMBINING GRAVE ACCENT}a<200> •</data>
# to test for bug #4098467
# What follows is a string of Korean characters (I found it in the Yellow Pages
# ad for the Korean Presbyterian Church of San Francisco, and I hope I transcribed
# it correctly), first as precomposed syllables, and then as conjoining jamo.
# Both sequences should be semantically identical and break the same way.
# precomposed syllables...
<data>•\uc0c1\ud56d<200> •\ud55c\uc778<200> •\uc5f0\ud569<200> •\uc7a5\ub85c\uad50\ud68c<200> •\u1109\u1161\u11bc\u1112\u1161\u11bc<200> •\u1112\u1161\u11ab\u110b\u1175\u11ab<200> •\u110b\u1167\u11ab\u1112\u1161\u11b8<200> •\u110c\u1161\u11bc\u1105\u1169\u1100\u116d\u1112\u116c<200> •</data>
<data>•abc<200>\u4e01<400>\u4e02<400>\u3005<200>\u4e03<400>\u4e03<400>abc<200> •</data>
<data>•\u06c9\uc799\ufffa<200></data>
#
# Try some words from other scripts.
#
# Try some words from other scripts.
# Greek, Cyrillic, Hebrew, Arabic, Arabic, Georgian, Latin
#
<data>•ΑΒΓ<200> •БВГ<200> •אבג֓<200> •ابت<200> •١٢٣<100> •\u10A0\u10A1\u10A2<200> •ABC<200> •</data>
<data>•\u0301•A<200></data>
#
# Hindi word break tests, imported from the old RBBI tests.
# An historical note: a much earlier version of ICU break iterators had a number
# of special case rules for Hindi, which were tested by an earlier version of
# this test data. The current RBBI rules do not special case Hindi in
# any way, making this test data much less signfificant.
#
<data>•\u0917\u092a\u00ad\u0936\u092a<200>!•\u092f\u0939<200> •\u0939\u093f\u0928\u094d\u200d\u0926\u0940<200> •\u0939\u0948<200> •\u0905\u093e\u092a<200> •\u0938\u093f\u0916\u094b\u0917\u0947<200>?•\n•:•\u092a\u094d\u0930\u093e\u092f\u0903<200>
•\u0935\u0930\u094d\u0937\u093e<200>\r\n•\u092a\u094d\u0930\u0915\u093e\u0936<200>,•\u0924\u0941\u092e\u093e\u0930\u094b<200> •\u092e\u093f\u0924\u094d\u0930<200> •\u0915\u093e<200> •\u092a\u0924\u094d\u0930<200> •\u092a\u095d\u094b<200> •\u0938\u094d\u0924\u094d\u0930\u093f<200>.• •\u0968\u0966.\u0969\u096f<100> •\u0967\u0966\u0966.\u0966\u0966<100>\u20a8•\u0967,\u0967\u0966\u0966.\u0966\u0966<100> •\u0905\u092e\u091c<200>\n•\u0938\u094d\u200d\u0935\u0924\u0902\u0924\u094d\u0930<200>\r•</data>
#
# Failures from monkey tests
#
<data>•\u8527<400>\u02ba<200>\u0027\u0d42•\u00b7•\u09ea<100></data>
#
# Jitterbug 5276 - treat Japanese half width voicing marks as Grapheme Extend
#
<data>•A\uff9e\uff9fBC<200> •1\uff9e\uff9f23<100></data>
########################################################################################
#
#
# S e n t e n c e B o u n d a r y T e s t s
#
#
##########################################################################################
#
# Test data originally from RBBI RBBITest::TestDefaultRuleBasedSentenceIteration()
#
<sent>
<sent>
<data>•This\n<100></data>
<data>•Hello! •how are you? •I'am fine. •Thankyou. •How are you \
doing? •This\n<100> costs $20,00,000. •</data>
# Sentence ending in a quote.
<data>•"Sentence ending with a quote." •Bye.•</data>
# Sentence, and test data, ending without a period or other terminator.
<data>•Here is a random sentence, no ending period<100></data>
<data>• (This is it). •Testing the sentence iterator. •\
"This isn't it." •Hi! \
•This is a simple sample sentence. •(This is it.) •This is a simple sample sentence. •\
"This isn't it." •\
Hi! •This is a simple sample sentence. •It does not have to make any sense as you can see. •Nel mezzo del cammin di nostra vita, mi ritrovai in una selva oscura. •Che la dritta via aveo smarrita. •He said, that I said, that you said!! •Don't rock the boat.\u2029•Because I am the daddy, that is why.
•Not on my time (el timo.)! •</data>
<data>•Hello. •So what!!\u2029•"But now," he said, \
"I know!" •\
Harris thumbed down several, including "Away We Go" (which became the huge success Oklahoma!). •One species, B. anthracis, is highly virulent.
•Wolf said about Sounder:\
"Beautifully thought-out and directed." •\
Have you ever said, "This is where\tI shall live"? •He answered, \
"You may not!" •Another popular saying is: "How do you do?". \n•\
Yet another popular saying is: \
'I'm fine thanks.' •\
What is the proper use of the abbreviation pp.? •Yes, I am definatelly 12" tall!!\
•Now\r<100>is\n<100>the\r\n<100>time\n<100>\r<100>for\r<100>\r<100></data>
<data>•No breaks when . is surrounded by UPPER.Case letters. •</data>
<data>•No breaks when . is followed by Numeric .4 a.4 C.4 3.1 .•</data>
<data>•No breaks when . is followed by a lower, with possible intervening punct .,a .$a .)a. •</data>
#
# Sentence Breaks: no break at the boundary between CJK and other letters
#
<data>•\u5487\u67ff\ue591\u5017\u61b3\u60a1\u9510\u8165:"JAVA\u821c\u8165\u7fc8\u51ce\u306d,\u2494\u56d8\u4ec0\u60b1\u8560\u51ba\u611d\u57b6\u2510\u5d46".\u2029•\u5487\u67ff\ue591\u5017\u61b3\u60a1\u9510\u8165\u9de8\u97e4JAVA\u821c\u8165\u7fc8\u51ce\u306d\ue30b\u2494\u56d8\u4ec0\u60b1\u8560\u51ba\u611d\u57b6\u2510\u5d46\u97e5\u7751\u3002•\u5487\u67ff\ue591\u5017\u61b3\u60a1\u9510\u8165\u9de8\u97e4\u6470\u8790JAVA\u821c\u8165\u7fc8\u51ce\u306d\ue30b\u2494\u56d8\u4ec0\u60b1\u8560\u51ba\u611d\u57b6\u2510\u5d46\u97e5\u7751\u2048•He said, "I can go there."\u2029•Bye, now.•</data>
#
# Treat fullwidth variants of .!? the same as their
# normal counterparts
#
<data>•I know I'm right\uff0e •Right\uff1f •Right\uff01 •</data>
#
# Don't break sentences at boundary between CJK and digits
#
<data>•\u5487\u67ff\ue591\u5017\u61b3\u60a1\u9510\u8165\u9de8\u97e48888\u821c\u8165\u7fc8\u51ce\u306d\ue30b\u2494\u56d8\u4ec0\u60b1\u8560\u51ba\u611d\u57b6\u2510\u5d46\u97e5\u7751\u3002•Bye, now<100></data>
#
# Breaks around '(' following a sentence TERM. (Rule 9)
#
<data>•How do you do?(•Fine). •</data>
<data>•How do you do? •(Fine). •</data>
<data>•How do you do?(•fine). •</data>
<data>•How do you do? •(fine). •</data>
#
<data>•Hello.123<100></data> # Rule 6
<data>•Hello?•123<100></data>
<data>•HELLO.Bye<100></data> # Rule 7
<data>•HELLO?•Bye<100></data>
<data>•Hello.goodbye<100></data> #Rule 8
<data>•Hello. •Goodbye<100></data>
<data>•Hello. goodbye<100></data>
#
# test for bug #4158381: No breaks when there are no terminators around
#
<data>•\<P>Provides a set of &quot;lightweight&quot; (all-java\<FONT SIZE="-2">\<SUP>TM\</SUP>\</FONT> language) components that, to the maximum degree possible, work the same on all platforms. •</data>
<data>•Another test.\u2029•</data>
# test for bug #4143071: Make sure sentences that end with digits
# work right
#
<data>•Today is the 27th of May, 1998. •</data>
<data>•Tomorrow with be 28 May 1998. •</data>
<data>•The day after will be the 30th.\u2029•</data>
# test for bug #4152416: Make sure sentences ending with a capital
# letter are treated correctly
#
<data>•The type of all primitive \<code>boolean\</code> values accessed in the target VM. •Calls to xxx will return an implementor of this interface. \u2029•</data>
# test for bug #4152117: Make sure sentence breaking is handling
# punctuation correctly [COULD NOT REPRODUCE THIS BUG, BUT TEST IS
# HERE TO MAKE SURE IT DOESN'T CROP UP]
#
<data>•Constructs a randomly generated BigInteger, uniformly distributed over the range \<tt>0\</tt> to \<tt>(2\<sup>numBits\</sup> - 1\)\</tt>, inclusive. •The uniformity of the distribution assumes that a fair source of random bits is provided in \<tt>rnd\</tt>. •Note that this constructor always constructs a non-negative biginteger. \n•Ahh abc.
•</data>
# sentence breaks for hindi which used Devanagari script
# make sure there is sentence break after ?,danda(hindi phrase separator),
# fullstop followed by space. (VERY old test)
#
<data>•\u0928\u092e\u0938\u094d\u200d\u0924\u0947 \u0930\u092e\u0947\u0936\u0905\u093e\u092a\u0915\u0948\u0938\u0947 \u0939\u0948?•\u092e\u0948 \u0905\u091a\u094d\u200d \u091b\u093e \u0939\u0942\u0901\u0964 •\u0905\u093e\u092a\r\n<100>\
\u0915\u0948\u0938\u0947 \u0939\u0948?•\u0935\u0939 \u0915\u094d\u200d\u092f\u093e\n\
<100>\u0939\u0948?•\u092f\u0939 \u0905\u093e\u092e \u0939\u0948. •\u092f\u0939 means "this". •"\u092a\u095d\u093e\u0908" meaning "education" or "studies". •\u0905\u093e\u091c(\u0938\u094d\u200d\u0935\u0924\u0902\u0924\u094d\u0930 \u0926\u093f\u0935\u093e\u0938) \u0939\u0948\u0964 •Let's end here. •</data>
# Regression test for bug #1984, Sentence break in Arabic text.
<data>\
•\u0623\u0633\u0627\u0633\u064b\u0627\u060c\u0020\u062a\u062a\u0639\u0627"\u0645\u0644\u0020\u0627\u0644\u062d\u0648\u0627\u0633\u064a\u0628\u0020"\u0641\u0642\u0637\u0020\u0645\u0639\u0020\u0627\u0644\u0623\u0631\u0642\u0627\u0645\u060c\u0648\u062a\u0642\u0648\u0645\u0020\u0628\u062a\u062e\u0632\u064a\u0646\u0020\u0627\u0644\u0623\u062d\u0631\u0641\u0020\u0648\u0627\u0644\u0645\u062d\u0627\u0631\u0641\u0020\u0627\u0644\u0623\u062e\u0631\u0649\u0020\u0628\u0639\u062f\u0020\u0623\u0646\u062a\u064f\u0639\u0637\u064a\u0020\u0631\u0642\u0645\u0627\u0020\u0645\u0639\u064a\u0646\u0627\u0020\u0644\u0643\u0644\u0020\u0648\u0627\u062d\u062f\u0020\u0645\u0646\u0647\u0627\u002e\u0020•\u0648\u0642\u0628\u0644\u0020\u0627\u062e\u062a\u0631\u0627\u0639\u0022\u064a\u0648\u0646\u0650\u0643\u0648\u062f\u0022\u060c\u0020\u0643\u0627\u0646\u0020\u0647\u0646\u0627\u0643\u0020\u0645\u0626\u0627\u062a\u0020\u0627\u0644\u0623\u0646\u0638\u0645\u0629\u0020\u0644\u0644\u062a\u0634\u0641\u064a\u0631\u0648\u062a\u062e\u0635\u064a\u0635\u0020\u0647\u0630\u0647\u0020\u0627\u0644\u0623\u0631\u0642\u0627\u0645\u0020\u0644\u0644\u0645\u062d\u0627\u0631\u0641\u060c\u0020\u0648\u0644\u0645\u0020\u064a\u0648\u062c\u062f\u0020\u0646\u0638\u0627\u0645\u062a\u0634\u0641\u064a\u0020\u0639\u0644\u0649\u0020\u062c\u0645\u064a\u0639\u0020\u0627\u0644\u0645\u062d\u0627\u0631\u0641\u0020\u0627\u0644\u0636\u0631\u0648\u0631\u064a\u0629. •</data>
# Try a few more of the less common sentence endings.
<data>•Hello, world\u3002 •Hello, world\u1803 •Hello, world\u2048 •Hello, world\u203c •Let's end here. •</data>
################################################################
#
#
# L I N E B R E A K
#
#
################################################################
<line>
#
# Test Character for each of the line break classes.
#
# 00A1;AI # INVERTED EXCLAMATION MARK ¡
# 0041;AL # LATIN CAPITAL LETTER A
# 0009;BA # <control>
# 00B4;BB # ACUTE ACCENT
# 000C;BK # <control>
# 2014;B2 # EM DASH
# FFFC;CB # OBJECT REPLACEMENT CHARACTER
# 0029;CL # RIGHT PARENTHESIS
# 0301;CM # COMBINING ACUTE ACCENT
# 0021;EX # EXCLAMATION MARK
# 00A0;GL # NO-BREAK SPACE
# 002D;HY # HYPHEN-MINUS
# 4E00;ID # <CJK Ideograph, First>
# 2024;IN # ONE DOT LEADER
# 002C;IS # COMMA
# 000A;LF # <control>
# 0E5A;NS # THAI CHARACTER ANGKHANKHU
# 0032;NU # DIGIT TWO
# 0028;OP # LEFT PARENTHESIS
# 0025;PO # PERCENT SIGN
# 0024;PR # DOLLAR SIGN
# 0022;QU # QUOTATION MARK
# 0E01;SA # THAI CHARACTER KO KAI
# DB7F;SG # Surrogate
# 0020;SP # SPACE
# 002F;SY # SOLIDUS /
# F8FF;XX # Private Use
# 200B;ZW # ZERO WIDTH SPACE
# 2b Always break at end of text
<data>• •\u00A1•</data>
<data>• •\u0041•</data>
<data>• •\u0009•</data>
<data>• •\u00B4•</data>
<data>• \u000C<100></data> # LB3C × BK
<data>• •\u2014•</data>
<data>• •\uFFFC•</data>
<data>• \u0029•</data> # LB 8 × CL
# <data>• • \u0301•</data> # LB 7a Treat SP CM* as if it were ID #TODO: SP CM
<data>• \u0021•</data> # LB 8 × EX
#<data>• \u00A0•</data> # LB 11b × GL TODO: fix.
<data>• •\u002D•</data>
<data>• •\u4E00•</data>
<data>• •\u2024•</data>
<data>• \u002C•</data> # LB 8 × IS
<data>• \u000A<100></data> # LB3C × ( BK | CR | LF | NL )
<data>• •\u0E5A•</data>
<data>• •\u0032•</data>
<data>• •\u0028•</data>
<data>• •\u0025•</data>
<data>• •\u0024•</data>
<data>• •\u0022•</data>
<data>• •\u0E01•</data>
<data>• •\uDB7F•</data>
<data>• \u0020•</data> # LB4 - don't break before space.
<data>• \u002F•</data> # LB 8 × SY
<data>• •\uF8FF•</data>
<data>• \u200B•</data> # LB4 - don't break before ZA
# 3a Always break after hard line breaks.
# 3c Never break before hard line breaks.
<data>• •\u00A1\u2028<100>\u00A1•</data>
<data>• •\u0041\u2028<100>\u0041•</data>
<data>• •\u0009\u2028<100>\u0009•</data>
<data>• •\u00B4\u2028<100>\u00B4•</data>
<data>• \u000C<100>\u2028<100>\u000C<100></data>
<data>• •\u2014\u2028<100>\u2014•</data>
<data>• •\uFFFC\u2028<100>\uFFFC•</data>
<data>• \u0029\u2028<100>\u0029•</data>
#<data>• \u0301\u2028<100>\u0301•</data> # TODO: fix.
<data>• \u0021\u2028<100>\u0021•</data>
#<data>• \u00A0\u2028<100>\u00A0•</data> # TODO: fix
<data>• •\u002D\u2028<100>\u002D•</data>
<data>• •\u4E00\u2028<100>\u4E00•</data>
<data>• •\u2024\u2028<100>\u2024•</data>
<data>• \u002C\u2028<100>\u002C•</data>
<data>• \u000A<100>\u2028<100>\u000A<100></data>
<data>• •\u0E5A\u2028<100>\u0E5A•</data>
<data>• •\u0032\u2028<100>\u0032•</data>
<data>• •\u0028\u2028<100>\u0028•</data>
<data>• •\u0025\u2028<100>\u0025•</data>
<data>• •\u0024\u2028<100>\u0024•</data>
<data>• •\u0022\u2028<100>\u0022•</data>
<data>• •\u0E01\u2028<100>\u0E01•</data>
<data>• •\uDB7F\u2028<100>\uDB7F•</data>
<data>• \u0020\u2028<100>\u0020•</data>
<data>• \u002F\u2028<100>\u002F•</data>
<data>• •\uF8FF\u2028<100>\uF8FF•</data>
<data>• \u200B\u2028<100>\u200B•</data>
#
# Old Line Break Test data. Orginally located in RBBITest::TestDefaultRuleBasedLineIteration()
#
<line>
<data>•Multi-•Level •example •of •a •semi-•idiotic •non-•sensical •(non-•important) •sentence.
<100>Hi •Hello •How\n<100>are\r<100>you\u2028<100>fine.\t•good. •Now\r<100>is\n<100>the\r\n<100>time\n<100>\r<100>for\r<100>\r<100>all•</data>
<line>
<data>•Hello! •how\r\n<100> •(are)\r<100> •you? •I'am •fine- •Thankyou. •foo\u00a0bar
<100>How, •are, •you? •This, •costs •$20,00,000.•</data>
# test for bug #4068133
#
<data>•\u96f6•\u4e00\u3002•\u4e8c\u3001•\u4e09\u3002\u3001•\u56db\u3001\u3002\u3001•\u4e94,•\u516d.•\u4e03.\u3001,\u3002•\u516b•</data>
# to test for bug #4086052
<data>•foo\u00a0bar•</data>
# to test for bug #4097920
<data>•dog,cat,mouse •(one)•(two)\n<100></data>
# to test for bug #4035266
<data>•The •balance •is •$-23,456.78, •not •-•$32,456.78!\n<100></data>
# to test for bug #4098467
# What follows is a string of Korean characters (I found it in the Yellow Pages
# ad for the Korean Presbyterian Church of San Francisco, and I hope I transcribed
# it correctly), first as precomposed syllables, and then as conjoining jamo.
# Both sequences should be semantically identical and break the same way.
# precomposed syllables... (I == Rich Gillam?)
#
<data>•\uc0c1•\ud56d •\ud55c•\uc778 •\uc5f0•\ud569 •\uc7a5•\ub85c•\uad50•\ud68c•</data>
# conjoining jamo...
# TODO: rules update needed
#<data>•\u1109\u1161\u11bc•\u1112\u1161\u11bc •\u1112\u1161\u11ab•\u110b\u1175\u11ab #•\u110b\u1167\u11ab•\u1112\u1161\u11b8 •\u110c\u1161\u11bc•\u1105\u1169•\u1100\u116d•\u1112\u116c•</data>
# to test for bug #4117554: Fullwidth .!? should be treated as postJwrd
<data>•\u4e01\uff0e•\u4e02\uff01•\u4e03\uff1f•</data>
# Surrogate line break tests.
#
<data>•\u4e01•\ud840\udc01•\u4e02•abc •\ue000 •\udb80\udc01•</data>
# Regression for bug 836
# Note: Unicode 5.1 changed this behavior
# Unicode 5.2 changed it again, there is no break following the '('
<data>•AAA(AAA •</data>
# Try some words from other scripts.
# Greek, Cyrillic, Hebrew, Arabic, Arabic, Georgian, Latin
#
<data>•ΑΒΓ •БВГ •אבג֓ •ابت •١٢٣ •\u10A0\u10A1\u10A2 •ABC •</data>
#
# ticket #4853: unpaired surrogates should behave like AL
#
<data>•abc\ud801xyz•</data>
#
# Regression tests for failures that originally came from the monkey test.
# Monkey test failure lines can, with slight reformatting, be copied into this section
# as test cases. The error display from here is more informative.
#
<data>•\ufffc•\u30e3\u000c<100>\u1b39\u300a\u002f\u203a\u200b•\ufffc•\uaf64•\udcfb•</data>
<data>•\u114d\u31f3•\ube44\u002d•\u0362\u24e2\u276e\u2014\u205f\ufe16•\uc877•\u0fd0\u000a<100>\u20a3•</data>
<data>•\u080a\u215b\U0001d7d3\u002c•\u2025\U000e012e•\u02df\u118d\u0029\ua8d6\u0085<100>\u6cc4\u2024\u202f\ufffc•</data>
########################################################################################
#
#
# T i t l e B o u n d a r y T e s t s
#
#
##########################################################################################
<title>
<data>•Here •is •a •short •sample •sentence. •And •another.•</data>
<data>•HERE •IS •A •SHORT •SAMPLE •SENTENCE. •AND •ANOTHER.•</data>
<data>• •Start •and •end •with •spaces •</data>
<data>•Include 123 456 ^& •some 54332 •numbers 4445•abc123•abc •ending 1223 •</data>
<data>•Combining\u0301 \u0301•ma\u0306rks •bye •</data>
<data>•123 •Start •with •a •number.•</data>
<data>•'•start •with •a •case-•ignorable •cha'r'a'cter•</data>
##########################################################################################
#
# Thai Tests
#
##########################################################################################
<locale th>
<word>
#
# Test data originally from the test code source file
# // @suwit -- Thai sample data from GVT Guideline
#
# NOTE: Thai Java results differ from C because the new dictionary code is not
# yet ported. All tags are zero with the old Thai impl.
<data>•\u0E2B\u0E19\u0E36\u0E48\u0E07<000>\u0E04\u0E33<000>\u0E44\u0E17\u0E22<000>\
\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16<000>\u0E1B\u0E23\u0E30\u0E01\u0E2D\u0E1A<000>\
\u0E14\u0E49\u0E27\u0E22<000>\u0e2b\u0e25\u0e32\u0e22<000>\
\u0e1e\u0e22\u0e32\u0e07\u0e04\u0e4c<000></data>
#
# Jitterbug 3671 Test Case
#
<data>•สวัสดี<000>ครับ<000>สบาย<000>ดี<000>ไหม<000> •ครับ<000></data>
#
# Trac ticket 5595 Test Case
# (Omitted from ICU4J because of old dictionary implementation.
#
# <data>•บท<000>ที่๑พายุ<000>ไซโคลน<000>โด<000>โรธี<000>อาศัย<000>อยู่<000>ท่ามกลาง<000>\
# ทุ่งใหญ่<000>ใน<000>แคนซัส<000>กับ<000>ลุง<000>เฮ<000>นรี<000>ชาวไร่<000>และ<000>ป้า<000>เอ็ม<000>\
# ภรรยา<000>ชาวไร่<000>บ้าน<000>ของ<000>พวก<000>เขา<000>หลัง<000>เล็ก<000>เพราะ<000>ไม้<000>\
# สร้าง<000>บ้าน<000>ต้อง<000>ขน<000>มา<000>ด้วย<000>เกวียน<000>เป็น<000>ระยะ<000>ทาง<000>หลาย<000>\
# ไมล์<000></data>