public void BuildSubstitution_TagsToDoubleTagsToPDouble_ShouldUnify() { var biggerType = new Curry(Typs.Tags, Typs.Double); var smallerType = new Curry(Typs.Tags, Typs.PDouble); var unificationTable = biggerType.UnificationTable(smallerType); Assert.NotNull(unificationTable); unificationTable = smallerType.UnificationTable(biggerType); Assert.Null(unificationTable); }
public void BuildSubstitution_DoubleToStringPDoubleToString_ShouldUnify() { var biggerType = new Curry(Typs.PDouble, Typs.Bool); var smallerType = new Curry(Typs.Double, Typs.Bool); // We expect something that is able to handle PDoubles, but it is able to handle the wider doubles - should be fine var unificationTable = biggerType.UnificationTable(smallerType); Assert.NotNull(unificationTable); unificationTable = smallerType.UnificationTable(biggerType); Assert.Null(unificationTable); }
public void BuildSubstitution_TagsToStringTagsToBool_ShouldUnify() { var biggerType = new Curry(Typs.Tags, Typs.String); var smallerType = new Curry(Typs.Tags, Typs.Bool); // The expected type (biggerType) on the left, the argument type on the right (as it should be) var unificationTable = biggerType.UnificationTable(smallerType); Assert.NotNull(unificationTable); unificationTable = smallerType.UnificationTable(biggerType); Assert.Null(unificationTable); }