package pl.edu.amu.wmi.daut.re;
import pl.edu.amu.wmi.daut.base.AutomatonSpecification;
import pl.edu.amu.wmi.daut.base.NondeterministicAutomatonByThompsonApproach;
import junit.framework.TestCase;
import java.util.List;
import java.util.ArrayList;
/**
* Testy klasy SingleCharacterOperator.
*/
public class TestSingleCharacterOperator extends TestCase {
/**
* Metoda testujaca konstruktor.
*/
public void testSingleCharacterOperator() {
SingleCharacterOperator operator = new SingleCharacterOperator('c');
assertNotNull(operator);
assertEquals(operator.getCharacter(), 'c');
}
/**
* Test metody createFixedAutomaton.
*/
public final void testCreateFixedAutomaton() {
SingleCharacterOperator operator = new SingleCharacterOperator('c');
AutomatonSpecification automaton = operator.createFixedAutomaton();
NondeterministicAutomatonByThompsonApproach result =
new NondeterministicAutomatonByThompsonApproach(automaton);
assertFalse(automaton.isEmpty());
assertTrue(result.accepts("c"));
assertFalse(result.accepts("cc"));
assertFalse(result.accepts("a"));
assertEquals('c', operator.getCharacter());
}
/**
* Test fabryki.
*/
public final void testFactory() {
SingleCharacterOperator.Factory factory = new SingleCharacterOperator.Factory();
List<String> list = new ArrayList<String>();
list.add("a");
SingleCharacterOperator operator = (SingleCharacterOperator) factory.createOperator(list);
assertNotNull(operator);
assertEquals(1, factory.numberOfParams());
assertEquals('a', operator.getCharacter());
}
}