def test_run_objects_with_context_manager(): f = Foo(1, 1234) g = Foo(1, 2) _unify.add((Foo, Foo, dict), unify_object) _reify.add((Foo, dict), reify_object) with variables(1234): assert unify_object(f, g, {}) assert run(1, 1234, (eq, f, g)) == (2,) assert run(1, Foo(1234, 1234), (eq, f, g)) == (Foo(2, 2),)
def test_objects_full(): _unify.add((Foo, Foo, dict), unify_object) _unify.add((Bar, Bar, dict), unify_object) _reify.add((Foo, dict), reify_object) _reify.add((Bar, dict), reify_object) assert unify_object(Foo(1, Bar(2)), Foo(1, Bar(var(3))), {}) == {var(3): 2} assert reify(Foo(var('a'), Bar(Foo(var('b'), 3))), {var('a'): 1, var('b'): 2}) == Foo(1, Bar(Foo(2, 3)))
def test_run_objects_with_context_manager(): f = Foo(1, 1234) g = Foo(1, 2) _unify.add((Foo, Foo, dict), unify_object) _reify.add((Foo, dict), reify_object) with variables(1234): assert unify_object(f, g, {}) assert run(1, 1234, (eq, f, g)) == (2, ) assert run(1, Foo(1234, 1234), (eq, f, g)) == (Foo(2, 2), )
def test_list_1(): _unify.add((Foo, Foo, dict), unify_object) _reify.add((Foo, dict), reify_object) x = var('x') y = var('y') rval = run(0, (x, y), (eq, Foo(1, [2]), Foo(x, [y]))) assert rval == ((1, 2),) rval = run(0, (x, y), (eq, Foo(1, [2]), Foo(x, y))) assert rval == ((1, [2]),)
def test_unify_isinstance_list(): class Foo2(Foo): pass x = var('x') y = var('y') f, g = Foo2(1, 2), Foo2(x, y) _unify.add((Foo, Foo, dict), unify_object) _reify.add((Foo, dict), reify_object) assert unify(f, g, {}) assert reify(g, {x: 1, y: 2}) == f
def test_list_1(): _unify.add((Foo, Foo, dict), unify_object) _reify.add((Foo, dict), reify_object) x = var('x') y = var('y') rval = run(0, (x, y), (eq, Foo(1, [2]), Foo(x, [y]))) assert rval == ((1, 2), ) rval = run(0, (x, y), (eq, Foo(1, [2]), Foo(x, y))) assert rval == ((1, [2]), )
def test_objects_full(): _unify.add((Foo, Foo, dict), unify_object) _unify.add((Bar, Bar, dict), unify_object) _reify.add((Foo, dict), reify_object) _reify.add((Bar, dict), reify_object) assert unify_object(Foo(1, Bar(2)), Foo(1, Bar(var(3))), {}) == {var(3): 2} assert reify(Foo(var('a'), Bar(Foo(var('b'), 3))), { var('a'): 1, var('b'): 2 }) == Foo(1, Bar(Foo(2, 3)))