Skip to content

Commit 1d76fc3

Browse files
committed
fix keep-indexed transducer and add tests
1 parent d92c6f8 commit 1d76fc3

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

pixie/stdlib.pxi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1762,7 +1762,7 @@ not enough elements were present."
17621762
([f]
17631763
(fn [rf]
17641764
(let [iv (atom -1)
1765-
rrf (preserving-reduced)]
1765+
rrf (preserving-reduced rf)]
17661766
(fn
17671767
([] (rf))
17681768
([result] (rf result))

tests/pixie/tests/test-stdlib.pxi

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,15 @@
2222
(t/deftest test-indexed
2323
(t/assert= (map-indexed (fn [& xs] xs) []) [])
2424
(t/assert= (map-indexed (fn [& xs] xs) [:a :b]) [[0 :a] [1 :b]])
25-
(t/assert= (transduce (map-indexed (fn [& xs] xs)) conj [:a :b]) [[0 :a] [1 :b]]))
25+
(t/assert= (transduce (map-indexed (fn [& xs] xs)) conj [:a :b]) [[0 :a] [1 :b]])
26+
27+
(t/assert= (keep-indexed (constantly true) []) [])
28+
(t/assert= (keep-indexed (constantly nil) []) [])
29+
(t/assert= (keep-indexed (fn [i x] [i x]) [:a :b]) [[0 :a] [1 :b]])
30+
31+
(t/assert= (transduce (keep-indexed (constantly true)) conj []) [])
32+
(t/assert= (transduce (keep-indexed (constantly nil)) conj []) [])
33+
(t/assert= (transduce (keep-indexed (fn [i x] [i x])) conj [:a :b]) [[0 :a] [1 :b]]))
2634

2735
(t/deftest test-reductions
2836
(t/assert= (reductions + nil)

0 commit comments

Comments
 (0)