コード例 #1
0
class DFATest(unittest.TestCase):
    def test_simple_language(self):
        #Language = {a^nb : n >= 0}
        m = {
            'states': ["q0", "q1", "q2"],
            'alphabet': ["a", "b"],
            'initial': "q0",
            'terminals': ["q1"],
            'delta': {
                ("q0", "a"): "q0",
                ("q0", "b"): "q1",
                ("q1", "a"): "q2",
                ("q1", "b"): "q2",
                ("q2", "a"): "q2",
                ("q2", "b"): "q2"
            }
        }

        self.my_dfa = DFA()
        self.my_dfa.load(m)

        self.assertTrue(self.my_dfa._accepts("ab"))
        self.assertTrue(self.my_dfa._accepts("aaaab"))
        self.assertTrue(self.my_dfa._accepts("b"))

        self.assertFalse(self.my_dfa._accepts("aba"))
        self.assertFalse(self.my_dfa._accepts("aabbabaa"))
        self.assertFalse(self.my_dfa._accepts("aaaaa"))

    def test_load_from_yaml(self):
        self.my_dfa = DFA()
        self.my_dfa.load_from_yaml("example.yaml")

        self.assertTrue(self.my_dfa._accepts("ab"))
        self.assertTrue(self.my_dfa._accepts("aaaab"))
        self.assertTrue(self.my_dfa._accepts("b"))

        self.assertFalse(self.my_dfa._accepts("aba"))
        self.assertFalse(self.my_dfa._accepts("aabbabaa"))
        self.assertFalse(self.my_dfa._accepts("aaaaa"))
コード例 #2
0
ファイル: test.py プロジェクト: cathoderay/dfa
class DFATest(unittest.TestCase):
    def test_simple_language(self):
        # Language = {a^nb : n >= 0}
        m = {
            "states": ["q0", "q1", "q2"],
            "alphabet": ["a", "b"],
            "initial": "q0",
            "terminals": ["q1"],
            "delta": {
                ("q0", "a"): "q0",
                ("q0", "b"): "q1",
                ("q1", "a"): "q2",
                ("q1", "b"): "q2",
                ("q2", "a"): "q2",
                ("q2", "b"): "q2",
            },
        }

        self.my_dfa = DFA()
        self.my_dfa.load(m)

        self.assertTrue(self.my_dfa._accepts("ab"))
        self.assertTrue(self.my_dfa._accepts("aaaab"))
        self.assertTrue(self.my_dfa._accepts("b"))

        self.assertFalse(self.my_dfa._accepts("aba"))
        self.assertFalse(self.my_dfa._accepts("aabbabaa"))
        self.assertFalse(self.my_dfa._accepts("aaaaa"))

    def test_load_from_yaml(self):
        self.my_dfa = DFA()
        self.my_dfa.load_from_yaml("example.yaml")

        self.assertTrue(self.my_dfa._accepts("ab"))
        self.assertTrue(self.my_dfa._accepts("aaaab"))
        self.assertTrue(self.my_dfa._accepts("b"))

        self.assertFalse(self.my_dfa._accepts("aba"))
        self.assertFalse(self.my_dfa._accepts("aabbabaa"))
        self.assertFalse(self.my_dfa._accepts("aaaaa"))
コード例 #3
0
ファイル: example.py プロジェクト: justrypython/dfa
from dfa import DFA


m = DFA()
m.load_from_yaml("automata/example.yaml")

#accepted! =)
m.accepts("b")
m.accepts("ab")
m.accepts("aab")

#rejected, =(
m.accepts("ba")
m.accepts("aba")
m.accepts("bbba")