test for traverse + make it work in cljs
This commit is contained in:
parent
66d1ce65f3
commit
a687f4a0bc
2 changed files with 20 additions and 6 deletions
|
|
@ -684,10 +684,12 @@
|
||||||
))
|
))
|
||||||
|
|
||||||
(defn do-compiled-traverse [apath structure]
|
(defn do-compiled-traverse [apath structure]
|
||||||
(reify clojure.lang.IReduce
|
(reify #+clj clojure.lang.IReduce #+cljs cljs.core/IReduce
|
||||||
(reduce [this afn]
|
(#+clj reduce #+cljs -reduce
|
||||||
(.reduce this afn (afn)))
|
[this afn]
|
||||||
(reduce [this afn start]
|
(#+clj .reduce #+cljs -reduce this afn (afn)))
|
||||||
|
(#+clj reduce #+cljs -reduce
|
||||||
|
[this afn start]
|
||||||
(let [cell (mutable-cell start)]
|
(let [cell (mutable-cell start)]
|
||||||
(compiled-traverse*
|
(compiled-traverse*
|
||||||
apath
|
apath
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
:refer [paramsfn defprotocolpath defnav extend-protocolpath
|
:refer [paramsfn defprotocolpath defnav extend-protocolpath
|
||||||
nav declarepath providepath select select-one select-one!
|
nav declarepath providepath select select-one select-one!
|
||||||
select-first transform setval replace-in defnavconstructor
|
select-first transform setval replace-in defnavconstructor
|
||||||
select-any selected-any? collected?]])
|
select-any selected-any? collected? traverse]])
|
||||||
(:use
|
(:use
|
||||||
#+clj [clojure.test :only [deftest is]]
|
#+clj [clojure.test :only [deftest is]]
|
||||||
#+clj [clojure.test.check.clojure-test :only [defspec]]
|
#+clj [clojure.test.check.clojure-test :only [defspec]]
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
:only [paramsfn defprotocolpath defnav extend-protocolpath
|
:only [paramsfn defprotocolpath defnav extend-protocolpath
|
||||||
nav declarepath providepath select select-one select-one!
|
nav declarepath providepath select select-one select-one!
|
||||||
select-first transform setval replace-in defnavconstructor
|
select-first transform setval replace-in defnavconstructor
|
||||||
select-any selected-any? collected?]]
|
select-any selected-any? collected? traverse]]
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -1256,3 +1256,15 @@
|
||||||
inc
|
inc
|
||||||
data)
|
data)
|
||||||
))))
|
))))
|
||||||
|
|
||||||
|
(defspec traverse-test
|
||||||
|
(for-all+
|
||||||
|
[v (gen/vector gen/int)
|
||||||
|
p (gen/elements [odd? even?])
|
||||||
|
i gen/int]
|
||||||
|
(and
|
||||||
|
(= (reduce + (traverse [s/ALL p] v))
|
||||||
|
(reduce + (filter p v)))
|
||||||
|
(= (reduce + i (traverse [s/ALL p] v))
|
||||||
|
(reduce + i (filter p v)))
|
||||||
|
)))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue