class DFATests(unittest.TestCase): def setUp(self): """delta table L = {w | w ∈ Σ*={a, b} and |w| is pair} delta | a | b | ------|-------|-------| *->q0 | q1 | q1 | q1 | q0 | q0 | ----------------------| """ self.delta = {'q0': {'a': {'q1'}, 'b': {'q1'}}, 'q1': {'a': {'q0'}, 'b': {'q0'}}} initial_state = 'q0' accept_states = ['q0'] self.dfa = DFA(self.delta, initial_state, accept_states) def test_accept_sentence_abab(self): """ DFA accept sentence 'abab' """ is_accept = self.dfa.validate_sentence('abab') self.assertTrue(is_accept) def test_reject_sentence_ababa(self): """ DFA reject sentence 'ababa' """ is_accept = self.dfa.validate_sentence('ababa') self.assertFalse(is_accept) def test_get_alphabet_from_DFA(self): """ get alphabeth from DFA alphabeth = {a, b} """ sigma = self.dfa.get_alphabet() self.assertSetEqual({'a', 'b'}, sigma) def test_get_states_from_DFA(self): """ get states from DFA states {q0, q1} """ states = self.dfa.get_states() self.assertSetEqual({'q0', 'q1'}, states)
def setUp(self): """delta table L = {w | w ∈ Σ*={a, b} and |w| is pair} delta | a | b | ------|-------|-------| *->q0 | q1 | q1 | q1 | q0 | q0 | ----------------------| """ self.delta = {'q0': {'a': {'q1'}, 'b': {'q1'}}, 'q1': {'a': {'q0'}, 'b': {'q0'}}} initial_state = 'q0' accept_states = ['q0'] self.dfa = DFA(self.delta, initial_state, accept_states)