def test_max_length_of_recursive_dfa(order): dfa = ConcreteDFA([{0: 1, 1: 2, 2: 3}, {0: 2}, {0: 1}, {0: 0, 1: 4}, {}], {4}) for i in order: dfa.max_length(i) assert dfa.max_length(0) == inf assert dfa.max_length(1) == 0 assert dfa.max_length(2) == 0 assert dfa.max_length(3) == inf assert dfa.max_length(4) == 0
def test_max_length_of_empty_dfa_is_zero(): dfa = ConcreteDFA([{}], {0}) assert dfa.max_length(dfa.start) == 0
def test_max_length_of_long_dfa(n): dfa = ConcreteDFA([{0: i + 1} for i in range(n)] + [{}], {n}) assert not dfa.is_dead(dfa.start) assert dfa.max_length(dfa.start) == n