package pl.edu.amu.wmi.daut.re; import java.util.ArrayList; import pl.edu.amu.wmi.daut.base.AutomatonByRecursion; import junit.framework.TestCase; /** * Klasa, testuje klasę CharClassOperator. */ public class TestCharClassOperator extends TestCase { /** * Konstruuje przykładowy automat, a następnie go testuje. */ public void testAutomatonFirst() { AutomatonByRecursion tmp = new AutomatonByRecursion( new CharClassOperator("1-3").createFixedAutomaton()); assertTrue(tmp.accepts("2")); assertFalse(tmp.accepts("4")); assertTrue(tmp.accepts("3")); } /** * Konstruuje przykładowy automat, a następnie go testuje. */ public void testAutomatonSecond() { AutomatonByRecursion tmp = new AutomatonByRecursion( new CharClassOperator("1-3a-c-").createFixedAutomaton()); assertTrue(tmp.accepts("1")); assertFalse(tmp.accepts("4")); assertTrue(tmp.accepts("-")); assertFalse(tmp.accepts("d")); assertFalse(tmp.accepts("ą")); assertTrue(tmp.accepts("b")); } /** * Test fabryki operatora. */ public void testFactory() { RegexpOperatorFactory factory = new CharClassOperator.Factory(); ArrayList<String> params = new ArrayList<String>(); params.add("1-3"); assertEquals(0, factory.arity()); assertEquals(1, factory.numberOfParams()); assertEquals(factory.createOperator(params).getClass(), new CharClassOperator(params.get(0)).getClass()); } }