public static RandomAutomaton ( |
||
random | ||
return |
public virtual void TestIsFinite() { int num = AtLeast(200); for (int i = 0; i < num; i++) { Automaton a = AutomatonTestUtil.RandomAutomaton(Random); Automaton b = (Automaton)a.Clone(); Assert.AreEqual(AutomatonTestUtil.IsFiniteSlow(a), SpecialOperations.IsFinite(b)); } }
public virtual void Test() { int num = AtLeast(200); for (int i = 0; i < num; i++) { Automaton a = AutomatonTestUtil.RandomAutomaton(Random); Automaton b = (Automaton)a.Clone(); MinimizationOperations.Minimize(b); Assert.IsTrue(BasicOperations.SameLanguage(a, b)); } }
public virtual void TestAgainstSimple() { int num = AtLeast(200); for (int i = 0; i < num; i++) { Automaton a = AutomatonTestUtil.RandomAutomaton(Random()); Automaton b = (Automaton)a.Clone(); AutomatonTestUtil.DeterminizeSimple(a); b.Deterministic = false; // force det b.Determinize(); // TODO: more verifications possible? Assert.IsTrue(BasicOperations.SameLanguage(a, b)); } }
public virtual void TestAgainstBrzozowski() { int num = AtLeast(200); for (int i = 0; i < num; i++) { Automaton a = AutomatonTestUtil.RandomAutomaton(Random); AutomatonTestUtil.MinimizeSimple(a); Automaton b = (Automaton)a.Clone(); MinimizationOperations.Minimize(b); Assert.IsTrue(BasicOperations.SameLanguage(a, b)); Assert.AreEqual(a.GetNumberOfStates(), b.GetNumberOfStates()); Assert.AreEqual(a.GetNumberOfTransitions(), b.GetNumberOfTransitions()); } }