def test_lists(goal, query, expected): assert [reify(query, st) for st in unfold(goal(initial()))] == expected
def test_arithmetic(goal, expected): assert [s for s, _, _ in unfold(goal(initial()))] == expected
def test_disequality(goal, expected): assert [s for s, _, _ in unfold(goal(initial()))] == expected
def test_goals(goal, expected): assert [s for s, _, _ in unfold(goal(initial()))] == expected
def test_unfold(stream, expected): assert list(unfold(stream)) == expected