File tree Expand file tree Collapse file tree 2 files changed +13
-7
lines changed
language-adaptors/rxjava-clojure/src
main/clojure/rx/lang/clojure
test/clojure/rx/lang/clojure Expand file tree Collapse file tree 2 files changed +13
-7
lines changed Original file line number Diff line number Diff line change 554
554
clojure.core/into
555
555
rx.Observable/toList
556
556
"
557
- [to ^Observable from-observable]
558
- (->> from-observable
559
- .toList
560
- (map (partial clojure.core/into to))))
557
+ [to ^Observable from]
558
+ ; clojure.core/into uses transients if to is IEditableCollection
559
+ ; I don't think we have any guarantee that all on-next calls will be on the
560
+ ; same thread, so we can't do that here.
561
+ (reduce conj to from))
561
562
562
563
(defn keep
563
564
[f xs]
Original file line number Diff line number Diff line change 115
115
sleepy-o #(f/future-generator f/default-runner [o]
116
116
(doseq [x %]
117
117
(Thread/sleep 10 )
118
- (rx/on-next o x)))
118
+ (rx/on-next o x)))
119
119
make-inputs (fn [] (mapv sleepy-o expected-result))
120
120
make-output (fn [r] [(keep #{1 3 5 } r)
121
121
(keep #{2 4 6 } r)])]
338
338
(b/into [] (rx/interpose \, (rx/seq->o [1 2 3 ]))))))
339
339
340
340
(deftest test-into
341
- (is (= (into [6 7 8 ] [9 10 [11 ]])
342
- (b/first (rx/into [6 7 8 ] (rx/seq->o [9 10 [11 ]]))))))
341
+ (are [input to] (= (into to input)
342
+ (b/single (rx/into to (rx/seq->o input))))
343
+ [6 7 8 ] [9 10 [11 ]]
344
+ #{} [1 2 3 2 4 5 ]
345
+ {} [[1 2 ] [3 2 ] [4 5 ]]
346
+ {} []
347
+ '() (range 50 )))
343
348
344
349
(deftest test-keep
345
350
(is (= (into [] (keep identity [true true false ]))
You can’t perform that action at this time.
0 commit comments