diff --git a/integraal/integraal-explanation/src/test/java/fr/boreal/test/explanation/explainer/KBSupportExplainerTest.java b/integraal/integraal-explanation/src/test/java/fr/boreal/test/explanation/explainer/KBSupportExplainerTest.java index 4677161c4fe6a8ad2e19ecbf15eed9af91a78945..b9c8b0b90b71eff3baa44920df9ad724dbd7cc97 100644 --- a/integraal/integraal-explanation/src/test/java/fr/boreal/test/explanation/explainer/KBSupportExplainerTest.java +++ b/integraal/integraal-explanation/src/test/java/fr/boreal/test/explanation/explainer/KBSupportExplainerTest.java @@ -28,6 +28,46 @@ public class KBSupportExplainerTest { public void setUp() { } + @Test + public void KBSupportExplainerTestCyclic3() { + Atom query = TestData.ta; + + FactBase factBase = new SimpleInMemoryGraphStore(List.of(TestData.pa)); + RuleBase ruleBase = new RuleBaseImpl(List.of(TestData.r1,TestData.r10, TestData.r11)); + KnowledgeBase kb = new KnowledgeBaseImpl(factBase, ruleBase); + + explainer = new KBSupportExplainer(kb); + Set<KnowledgeBase> explanations = explainer.explain(query); + + FactBase expectedFactBase1 = new SimpleInMemoryGraphStore(Set.of(TestData.pa)); + RuleBase expectedRuleBase1 = new RuleBaseImpl(Set.of(TestData.r1, TestData.r10)); + KnowledgeBase expectedExpl1 = new KnowledgeBaseImpl(expectedFactBase1, expectedRuleBase1); + + Assertions.assertTrue(explanations.contains(expectedExpl1), "(Completeness issue) Explanation missing: " + expectedExpl1); + Assertions.assertEquals(1, explanations.size(), "(Soundness issue) identify non-explanation as explanation"); + } + + + @Test + public void KBSupportExplainerTestCyclic2() { + Atom query = TestData.qa; + + FactBase factBase = new SimpleInMemoryGraphStore(List.of(TestData.pa)); + RuleBase ruleBase = new RuleBaseImpl(List.of(TestData.r1,TestData.r10, TestData.r11)); + KnowledgeBase kb = new KnowledgeBaseImpl(factBase, ruleBase); + + explainer = new KBSupportExplainer(kb); + Set<KnowledgeBase> explanations = explainer.explain(query); + + FactBase expectedFactBase1 = new SimpleInMemoryGraphStore(Set.of(TestData.pa)); + RuleBase expectedRuleBase1 = new RuleBaseImpl(Set.of(TestData.r1)); + KnowledgeBase expectedExpl1 = new KnowledgeBaseImpl(expectedFactBase1, expectedRuleBase1); + + Assertions.assertTrue(explanations.contains(expectedExpl1), "(Completeness issue) Explanation missing: " + expectedExpl1); + Assertions.assertEquals(1, explanations.size(), "(Soundness issue) identify non-explanation as explanation"); + } + + @Test public void KBSupportExplainerTestCyclic1() { Atom query = TestData.qa; @@ -43,12 +83,10 @@ public class KBSupportExplainerTest { RuleBase expectedRuleBase1 = new RuleBaseImpl(Set.of(TestData.r1)); KnowledgeBase expectedExpl1 = new KnowledgeBaseImpl(expectedFactBase1, expectedRuleBase1); - System.out.println(explanations); Assertions.assertTrue(explanations.contains(expectedExpl1), "(Completeness issue) Explanation missing: " + expectedExpl1); Assertions.assertEquals(1, explanations.size(), "(Soundness issue) identify non-explanation as explanation"); } - @Test public void KBSupportExplainerTest4() { Atom query = TestData.pa; @@ -113,7 +151,6 @@ public class KBSupportExplainerTest { RuleBase expectedRuleBase = new RuleBaseImpl(Set.of(TestData.r6,TestData.r8)); KnowledgeBase expectedExpl = new KnowledgeBaseImpl(expectedFactBase, expectedRuleBase); - System.out.println(explanations); Assertions.assertTrue(explanations.contains(expectedExpl), "(Completeness issue) Explanation missing: " + expectedExpl); Assertions.assertEquals(1, explanations.size(), "(Soundness issue) identify non-explanation as explanation");