Пример #1
0
        public void GetReachableStatesTest()
        {
            string path = @"..\..\..\TestData\1.txt";
            var    nfa  = new NFA(path);

            Assert.IsTrue(nfa.GetReachableStates('a', 0).SetEquals(new HashSet <int>()
            {
                1
            }));
            Assert.IsTrue(nfa.GetReachableStates('b', 0).SetEquals(new HashSet <int>()
            {
                1, 3
            }));
            Assert.IsTrue(nfa.GetReachableStates('a', 1).SetEquals(new HashSet <int>()
            {
                1, 3
            }));
            Assert.IsTrue(nfa.GetReachableStates('b', 0).SetEquals(new HashSet <int>()
            {
                3, 1
            }));
            Assert.IsTrue(nfa.GetReachableStates('b', 3).SetEquals(new HashSet <int>()
            {
                3, 2
            }));

            path = @"..\..\..\TestData\3.txt";
            nfa  = new NFA(path);
            Assert.IsTrue(nfa.GetReachableStates('a', 0).SetEquals(new HashSet <int>()
            {
                1, 0, 2, 3
            }));
            Assert.IsTrue(nfa.GetReachableStates('a', 1).SetEquals(new HashSet <int>()
            {
                0, 1, 2, 3
            }));
            Assert.IsTrue(nfa.GetReachableStates('a', 2).SetEquals(new HashSet <int>()
            {
            }));
            Assert.IsTrue(nfa.GetReachableStates('b', 3).SetEquals(new HashSet <int>()
            {
                2, 3
            }));
        }