diff --git a/src/test/java/terms/DependencyTest.java b/src/test/java/terms/DependencyTest.java index 916c3b1..f31a5ff 100644 --- a/src/test/java/terms/DependencyTest.java +++ b/src/test/java/terms/DependencyTest.java @@ -14,6 +14,7 @@ import models.terms.RDLTerm; import models.terms.Resource; import models.terms.meta.MatchConstraint; +import models.terms.meta.MetaDependencyGenerator; import models.terms.meta.MetaRDLTerm; import models.terms.meta.MetaResource; import models.terms.meta.OrderVariableConstraint; @@ -118,4 +119,35 @@ assertFalse(!tmp.isEmpty()); } + @Test + void DynamicMatchTest() { + MetaResource x = new MetaResource(new Variable("x")); + MetaRDLTerm md1 = new MetaRDLTerm(x, new MetaDependencyGenerator() { + @Override + public RDLTerm generate(int i, int size) { + if (i != size) { + return new MetaResource(new Variable("r" + i)); + } else { + return new MetaResource(new Variable("y")); + } + }}); + MetaRDLTerm md2 = new MetaRDLTerm(new MetaResource(new Variable("y")), new MetaResource(new Variable("z"))); + Dependency d1 = new Dependency(a, b, c); + Dependency d2 = new Dependency(c, d); + Dependency d3 = new Dependency(b, d); + + Set tmp = md1.isMatchedBy(d1); + assertTrue(!tmp.isEmpty()); + assertTrue(! md2.isMatchedBy(d2, tmp).isEmpty()); + assertTrue(! md2.isMatchedBy(d3, tmp).isEmpty()); + } + +// { +// if (i != size) { +// return new MetaResource(new Variable("r" + i)) +// } else { +// return new MetaResource(new Variable("y")) +// } +// } + }