]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/unit/TestSubSolver.java
Automatic execution of SCL tests in Maven
[simantics/platform.git] / tests / org.simantics.scl.compiler.tests / src / org / simantics / scl / compiler / tests / unit / TestSubSolver.java
diff --git a/tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/unit/TestSubSolver.java b/tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/unit/TestSubSolver.java
new file mode 100644 (file)
index 0000000..87b9eeb
--- /dev/null
@@ -0,0 +1,37 @@
+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