--- /dev/null
+package org.simantics.scl.compiler.tests.unit;\r
+\r
+import java.util.ArrayList;\r
+\r
+import org.junit.Assert;\r
+import org.junit.Test;\r
+import org.simantics.scl.compiler.errors.ErrorLog;\r
+import org.simantics.scl.compiler.internal.elaboration.subsumption.SubSolver;\r
+import org.simantics.scl.compiler.internal.elaboration.subsumption.Subsumption;\r
+import org.simantics.scl.compiler.types.TMetaVar;\r
+import org.simantics.scl.compiler.types.Type;\r
+import org.simantics.scl.compiler.types.Types;\r
+import org.simantics.scl.compiler.types.kinds.Kinds;\r
+import org.simantics.scl.compiler.types.util.Polarity;\r
+\r
+\r
+public class TestSubSolver {\r
+\r
+ @Test\r
+ public void testBipolarBounded() {\r
+ ErrorLog errorLog = new ErrorLog();\r
+ ArrayList<Subsumption> subsumptions = new ArrayList<Subsumption>();\r
+ ArrayList<Type> potentialSingletonEffects = new ArrayList<Type>();\r
+ \r
+ TMetaVar in = Types.metaVar(Kinds.EFFECT);\r
+ TMetaVar out = Types.metaVar(Kinds.EFFECT);\r
+ in.addPolarity(Polarity.NEGATIVE);\r
+ out.addPolarity(Polarity.POSITIVE);\r
+ subsumptions.add(new Subsumption(0, Types.READ_GRAPH, out));\r
+ subsumptions.add(new Subsumption(0, in, out));\r
+ \r
+ SubSolver solver = new SubSolver(errorLog, subsumptions, potentialSingletonEffects, 0);\r
+ solver.solve();\r
+ Assert.assertEquals("", errorLog.getErrorsAsString());\r
+ }\r
+ \r
+}\r