// Test character iteration of BreakIterator.
// Copyright (c) 1999 Cygnus Solutions
// Written by Tom Tromey <tromey@cygnus.com>
// This file is part of Mauve.
// Mauve is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2, or (at your option)
// any later version.
// Mauve is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with Mauve; see the file COPYING. If not, write to
// the Free Software Foundation, 59 Temple Place - Suite 330,
// Boston, MA 02111-1307, USA.
// Tags: JDK1.1
package gnu.testlet.wonka.text.BreakIterator;
import gnu.testlet.Testlet;
import gnu.testlet.TestHarness;
import java.text.BreakIterator;
import java.util.Locale;
public class worditer implements Testlet
{
public void check (String name, String in, String[] out, BreakIterator bi,
TestHarness harness)
{
harness.checkPoint (name);
bi.setText (in);
int index = 0;
int from = bi.current();
harness.check (from, 0);
while (true)
{
int to = bi.next();
if (to == BreakIterator.DONE)
break;
harness.check (in.substring (from, to), out[index]);
++index;
from = to;
}
harness.check (index, out.length);
harness.checkPoint ("backwards " + name);
bi.last();
index = out.length - 1;
from = bi.current ();
harness.check (from, in.length());
while (true)
{
int to = bi.previous();
if (to == BreakIterator.DONE)
break;
harness.check (in.substring (to, from), out[index]);
--index;
from = to;
}
harness.check (index, -1);
}
public void test (TestHarness harness)
{
// Just to be explicit: we're only testing the US locale here.
Locale loc = Locale.US;
Locale.setDefault (loc);
BreakIterator bi = BreakIterator.getWordInstance (loc);
String[] r1 = { "How", " ", "much", " ", "time", " ", "is", " ",
"left", "?", " ", "We", " ", "don't", " ",
"know", "." };
check ("How much", "How much time is left? We don't know.", r1,
bi, harness);
String[] r2 = { "I", " ", "am", " ", "not", "!" };
check ("I'm not", "I am not!", r2, bi, harness);
String[] r3 = { "\u2029", "X" };
check ("Paragraph separator", "\u2029X", r3, bi, harness);
}
}