]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_2_1-src/src/com/ibm/icu/dev/eclipse/plugins/com.ibm.icu.base.tests/src/com/ibm/icu/tests/BreakIteratorTest.java
icu4jsrc
[Dictionary.git] / jars / icu4j-4_2_1-src / src / com / ibm / icu / dev / eclipse / plugins / com.ibm.icu.base.tests / src / com / ibm / icu / tests / BreakIteratorTest.java
1 /*\r
2  *******************************************************************************\r
3  * Copyright (C) 2006, International Business Machines Corporation and         *\r
4  * others. All Rights Reserved.                                                *\r
5  *******************************************************************************\r
6  */\r
7 \r
8 package com.ibm.icu.tests;\r
9 \r
10 import java.text.CharacterIterator;\r
11 import java.text.StringCharacterIterator;\r
12 import java.util.Locale;\r
13 \r
14 import com.ibm.icu.text.BreakIterator;\r
15 import com.ibm.icu.util.ULocale;\r
16 \r
17 public class BreakIteratorTest extends ICUTestCase {\r
18     // ICU behaves a bit differently with this text, but the tested values aren't\r
19     // affected.  If Java changes behavior they might need to change.\r
20     private static final String text = "Mr. and Mrs. Mumblety-Peg paid $35.97 for a new 12\" cockatoo. " +\r
21         "When they got home they both cooed \"Isn't it lovely?\" and sighed softly. " +\r
22         "\"Let's name it u\u0308\u5098!\" they said with glee.";\r
23     private static int pos = text.indexOf("sn't");\r
24     private static BreakIterator cbr;\r
25     private static BreakIterator wbr;\r
26     private static BreakIterator lbr;\r
27     private static BreakIterator sbr;\r
28         \r
29     static {\r
30         cbr = BreakIterator.getCharacterInstance();\r
31         cbr.setText(text);\r
32         wbr = BreakIterator.getWordInstance();\r
33         wbr.setText(text);\r
34         lbr = BreakIterator.getLineInstance();\r
35         lbr.setText(text);\r
36         sbr = BreakIterator.getSentenceInstance();\r
37         sbr.setText(text);\r
38                 \r
39         // diagnostic\r
40         //              dump(cbr);\r
41         //              dump(wbr);\r
42         //              dump(lbr);\r
43         //              dump(sbr);\r
44     }\r
45         \r
46     //      private static void dump(BreakIterator bi) {\r
47     //              for (int ix = bi.first(), lim = text.length(); ix != lim;) {\r
48     //                      int nx = bi.next();\r
49     //                      if (nx < 0) nx = lim;\r
50     //                      System.out.println(Integer.toString(ix) + ": " + text.substring(ix, nx));\r
51     //                      ix = nx;\r
52     //              }\r
53     //      }\r
54         \r
55     /*\r
56      * Test method for 'com.ibm.icu.text.BreakIterator.hashCode()'\r
57      */\r
58     public void testHashCode() {\r
59         BreakIterator br = BreakIterator.getWordInstance();\r
60         br.setText(text);\r
61         BreakIterator brne = BreakIterator.getWordInstance();\r
62         brne.setText(text + "X");\r
63         wbr.first();\r
64         testEHCS(br, wbr, brne);\r
65     }\r
66 \r
67     /*\r
68      * Test method for 'com.ibm.icu.text.BreakIterator.BreakIterator(BreakIterator)'\r
69      */\r
70     public void testBreakIterator() {\r
71         // implicitly tested everywhere\r
72     }\r
73 \r
74     /*\r
75      * Test method for 'com.ibm.icu.text.BreakIterator.first()'\r
76      */\r
77     public void testFirst() {\r
78         assertEquals(0, cbr.first());\r
79         assertEquals(0, wbr.first());\r
80         assertEquals(0, lbr.first());\r
81         assertEquals(0, sbr.first());\r
82     }\r
83 \r
84     /*\r
85      * Test method for 'com.ibm.icu.text.BreakIterator.last()'\r
86      */\r
87     public void testLast() {\r
88         assertEquals(text.length(), cbr.last());\r
89         assertEquals(text.length(), wbr.last());\r
90         assertEquals(text.length(), lbr.last());\r
91         assertEquals(text.length(), sbr.last());\r
92     }\r
93 \r
94     /*\r
95      * Test method for 'com.ibm.icu.text.BreakIterator.next(int)'\r
96      */\r
97     public void testNextInt() {\r
98         cbr.first();\r
99         wbr.first();\r
100         lbr.first();\r
101         sbr.first();\r
102         assertEquals(2, cbr.next(2));\r
103         assertEquals(3, wbr.next(2));\r
104         assertEquals(8, lbr.next(2));\r
105         assertEquals(62, sbr.next(2));\r
106                 \r
107         cbr.last();\r
108         wbr.last();\r
109         lbr.last();\r
110         sbr.last();\r
111         assertEquals(174, cbr.next(-2));\r
112         assertEquals(171, wbr.next(-2));\r
113         assertEquals(166, lbr.next(-2));\r
114         assertEquals(135, sbr.next(-2));\r
115     }\r
116 \r
117     /*\r
118      * Test method for 'com.ibm.icu.text.BreakIterator.next()'\r
119      */\r
120     public void testNext() {\r
121         cbr.first();\r
122         wbr.first();\r
123         lbr.first();\r
124         sbr.first();\r
125         assertEquals(1, cbr.next());\r
126         assertEquals(2, wbr.next());\r
127         assertEquals(4, lbr.next());\r
128         assertEquals(13, sbr.next());\r
129     }\r
130 \r
131     /*\r
132      * Test method for 'com.ibm.icu.text.BreakIterator.previous()'\r
133      */\r
134     public void testPrevious() {\r
135         cbr.last();\r
136         wbr.last();\r
137         lbr.last();\r
138         sbr.last();\r
139         assertEquals(175, cbr.previous());\r
140         assertEquals(175, wbr.previous());\r
141         assertEquals(171, lbr.previous());\r
142         assertEquals(156, sbr.previous());\r
143     }\r
144 \r
145     /*\r
146      * Test method for 'com.ibm.icu.text.BreakIterator.following(int)'\r
147      */\r
148     public void testFollowing() {\r
149         assertEquals(100, cbr.following(pos));\r
150         assertEquals(103, wbr.following(pos));\r
151         assertEquals(104, lbr.following(pos));\r
152         assertEquals(116, sbr.following(pos));\r
153     }\r
154 \r
155     /*\r
156      * Test method for 'com.ibm.icu.text.BreakIterator.preceding(int)'\r
157      */\r
158     public void testPreceding() {\r
159         assertEquals(98, cbr.preceding(pos));\r
160         assertEquals(98, wbr.preceding(pos));\r
161         assertEquals(97, lbr.preceding(pos));\r
162         assertEquals(62, sbr.preceding(pos));\r
163     }\r
164 \r
165     /*\r
166      * Test method for 'com.ibm.icu.text.BreakIterator.isBoundary(int)'\r
167      */\r
168     public void testIsBoundary() {\r
169         assertTrue(cbr.isBoundary(pos));\r
170         assertFalse(wbr.isBoundary(pos));\r
171         assertFalse(lbr.isBoundary(pos));\r
172         assertFalse(sbr.isBoundary(pos));\r
173 \r
174     }\r
175 \r
176     /*\r
177      * Test method for 'com.ibm.icu.text.BreakIterator.current()'\r
178      */\r
179     public void testCurrent() {\r
180         cbr.following(pos);\r
181         wbr.following(pos);\r
182         lbr.following(pos);\r
183         sbr.following(pos);\r
184         assertEquals(100, cbr.current());\r
185         assertEquals(103, wbr.current());\r
186         assertEquals(104, lbr.current());\r
187         assertEquals(116, sbr.current());\r
188     }\r
189 \r
190     /*\r
191      * Test method for 'com.ibm.icu.text.BreakIterator.getText()'\r
192      */\r
193     public void testGetText() {\r
194         CharacterIterator ci = cbr.getText();\r
195         StringBuffer buf = new StringBuffer(ci.getEndIndex() - ci.getBeginIndex());\r
196         for (char c = ci.first(); c != CharacterIterator.DONE; c = ci.next()) {\r
197             buf.append(c);\r
198         }\r
199         String result = buf.toString();\r
200         assertEquals(text, result);\r
201     }\r
202 \r
203     /*\r
204      * Test method for 'com.ibm.icu.text.BreakIterator.setText(String)'\r
205      */\r
206     public void testSetTextString() {\r
207         // implicitly tested\r
208     }\r
209 \r
210     /*\r
211      * Test method for 'com.ibm.icu.text.BreakIterator.setText(CharacterIterator)'\r
212      */\r
213     public void testSetTextCharacterIterator() {\r
214         CharacterIterator ci = new StringCharacterIterator(text, pos);\r
215         BreakIterator bi = BreakIterator.getWordInstance();\r
216         bi.setText(ci);\r
217         assertEquals(2, bi.next());\r
218     }\r
219 \r
220     /*\r
221      * Test method for 'com.ibm.icu.text.BreakIterator.getWordInstance()'\r
222      */\r
223     public void testGetWordInstance() {\r
224         // implicitly tested\r
225     }\r
226 \r
227     /*\r
228      * Test method for 'com.ibm.icu.text.BreakIterator.getWordInstance(Locale)'\r
229      */\r
230     public void testGetWordInstanceLocale() {\r
231         assertNotNull(BreakIterator.getWordInstance(Locale.JAPAN));\r
232     }\r
233 \r
234     /*\r
235      * Test method for 'com.ibm.icu.text.BreakIterator.getWordInstance(ULocale)'\r
236      */\r
237     public void testGetWordInstanceULocale() {\r
238         assertNotNull(BreakIterator.getWordInstance(ULocale.JAPAN));\r
239     }\r
240 \r
241     /*\r
242      * Test method for 'com.ibm.icu.text.BreakIterator.getLineInstance()'\r
243      */\r
244     public void testGetLineInstance() {\r
245         // implicitly tested\r
246     }\r
247 \r
248     /*\r
249      * Test method for 'com.ibm.icu.text.BreakIterator.getLineInstance(Locale)'\r
250      */\r
251     public void testGetLineInstanceLocale() {\r
252         assertNotNull(BreakIterator.getLineInstance(Locale.JAPAN));\r
253     }\r
254 \r
255     /*\r
256      * Test method for 'com.ibm.icu.text.BreakIterator.getLineInstance(ULocale)'\r
257      */\r
258     public void testGetLineInstanceULocale() {\r
259         assertNotNull(BreakIterator.getLineInstance(ULocale.JAPAN));\r
260     }\r
261 \r
262     /*\r
263      * Test method for 'com.ibm.icu.text.BreakIterator.getCharacterInstance()'\r
264      */\r
265     public void testGetCharacterInstance() {\r
266         // implicitly tested\r
267     }\r
268 \r
269     /*\r
270      * Test method for 'com.ibm.icu.text.BreakIterator.getCharacterInstance(Locale)'\r
271      */\r
272     public void testGetCharacterInstanceLocale() {\r
273         assertNotNull(BreakIterator.getCharacterInstance(Locale.JAPAN));\r
274     }\r
275 \r
276     /*\r
277      * Test method for 'com.ibm.icu.text.BreakIterator.getCharacterInstance(ULocale)'\r
278      */\r
279     public void testGetCharacterInstanceULocale() {\r
280         assertNotNull(BreakIterator.getCharacterInstance(ULocale.JAPAN));\r
281     }\r
282 \r
283     /*\r
284      * Test method for 'com.ibm.icu.text.BreakIterator.getSentenceInstance()'\r
285      */\r
286     public void testGetSentenceInstance() {\r
287         // implicitly tested\r
288     }\r
289 \r
290     /*\r
291      * Test method for 'com.ibm.icu.text.BreakIterator.getSentenceInstance(Locale)'\r
292      */\r
293     public void testGetSentenceInstanceLocale() {\r
294         assertNotNull(BreakIterator.getSentenceInstance(Locale.JAPAN));\r
295     }\r
296 \r
297     /*\r
298      * Test method for 'com.ibm.icu.text.BreakIterator.getSentenceInstance(ULocale)'\r
299      */\r
300     public void testGetSentenceInstanceULocale() {\r
301         assertNotNull(BreakIterator.getSentenceInstance(ULocale.JAPAN));\r
302     }\r
303 \r
304     /*\r
305      * Test method for 'com.ibm.icu.text.BreakIterator.getTitleInstance()'\r
306      */\r
307     public void testGetTitleInstance() {\r
308         // not implemented\r
309     }\r
310 \r
311     /*\r
312      * Test method for 'com.ibm.icu.text.BreakIterator.getTitleInstance(Locale)'\r
313      */\r
314     public void testGetTitleInstanceLocale() {\r
315         // not implemented\r
316     }\r
317 \r
318     /*\r
319      * Test method for 'com.ibm.icu.text.BreakIterator.getTitleInstance(ULocale)'\r
320      */\r
321     public void testGetTitleInstanceULocale() {\r
322         // not implemented\r
323     }\r
324 \r
325     /*\r
326      * Test method for 'com.ibm.icu.text.BreakIterator.getAvailableLocales()'\r
327      */\r
328     public void testGetAvailableLocales() {\r
329         assertNotNull(BreakIterator.getAvailableLocales());\r
330     }\r
331 \r
332     /*\r
333      * Test method for 'com.ibm.icu.text.BreakIterator.getAvailableULocales()'\r
334      */\r
335     public void testGetAvailableULocales() {\r
336         assertNotNull(BreakIterator.getAvailableULocales());\r
337     }\r
338 \r
339     /*\r
340      * Test method for 'com.ibm.icu.text.BreakIterator.toString()'\r
341      */\r
342     public void testToString() {\r
343         assertNotNull(cbr.toString());\r
344     }\r
345 \r
346     /*\r
347      * Test method for 'com.ibm.icu.text.BreakIterator.clone()'\r
348      */\r
349     public void testClone() {\r
350         // see testHashCode\r
351     }\r
352 \r
353     /*\r
354      * Test method for 'com.ibm.icu.text.BreakIterator.equals(Object)'\r
355      */\r
356     public void testEqualsObject() {\r
357         // see testHashCode\r
358     }\r
359 }\r