xref: /aosp_15_r20/external/antlr/runtime/Python3/unittests/testdfa.py (revision 16467b971bd3e2009fad32dd79016f2c7e421deb)
1*16467b97STreehugger Robot
2*16467b97STreehugger Robotimport unittest
3*16467b97STreehugger Robot
4*16467b97STreehugger Robotimport antlr3
5*16467b97STreehugger Robot
6*16467b97STreehugger Robot
7*16467b97STreehugger Robotclass TestDFA(unittest.TestCase):
8*16467b97STreehugger Robot    """Test case for the DFA class."""
9*16467b97STreehugger Robot
10*16467b97STreehugger Robot    def setUp(self):
11*16467b97STreehugger Robot        """Setup test fixure.
12*16467b97STreehugger Robot
13*16467b97STreehugger Robot        We need a Recognizer in order to instanciate a DFA.
14*16467b97STreehugger Robot
15*16467b97STreehugger Robot        """
16*16467b97STreehugger Robot
17*16467b97STreehugger Robot        class TRecognizer(antlr3.BaseRecognizer):
18*16467b97STreehugger Robot            api_version = 'HEAD'
19*16467b97STreehugger Robot
20*16467b97STreehugger Robot        self.recog = TRecognizer()
21*16467b97STreehugger Robot
22*16467b97STreehugger Robot
23*16467b97STreehugger Robot    def testInit(self):
24*16467b97STreehugger Robot        """DFA.__init__()
25*16467b97STreehugger Robot
26*16467b97STreehugger Robot        Just a smoke test.
27*16467b97STreehugger Robot
28*16467b97STreehugger Robot        """
29*16467b97STreehugger Robot
30*16467b97STreehugger Robot        dfa = antlr3.DFA(
31*16467b97STreehugger Robot            self.recog, 1,
32*16467b97STreehugger Robot            eot=[],
33*16467b97STreehugger Robot            eof=[],
34*16467b97STreehugger Robot            min=[],
35*16467b97STreehugger Robot            max=[],
36*16467b97STreehugger Robot            accept=[],
37*16467b97STreehugger Robot            special=[],
38*16467b97STreehugger Robot            transition=[]
39*16467b97STreehugger Robot            )
40*16467b97STreehugger Robot
41*16467b97STreehugger Robot
42*16467b97STreehugger Robot    def testUnpack(self):
43*16467b97STreehugger Robot        """DFA.unpack()"""
44*16467b97STreehugger Robot
45*16467b97STreehugger Robot        self.assertEqual(
46*16467b97STreehugger Robot            antlr3.DFA.unpack(
47*16467b97STreehugger Robot            "\1\3\1\4\2\uffff\1\5\22\uffff\1\2\31\uffff\1\6\6\uffff"
48*16467b97STreehugger Robot            "\32\6\4\uffff\1\6\1\uffff\32\6"
49*16467b97STreehugger Robot            ),
50*16467b97STreehugger Robot            [ 3, 4, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
51*16467b97STreehugger Robot              -1, -1, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1,
52*16467b97STreehugger Robot              -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
53*16467b97STreehugger Robot              6, -1, -1, -1, -1, -1, -1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
54*16467b97STreehugger Robot              6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, -1, -1, -1, -1, 6, -1,
55*16467b97STreehugger Robot              6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
56*16467b97STreehugger Robot              6, 6, 6, 6, 6
57*16467b97STreehugger Robot              ]
58*16467b97STreehugger Robot            )
59*16467b97STreehugger Robot
60*16467b97STreehugger Robot
61*16467b97STreehugger Robot
62*16467b97STreehugger Robotif __name__ == "__main__":
63*16467b97STreehugger Robot    unittest.main(testRunner=unittest.TextTestRunner(verbosity=2))
64