verify that filterer maintains sequence types to the same degree that ALL does

This commit is contained in:
Nathan Marz 2016-04-20 23:32:10 -04:00
parent 6894578569
commit 2cbb49de48

View file

@ -124,13 +124,15 @@
(defspec transform-filterer-all-equivalency (defspec transform-filterer-all-equivalency
(prop/for-all (prop/for-all
[v (gen/vector gen/int) [s (gen/vector gen/int)
target-type (gen/elements ['() []])
pred (gen/elements [even? odd?]) pred (gen/elements [even? odd?])
updater (gen/elements [inc dec])] updater (gen/elements [inc dec])]
(let [v2 (s/transform [(s/filterer pred) s/ALL] updater v) (let [v (into target-type s)
v2 (s/transform [(s/filterer pred) s/ALL] updater v)
v3 (s/transform [s/ALL pred] updater v)] v3 (s/transform [s/ALL pred] updater v)]
(= v2 v3)) (and (= v2 v3) (= (type v2) (type v3)))
)) )))
(defspec transform-with-context (defspec transform-with-context
(for-all+ (for-all+