diff --git a/src/main/java/models/terms/meta/MetaDynamicDependency.java b/src/main/java/models/terms/meta/MetaDynamicDependency.java index 7b1c29f..dd45024 100644 --- a/src/main/java/models/terms/meta/MetaDynamicDependency.java +++ b/src/main/java/models/terms/meta/MetaDynamicDependency.java @@ -70,11 +70,11 @@ int maxIndex = another.getMaxIndex(); int maxDepth = another.getMaxDepth(); Set result = new HashSet<>(); - if (maxDepth == 1) { - MetaRDLTerm metaDep = generate(maxIndex, maxDepth, constraint.getContext()); - return metaDep.isMatchedBy(another, constraint); - } - for (int i = maxDepth; i > 1; i--) { +// if (maxDepth == 1) { +// MetaRDLTerm metaDep = generate(maxIndex, maxDepth, constraint.getContext()); +// return metaDep.isMatchedBy(another, constraint); +// } + for (int i = maxDepth; i >= 1; i--) { MatchConstraint newConstraint = new MatchConstraint(constraint); MetaRDLTerm metaDep = generate(maxIndex, i, newConstraint.getContext()); Set res = metaDep.isMatchedBy(another, newConstraint); diff --git a/src/test/java/inferencerule/InTest.java b/src/test/java/inferencerule/InTest.java deleted file mode 100644 index 9375fb9..0000000 --- a/src/test/java/inferencerule/InTest.java +++ /dev/null @@ -1,82 +0,0 @@ -package inferencerule; - -import static org.junit.jupiter.api.Assertions.*; - -import java.util.Set; - -import org.junit.jupiter.api.Test; - -import inference.In; -import models.algebra.Constant; -import models.algebra.Variable; -import models.formulas.meta.MetaEquationFormula; -import models.terms.DependencyTerm; -import models.terms.Resource; -import models.terms.meta.MetaDependencyTerm; -import models.terms.meta.MetaEvaluatableTermVariable; -import models.terms.meta.MetaResource; - -public class InTest { - - Resource a = new Resource("a", 1); - Resource b = new Resource("b", 1); - Resource c = new Resource("c", 1); - Resource d = new Resource("d", 1); - Resource e = new Resource("e", 1); - Resource f = new Resource("f", 1); - Resource g = new Resource("g", 1); - Resource h = new Resource("h", 1); - Resource i = new Resource("i", 1); - Resource j = new Resource("j", 1); - - - @Test - void DomainMemberShipDeriveTest() { - DependencyTerm t1 = new DependencyTerm(a, b, c); - DependencyTerm t2 = new DependencyTerm(d, b, c); - In in1 = new In(t1, t2); - Set res1 = in1.deriveRule(); - assertFalse(res1.isEmpty()); - MetaEvaluatableTermVariable se = new MetaEvaluatableTermVariable(new Variable("se")); - MetaResource C = new MetaResource(new Variable("c"), new Constant("0")); - MetaDependencyTerm mt1 = new MetaDependencyTerm(se, d, a); - MetaDependencyTerm mt2 = new MetaDependencyTerm(mt1, b, c); - MetaEquationFormula eq1 = new MetaEquationFormula(mt2, C); - //domain membership - assertTrue(res1.contains(eq1)); - - - In in2 = new In(a, b); - Set res2 = in2.deriveRule(); - assertFalse(res2.isEmpty()); - MetaDependencyTerm mt3 = new MetaDependencyTerm(se, b, a); - assertTrue(res2.contains(new MetaEquationFormula(mt3, C))); - - DependencyTerm t3 = new DependencyTerm(a, b, c); - DependencyTerm t4 = new DependencyTerm(d, e, f); - DependencyTerm t5 = new DependencyTerm(t3, g, h); - DependencyTerm t6 = new DependencyTerm(t4, g, h); - In in3 = new In(t5, t6); - Set res3 = in3.deriveRule(); - assertFalse(res3.isEmpty()); - MetaDependencyTerm mt4 = new MetaDependencyTerm(new MetaDependencyTerm(se, t4, t3), g, h); - assertTrue(res3.contains(new MetaEquationFormula(mt4, C))); - - DependencyTerm t7 = new DependencyTerm(a, b, c, d, e); - DependencyTerm t8 = new DependencyTerm(f, b, c, d, e); - In in4 = new In(t7, t8); - Set res4 = in4.deriveRule(); - assertFalse(res4.isEmpty()); - MetaDependencyTerm mt5 = new MetaDependencyTerm(new MetaDependencyTerm(se, f, a), b, c, d, e); - assertTrue(res4.contains(new MetaEquationFormula(mt5, C))); - - DependencyTerm t9 = new DependencyTerm(new DependencyTerm(a, b, c, d, e), f, g, h, i); - DependencyTerm t10 = new DependencyTerm(new DependencyTerm(j, b, c, d, e), f, g, h, i); - In in5 = new In(t9, t10); - Set res5 = in5.deriveRule(); - assertFalse(res5.isEmpty()); - MetaDependencyTerm mt6 = new MetaDependencyTerm(new MetaDependencyTerm(new MetaDependencyTerm(se, j, a), b, c, d, e), f, g, h, i); - assertTrue(res5.contains(new MetaEquationFormula(mt6, C))); - } - -} diff --git a/src/test/java/terms/meta/MetaDynamicDependencyTest.java b/src/test/java/terms/meta/MetaDynamicDependencyTest.java index 5cc7994..711a829 100644 --- a/src/test/java/terms/meta/MetaDynamicDependencyTest.java +++ b/src/test/java/terms/meta/MetaDynamicDependencyTest.java @@ -96,7 +96,7 @@ new MetaTermGenerator() { @Override public MetaRDLTerm generate(int curIndex, int curDepth, int maxIndex, int maxDepth, Map context) { - if (curDepth == maxDepth - 1 && curIndex == 0) { + if (curDepth == maxDepth && curIndex == 0) { return new MetaDependencyVariable(new Variable("d")); } if (curIndex == 0) {