def test_from_nfa_simple(self): """should properly convert a simple NFA to a DFA""" nfa = NFA(**{ 'states': {'q0', 'q1', 'q2'}, 'symbols': {'0', '1'}, 'transitions': { 'q0': {'0': {'q0', 'q1'}}, 'q1': {'1': {'q2'}}, 'q2': {} }, 'initial_state': 'q0', 'final_states': {'q2'} }) dfa = DFA.from_nfa(nfa) nose.assert_equal(dfa.states, {'{}', '{q0}', '{q0q1}', '{q2}'}) nose.assert_equal(dfa.symbols, {'0', '1'}) nose.assert_equal(dfa.transitions, { '{}': {'0': '{}', '1': '{}'}, '{q0}': {'0': '{q0q1}', '1': '{}'}, '{q0q1}': {'0': '{q0q1}', '1': '{q2}'}, '{q2}': {'0': '{}', '1': '{}'} }) nose.assert_equal(dfa.initial_state, '{q0}') nose.assert_equal(dfa.final_states, {'{q2}'})