1 package org.simantics.scl.compiler.tests.unit;
3 import java.util.ArrayList;
5 import org.junit.Assert;
7 import org.simantics.scl.compiler.errors.ErrorLog;
8 import org.simantics.scl.compiler.internal.elaboration.subsumption.SubSolver;
9 import org.simantics.scl.compiler.internal.elaboration.subsumption.Subsumption;
10 import org.simantics.scl.compiler.types.TMetaVar;
11 import org.simantics.scl.compiler.types.Type;
12 import org.simantics.scl.compiler.types.Types;
13 import org.simantics.scl.compiler.types.kinds.Kinds;
14 import org.simantics.scl.compiler.types.util.Polarity;
17 public class TestSubSolver {
20 public void testBipolarBounded() {
21 ErrorLog errorLog = new ErrorLog();
22 ArrayList<Subsumption> subsumptions = new ArrayList<Subsumption>();
23 ArrayList<Type> potentialSingletonEffects = new ArrayList<Type>();
25 TMetaVar in = Types.metaVar(Kinds.EFFECT);
26 TMetaVar out = Types.metaVar(Kinds.EFFECT);
27 in.addPolarity(Polarity.NEGATIVE);
28 out.addPolarity(Polarity.POSITIVE);
29 subsumptions.add(new Subsumption(0, Types.READ_GRAPH, out));
30 subsumptions.add(new Subsumption(0, in, out));
32 SubSolver solver = new SubSolver(errorLog, subsumptions, potentialSingletonEffects, 0);
34 Assert.assertEquals("", errorLog.getErrorsAsString());