diff options
Diffstat (limited to 'src/clojure/contrib')
-rw-r--r-- | src/clojure/contrib/datalog/example.clj | 3 | ||||
-rw-r--r-- | src/clojure/contrib/datalog/tests/test_softstrat.clj | 19 |
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) |