package parseLib.tests; import parseLib.acceptor.*; import parseLib.util.Input; import org.junit.Test; import static org.junit.Assert.*; /** * Test parseLib. */ public class Acceptance { private Input i1 = new Input("ab"); private Input i2 = new Input("ba"); private Acceptor a; @Test public void test() { a = new CHAR('a'); i1.reset(); i2.reset(); assertEquals(true, a.accept(i1)); assertEquals(true, i1.ready()); assertEquals(false, a.accept(i2)); assertEquals(true, i2.ready()); a = new CHARS("ba"); i1.reset(); i2.reset(); assertEquals(false, a.accept(i1)); assertEquals(true, i1.ready()); assertEquals(true, a.accept(i2)); assertEquals(false, i2.ready()); a = new Choice(new CHAR('x'), new CHAR('a')); i1.reset(); i2.reset(); assertEquals(true, a.accept(i1)); assertEquals(true, i1.ready()); assertEquals(false, a.accept(i2)); assertEquals(true, i2.ready()); a = new Sequence(new CHAR('a'), new CHAR('b')); i1.reset(); i2.reset(); assertEquals(true, a.accept(i1)); assertEquals(false, i1.ready()); assertEquals(false, a.accept(i2)); assertEquals(true, i2.ready()); a = new Sequence(new CHAR('b'), new Optional(new CHAR('x'))); i1.reset(); i2.reset(); assertEquals(false, a.accept(i1)); assertEquals(true, i1.ready()); assertEquals(true, a.accept(i2)); assertEquals(true, i2.ready()); a = new Sequence(new Plus(new CHAR('b')), new Star(new CHAR('x'))); i1.reset(); i2.reset(); assertEquals(false, a.accept(i1)); assertEquals(true, i1.ready()); assertEquals(true, a.accept(i2)); assertEquals(true, i2.ready()); } }