blob: 0ba50e8e941ca4f7aeeb8bc89a005573ae08087c [file] [log] [blame]
// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html#License
package com.ibm.icu.dev.test.rbbi;
import java.text.CharacterIterator;
import org.junit.Before;
import org.junit.Test;
import com.ibm.icu.dev.test.TestFmwk;
import com.ibm.icu.text.BreakIterator;
/**
* @author sgill
*
*/
public class AbstractBreakIteratorTests extends TestFmwk {
private class AbstractBreakIterator extends BreakIterator {
private int position = 0;
private static final int LIMIT = 100;
private int set(int n) {
position = n;
if (position > LIMIT) {
position = LIMIT;
return DONE;
}
if (position < 0) {
position = 0;
return DONE;
}
return position;
}
@Override
public int first() {
return set(0);
}
@Override
public int last() {
return set(LIMIT);
}
@Override
public int next(int n) {
return set(position + n);
}
@Override
public int next() {
return next(1);
}
@Override
public int previous() {
return next(-1);
}
@Override
public int following(int offset) {
return set(offset + 1);
}
@Override
public int current() {
return position;
}
@Override
public CharacterIterator getText() {
return null;
}
@Override
public void setText(CharacterIterator newText) {
}
}
private BreakIterator bi;
@Before
public void createBreakIterator() {
bi = new AbstractBreakIterator();
}
@Test
public void testPreceding() {
int pos = bi.preceding(0);
TestFmwk.assertEquals("BreakIterator preceding position not correct", BreakIterator.DONE, pos);
pos = bi.preceding(5);
TestFmwk.assertEquals("BreakIterator preceding position not correct", 4, pos);
}
@Test
public void testIsBoundary() {
boolean b = bi.isBoundary(0);
TestFmwk.assertTrue("BreakIterator is boundary not correct", b);
b = bi.isBoundary(5);
TestFmwk.assertTrue("BreakIterator is boundary not correct", b);
}
}