From d76142e4481f0bb40ca2dba7cc908f6db2b19b8c Mon Sep 17 00:00:00 2001 From: Nathan Marz Date: Sat, 10 Oct 2015 12:14:20 -0400 Subject: [PATCH] add subset test --- test/com/rpl/specter/core_test.cljx | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/test/com/rpl/specter/core_test.cljx b/test/com/rpl/specter/core_test.cljx index 4adb0f6..8d45cc1 100644 --- a/test/com/rpl/specter/core_test.cljx +++ b/test/com/rpl/specter/core_test.cljx @@ -17,7 +17,8 @@ #+cljs [cljs.test.check :as tc] #+cljs [cljs.test.check.generators :as gen] #+cljs [cljs.test.check.properties :as prop :include-macros true] - [com.rpl.specter :as s])) + [com.rpl.specter :as s] + [clojure.set :as set])) ;;TODO: ;; test walk, codewalk @@ -538,6 +539,24 @@ (s/transform [s/ALL #(comparator % val)] op v))) )) +(defspec subset-test + (for-all+ + [s1 (gen/vector (limit-size 5 gen/keyword)) + s2 (gen/vector (limit-size 5 gen/keyword)) + s3 (gen/vector (limit-size 5 gen/int)) + s4 (gen/vector (limit-size 5 gen/keyword))] + (let [s1 (set s1) + s2 (set s1) + s3 (set s1) + s4 (set s1) + combined (set/union s1 s2) + ss (set/union s2 s3)] + (and + (= (s/transform (s/subset s3) identity combined) combined) + (= (s/setval (s/subset s3) #{} combined) (set/difference combined s2)) + (= (s/setval (s/subset s3) s4 combined) (-> combined (set/difference s2) (set/union s4))) + )))) + #+clj (deftest large-params-test (let [path (apply s/comp-paths (repeat 25 s/keypath))