From a42661650bb135afc13693df2f13fafa4f6b9c7c Mon Sep 17 00:00:00 2001
From: Akira <akira.charoensit@inria.fr>
Date: Thu, 13 Feb 2025 22:43:46 +0100
Subject: [PATCH] - Adding more tests

---
 .../explainer/KBSupportExplainerTest.java     | 43 +++++++++++++++++--
 1 file changed, 40 insertions(+), 3 deletions(-)

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 4677161c4..b9c8b0b90 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");
 
-- 
GitLab