def test_unify_matrix_indexed_named_variable_real(): tenv = {} Tmatrix().unify(Tindexed(Tnamed(tenv, "x")), tenv=tenv) Tindexed(Tnamed(tenv, "y")).unify(Tnamed(tenv, "x"), tenv=tenv) Treal().unify(Tnamed(tenv, "y"), tenv=tenv)
def test_unify_matrix_indexed_named_variable_int(): with pytest.raises(IncompatibleTypes): tenv = {} Tmatrix().unify(Tindexed(Tnamed(tenv, "x")), tenv=tenv) Tindexed(Tnamed(tenv, "y")).unify(Tnamed(tenv, "x"), tenv=tenv) Tint().unify(Tnamed(tenv, "y"), tenv=tenv)
def test_unify_named_variable_named_variable_different_conflict(): with pytest.raises(IncompatibleTypes): tenv = {} Tnamed(tenv, "x").unify(Tint(), tenv=tenv) Tnamed(tenv, "y").unify(Treal(), tenv=tenv) Tnamed(tenv, "y").unify(Tnamed(tenv, "x"), tenv=tenv)
def test_unify_named_variable_named_variable_different_no_conflict(): tenv = {} Tnamed(tenv, "x").unify(Tint(), tenv=tenv) Tnamed(tenv, "y").unify(Treal(), tenv=tenv)
def test_unify_named_variable_named_variable_different(): tenv = {} Tnamed(tenv, "x").unify(Tnamed(tenv, "y"), tenv=tenv)
def test_unify_named_variable_named_variable_same(): tenv = {} Tnamed(tenv, "x").unify(Tnamed(tenv, "x"), tenv=tenv)
def test_unify_named_variable_indexed(): tenv = {} Tnamed(tenv, "x").unify(Tindexed(Tint()), tenv=tenv)