aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'src/clojure/contrib')
-rw-r--r--src/clojure/contrib/datalog/example.clj3
-rw-r--r--src/clojure/contrib/datalog/tests/test_softstrat.clj19
2 files changed, 22 insertions, 0 deletions
diff --git a/src/clojure/contrib/datalog/example.clj b/src/clojure/contrib/datalog/example.clj
index 31a7ddaf..88fcf961 100644
--- a/src/clojure/contrib/datalog/example.clj
+++ b/src/clojure/contrib/datalog/example.clj
@@ -109,5 +109,8 @@
(def wp-3 (build-work-plan rules (?- :bj :name '??name :boss ?x)))
(run-work-plan wp-3 db {'??name "Albert"})
+(def wp-4 (build-work-plan rules (?- :works-for :employee ?x :boss ?y)))
+(run-work-plan wp-4 db {})
+
;; End of file
diff --git a/src/clojure/contrib/datalog/tests/test_softstrat.clj b/src/clojure/contrib/datalog/tests/test_softstrat.clj
index 4132c102..d17cef8b 100644
--- a/src/clojure/contrib/datalog/tests/test_softstrat.clj
+++ b/src/clojure/contrib/datalog/tests/test_softstrat.clj
@@ -206,6 +206,25 @@
(is (= (evaluate-3 "Albert")
#{{:name "Albert", :boss "Sameer"}})))
+(def ws-4 (build-soft-strat-work-plan rules (?- :works-for :name ?x :boss ?x)))
+
+(deftest test-ws-4
+ (is (= (set (evaluate-soft-work-set ws-4 db {}))
+ #{{:employee "Miki", :boss "Bob"}
+ {:employee "Albert", :boss "Li"}
+ {:employee "Lilian", :boss "Sameer"}
+ {:employee "Li", :boss "Bob"}
+ {:employee "Lilian", :boss "Bob"}
+ {:employee "Brenda", :boss "Fred"}
+ {:employee "Fred", :boss "Bob"}
+ {:employee "John", :boss "Bob"}
+ {:employee "John", :boss "Mary"}
+ {:employee "Albert", :boss "Sameer"}
+ {:employee "Sameer", :boss "Bob"}
+ {:employee "Albert", :boss "Bob"}
+ {:employee "Brenda", :boss "Bob"}
+ {:employee "Mary", :boss "Bob"}
+ {:employee "Li", :boss "Sameer"}})))
(comment
(run-tests)