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_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_indexed(): tenv = {} Tnamed(tenv, "x").unify(Tindexed(Tint()), 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_variable_indexed(): Tnew().unify(Tindexed(Tint()))
def test_unify_vector_indexed_int(): with pytest.raises(IncompatibleTypes): Tvector().unify(Tindexed(Tint()))
def test_unify_array_indexed_int(): with pytest.raises(IncompatibleTypes): Tarray(Treal()).unify(Tindexed(Tint()))
def test_unify_real_int(): with pytest.raises(IncompatibleTypes): Treal().unify(Tint())
def test_unify_int_int(): Tint().unify(Tint())