forked from JavaTX/JavaCompilerCore
79 lines
2.1 KiB
Java
79 lines
2.1 KiB
Java
package unify;
|
|
|
|
|
|
import java.util.HashSet;
|
|
import java.util.Optional;
|
|
import java.util.Set;
|
|
|
|
import org.junit.Test;
|
|
|
|
import de.dhbwstuttgart.typeinference.unify.interfaces.IRuleSet;
|
|
import de.dhbwstuttgart.typeinference.unifynew.RuleSet;
|
|
import de.dhbwstuttgart.typinference.unify.model.FiniteClosure;
|
|
import de.dhbwstuttgart.typinference.unify.model.MPair;
|
|
import de.dhbwstuttgart.typinference.unify.model.MPair.PairOperator;
|
|
import de.dhbwstuttgart.typinference.unify.model.SimpleType;
|
|
import de.dhbwstuttgart.typinference.unify.model.SuperType;
|
|
|
|
|
|
public class RuleSetTest {
|
|
|
|
@Test
|
|
public void testReduceUp() {
|
|
Set<MPair> pairs = new HashSet<MPair>();
|
|
|
|
SimpleType t1 = new SimpleType("Set");
|
|
SimpleType t2 = new SimpleType("HashSet");
|
|
SimpleType t3 = new SimpleType("Something");
|
|
|
|
SuperType s = new SuperType(t2);
|
|
|
|
pairs.add(new MPair(t1, t2, PairOperator.SMALLER));
|
|
|
|
FiniteClosure fc = new FiniteClosure(pairs);
|
|
|
|
IRuleSet rules = new RuleSet(fc);
|
|
|
|
MPair test = new MPair(t3, s, PairOperator.SMALLERDOT);
|
|
|
|
|
|
Optional<MPair> res = rules.reduceUp(test);
|
|
|
|
System.out.println(res);
|
|
}
|
|
|
|
@Test
|
|
public void testReduce1() {
|
|
Set<MPair> pairs = new HashSet<MPair>();
|
|
|
|
SimpleType t1 = new SimpleType("t1");
|
|
SimpleType t2 = new SimpleType("t2");
|
|
SimpleType t3 = new SimpleType("t3");
|
|
SimpleType t4 = new SimpleType("t4");
|
|
SimpleType t5 = new SimpleType("t5");
|
|
SimpleType t6 = new SimpleType("t6");
|
|
SimpleType t7 = new SimpleType("t7");
|
|
SimpleType t8 = new SimpleType("t8");
|
|
SimpleType t9 = new SimpleType("t9");
|
|
|
|
SimpleType ta = new SimpleType("a", t1, t2, t3);
|
|
SimpleType taa = new SimpleType("a", t4, t5, t6);
|
|
SimpleType tb = new SimpleType("b", t3, t1, t2);
|
|
SimpleType tbb = new SimpleType("b", t7, t8, t9);
|
|
|
|
|
|
pairs.add(new MPair(ta, tb, PairOperator.SMALLER));
|
|
FiniteClosure fc = new FiniteClosure(pairs);
|
|
|
|
IRuleSet rules = new RuleSet(fc);
|
|
|
|
MPair test = new MPair(taa, tbb, PairOperator.SMALLERDOT);
|
|
|
|
Optional<Set<MPair>> res = rules.reduce1(test);
|
|
|
|
System.out.println(res);
|
|
}
|
|
|
|
|
|
}
|