parameterized multi-path test
This commit is contained in:
parent
9a4a0cb26c
commit
5aa3bc5da2
1 changed files with 33 additions and 1 deletions
|
|
@ -489,5 +489,37 @@
|
|||
))
|
||||
))
|
||||
|
||||
;; TODO: test multi-path with params
|
||||
(defspec param-multi-path-test
|
||||
(for-all+
|
||||
[k1 gen/keyword
|
||||
k2 gen/keyword
|
||||
k3 gen/keyword
|
||||
m (limit-size 5
|
||||
(gen-map-with-keys
|
||||
gen/keyword
|
||||
gen/int
|
||||
k1
|
||||
k2
|
||||
k3
|
||||
))
|
||||
pred1 (gen/elements [odd? even?])
|
||||
pred2 (gen/elements [odd? even?])
|
||||
updater (gen/elements [inc dec])
|
||||
]
|
||||
(let [paths [((s/multi-path [s/keypath pred1] [s/keypath pred2] k3) k1 k2)
|
||||
((s/multi-path [k1 pred1] [s/keypath pred2] s/keypath) k2 k3)
|
||||
((s/multi-path [s/keypath pred1] [s/keypath pred2] s/keypath) k1 k2 k3)
|
||||
(s/multi-path [k1 pred1] [k2 pred2] k3)
|
||||
((s/multi-path [k1 pred1] [s/keypath pred2] k3) k2)
|
||||
]]
|
||||
(and
|
||||
(apply =
|
||||
(for [p paths]
|
||||
(s/select p m)
|
||||
))
|
||||
(apply =
|
||||
(for [p paths]
|
||||
(s/transform p updater m)
|
||||
))
|
||||
))))
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue