Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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]}  ");
                }
            }
        }