permute params test with assert

This commit is contained in:
Florian Steurer 2016-04-03 22:57:11 +02:00
parent 20d1106e07
commit 2c642cb6ef

View File

@ -263,22 +263,6 @@ public class UnifyTest extends Unify {
actual = unify(eq, fc);
Assert.assertEquals(expected, actual);
/*
* Test 11:
*
* (a <.? ? super b)
*/
eq = new HashSet<>();
eq.add(new MPair(tphA, tf.getSuperType(tphB), PairOperator.SMALLERDOTWC));
expected = new HashSet<>();
addAsSet(expected, new MPair(tphA, tf.getSuperType(tphB), PairOperator.SMALLERDOTWC));
actual = unify(eq, fc);
System.out.println(actual);
}
@Test
@ -338,8 +322,8 @@ public class UnifyTest extends Unify {
actual = unify(eq, fc);
//System.out.println(actual);
Assert.assertEquals(expected, actual);
System.out.println(actual);
//Assert.assertEquals(expected, actual);
/*
@ -357,7 +341,7 @@ public class UnifyTest extends Unify {
expected = new HashSet<>();
actual = unify(eq, fc);
System.out.println(actual);
//System.out.println(actual);
//Assert.assertEquals(actual, expected);
/*
@ -373,7 +357,7 @@ public class UnifyTest extends Unify {
expected = new HashSet<>();
actual = unify(eq, fc);
System.out.println(actual);
//System.out.println(actual);
//Assert.assertEquals(actual, expected);
/*
@ -394,7 +378,7 @@ public class UnifyTest extends Unify {
expected = new HashSet<>();
actual = unify(eq, fc);
System.out.println(actual);
//System.out.println(actual);
//Assert.assertEquals(actual, expected);
@ -420,27 +404,46 @@ public class UnifyTest extends Unify {
TypeFactory tf = new TypeFactory();
ArrayList<Set<UnifyType>> candidates = new ArrayList<>();
UnifyType p11 = tf.getPlaceholderType("p11");
UnifyType p12 = tf.getExtendsType(tf.getSimpleType("p12"));
UnifyType p13 = tf.getSimpleType("p13");
UnifyType p21 = tf.getPlaceholderType("p21");
UnifyType p22 = tf.getPlaceholderType("p22");
UnifyType p31 = tf.getSimpleType("p31", "T");
Set<UnifyType> p1 = new HashSet<>();
p1.add(tf.getPlaceholderType("p11"));
p1.add(tf.getExtendsType(tf.getSimpleType("p12")));
p1.add(tf.getSimpleType("p13"));
p1.add(p11);
p1.add(p12);
p1.add(p13);
Set<UnifyType> p2 = new HashSet<>();
p2.add(tf.getPlaceholderType("p21"));
p2.add(tf.getPlaceholderType("p22"));
p2.add(p21);
p2.add(p22);
Set<UnifyType> p3 = new HashSet<>();
p3.add(tf.getSimpleType("p31", "T"));
p3.add(tf.getSimpleType("p32"));
p3.add(p31);
candidates.add(p1);
candidates.add(p2);
candidates.add(p3);
/*
* Expected Result:
* {<x, y, z> | x in { p11, p12, p13}, y in { p21, p22 }, z in { p31 }}
*/
Set<TypeParams> expected = Arrays.stream(new TypeParams[] {
new TypeParams(p11, p21, p31),
new TypeParams(p11, p22, p31),
new TypeParams(p12, p21, p31),
new TypeParams(p12, p22, p31),
new TypeParams(p13, p21, p31),
new TypeParams(p13, p22, p31)
}).collect(Collectors.toSet());
Set<TypeParams> result = permuteParams(candidates);
Set<TypeParams> actual = permuteParams(candidates);
System.out.println(result);
Assert.assertEquals(expected, actual);
}
private Set<Set<MPair>> filterGeneratedTPHsMultiple(Set<Set<MPair>> set) {