public void FiniteAutomatonMatcherTest() { var automaton = new FiniteAutomatonMatcher(); foreach (var data in _data1) { var index = automaton.Match(data.Item1, data.Item2); Assert.AreEqual(data.Item1.IndexOf(data.Item2), index); } }
public void ComputeTransitionFunctionTest() { var automaton = new FiniteAutomatonMatcher(); var epsilon = new List <char> { 'a', 'b', 'c' }; var pattern = "ababaca"; var table = automaton.ComputeTransitionFunction(pattern, epsilon); Console.Write(" "); foreach (var item in epsilon) { Console.Write($"{item} "); } var m = pattern.Length + 1; for (int i = 0; i < m; i++) { Console.WriteLine(); Console.Write($"{i} "); for (int j = 0; j < epsilon.Count; j++) { Console.Write($"{table[i, j]} "); } if (i < m - 1) { Console.Write($" {pattern[i]} "); } } }