1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverimport unittest
3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverimport antlr3
5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
7324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverclass TestDFA(unittest.TestCase):
8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    """Test case for the DFA class."""
9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    def setUp(self):
11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        """Setup test fixure.
12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        We need a Recognizer in order to instanciate a DFA.
14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        """
16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        class TRecognizer(antlr3.BaseRecognizer):
18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            api_version = 'HEAD'
19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        self.recog = TRecognizer()
21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    def testInit(self):
24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        """DFA.__init__()
25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        Just a smoke test.
27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        """
29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        dfa = antlr3.DFA(
31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            self.recog, 1,
32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            eot=[],
33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            eof=[],
34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            min=[],
35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            max=[],
36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            accept=[],
37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            special=[],
38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            transition=[]
39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            )
40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    def testUnpack(self):
43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        """DFA.unpack()"""
44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver        self.failUnlessEqual(
46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            antlr3.DFA.unpack(
47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            u"\1\3\1\4\2\uffff\1\5\22\uffff\1\2\31\uffff\1\6\6\uffff"
48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            u"\32\6\4\uffff\1\6\1\uffff\32\6"
49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            ),
50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            [ 3, 4, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver              -1, -1, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1,
52324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver              -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
53324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver              6, -1, -1, -1, -1, -1, -1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
54324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver              6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, -1, -1, -1, -1, 6, -1,
55324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver              6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
56324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver              6, 6, 6, 6, 6
57324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver              ]
58324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver            )
59324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
60324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
61324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
62324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverif __name__ == "__main__":
63324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    unittest.main(testRunner=unittest.TextTestRunner(verbosity=2))
64