JavaCompilerCore/test/unify/UnifyTest.java

68 lines
1.8 KiB
Java
Raw Normal View History

2015-10-17 17:04:32 +00:00
package unify;
import org.junit.Test;
2015-10-18 10:51:07 +00:00
import de.dhbwstuttgart.syntaxtree.Class;
2015-10-17 17:04:32 +00:00
import de.dhbwstuttgart.syntaxtree.type.RefType;
import de.dhbwstuttgart.syntaxtree.type.Type;
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
2015-10-18 10:51:07 +00:00
import de.dhbwstuttgart.typeinference.Menge;
2015-10-17 17:04:32 +00:00
import de.dhbwstuttgart.typeinference.Pair;
2015-10-18 10:51:07 +00:00
import de.dhbwstuttgart.typeinference.unify.FC_TTO;
import de.dhbwstuttgart.typeinference.unify.Unify;
2015-10-17 17:04:32 +00:00
public class UnifyTest {
@Test
public void unifyTestSimpleTypes() {
2015-10-18 10:51:07 +00:00
/*
* Input
*/
2015-10-17 17:04:32 +00:00
Type tph1 = TypePlaceholder.backdoorCreate("b");
Type tph2 = TypePlaceholder.backdoorCreate("a");
2015-10-18 10:51:07 +00:00
RefType rt1 = new RefType("java.lang.Boolean", null, 0);
RefType rt2 = new RefType("java.lang.Integer", null, 0);
Menge<Pair> assumptions = new Menge<Pair>();
// b <. Boolean <. a <. Integer
assumptions.add(new Pair(tph1, rt1));
assumptions.add(new Pair(rt1, tph2));
assumptions.add(new Pair(tph2, rt2));
/*
* FC TTO
*/
Menge<Pair> fc = new Menge<Pair>();
// String <. Boolean <. Integer
fc.add(new Pair(new RefType("java.lang.String", null, 0), new RefType("java.lang.Boolean", null, 0)));
fc.add(new Pair(new RefType("java.lang.Boolean", null, 0), new RefType("java.lang.Integer", null, 0)));
Menge tto = (Menge) fc.clone();
Menge<Class> classes = new Menge<Class>();
classes.add(new Class("java.lang.Boolean", 0));
classes.add(new Class("java.lang.String", 0));
classes.add(new Class("java.lang.Integer", 0));
// Was ist tto und classes?
FC_TTO fctto = new FC_TTO(fc, tto, null);
System.out.println(Unify.unify(assumptions, fctto));
2015-10-17 17:04:32 +00:00
}
@Test
public void unifyTestInheritance() {
}
@Test
public void unifyTestWildcards() {
}
}