def test_star_advanced():
    starred = fsm(alphabet={'a', 'b'}, states={0, 1, 2, 'oblivion'}, initial=0, finals={2}, map={0: {'a': 0, 'b': 1}, 1: {'a': 2, 'b': 'oblivion'}, 2: {'a': 'oblivion', 'b': 'oblivion'}, 'oblivion': {'a': 'oblivion', 'b': 'oblivion'}}).star()
    assert (starred.alphabet == frozenset(['a', 'b']))
    assert starred.accepts('')
    assert (not starred.accepts('a'))
    assert (not starred.accepts('b'))
    assert (not starred.accepts('aa'))
    assert starred.accepts('ba')
    assert starred.accepts('aba')
    assert starred.accepts('aaba')
    assert (not starred.accepts('aabb'))
    assert starred.accepts('abababa')
def test_star_advanced():
    starred = fsm(alphabet={'a', 'b'}, states={0, 1, 2, 'oblivion'}, initial=0, finals={2}, map={0: {'a': 0, 'b': 1}, 1: {'a': 2, 'b': 'oblivion'}, 2: {'a': 'oblivion', 'b': 'oblivion'}, 'oblivion': {'a': 'oblivion', 'b': 'oblivion'}}).star()
    assert (starred.alphabet == frozenset(['a', 'b']))
    assert starred.accepts()
    assert (not starred.accepts('a'))
    assert (not starred.accepts('b'))
    assert (not starred.accepts('aa'))
    assert starred.accepts('ba')
    assert starred.accepts('aba')
    assert starred.accepts('aaba')
    assert (not starred.accepts('aabb'))
    assert starred.accepts('abababa')