assertEquals(4, matches.get(0).startPos());
}
@Test
public void testABorAConNFA() {
NFABuilder forward = new NFABuilder(5, 0, 2);
forward.state(0).transitions('a', 1, 'a', 3, null, 0);
forward.state(1).transitions('b', 2, null, 0);
forward.state(2, 0).transitions(null, 2);
forward.state(3).transitions('c', 4, null, 0);
forward.state(4, 1).transitions(null, 4);
NFABuilder backward = new NFABuilder(5, 0, 2);
backward.state(0).transitions('b', 1, 'c', 3, null, 0);
backward.state(1).transitions('a', 2, null, 0);
backward.state(2, 0).transitions(null, 2);
backward.state(3).transitions('a', 4, null, 0);
backward.state(4, 1).transitions(null, 4);
BiDFA<Character,PowerIntState> bidfa = new BiDFA<Character, PowerIntState>(
forward.build(), backward.build());
int blockSize = 3;
RopeBasedIS<?> is = new RopeBasedIS<PowerIntState>(bidfa, "xxxcabcacccc", blockSize);
List<Match> matches = newArrayList();
for(Match m : is.getMatches()) {