Ejemplo n.º 1
0
def test_unfiy_tricky():
    v1 = qvar()
    v2 = qvar()
    g1 = qfun(v1, v2)
    g2 = qfun(v2, qobj())

    assert_equal(unify([g1, g2]), qfun(qobj(), qobj()))
Ejemplo n.º 2
0
def test_unify():
    assert_raises(UnificationError, unify, [qobj(), qbool()])
    assert_equal(unify([qobj(), qobj()]), qobj())
    assert_equal(unify([qvar(), qobj()]), qobj())
    assert_equal(unify([qobj(), qvar()]), qobj())

    v1 = qvar()
    v2 = qvar()
    uni = unify([v1, v2])
    assert_true(uni == v1 or uni == v2)

    f1 = qfun(qobj(), qbool())
    f2 = qfun(qobj(), qobj())
    f3 = qfun(qvar(), qobj())
    f4 = qfun(qvar(), qvar())

    assert_raises(UnificationError, unify, [f1, f2])
    assert_equal(unify([f2, f3]), f2)
    assert_equal(unify([f2, f4]), f2)
    assert_equal(unify([f3, f4]), f3)