diff --git a/src/test/cljs/cljs/core_test.cljs b/src/test/cljs/cljs/core_test.cljs index fca3dd11e..686a0fd72 100644 --- a/src/test/cljs/cljs/core_test.cljs +++ b/src/test/cljs/cljs/core_test.cljs @@ -408,43 +408,6 @@ (halt-when :anomaly #(assoc %2 :partial-results %1)) [1 2 {:anomaly :oh-no!} 3 4])))) -(defn seq-iter-match - [coll] - (let [i (-iterator coll)] - (loop [s (seq coll) - n 0] - (if (seq s) - (do - (when-not (.hasNext i) - (throw - (js/Error. - (str "Iterator exhausted before seq at(" n ")" )))) - (let [iv (.next i) - sv (first s)] - (when-not (= iv sv) - (throw - (js/Error. - (str "Iterator value " iv " and seq value " sv " did not match at ( " n ")"))))) - (recur (rest s) (inc n))) - (if (.hasNext i) - (throw - (js/Error. - (str "Seq exhausted before iterator at (" n ")"))) - true))))) - -(defrecord TestIterRec [a b]) - -(deftest coll-iter-seq-match - (testing "Direct iterators match sequences" - (let [test-map (apply hash-map (range 200)) - test-set (apply hash-set (range 200)) - test-queue (into cljs.core.PersistentQueue.EMPTY (vec (range 100))) - test-record (into (TestIterRec. 1 2) {:c 3 :d 4})] - (is (= true (seq-iter-match test-map))) - (is (= true (seq-iter-match test-set))) - (is (= true (seq-iter-match test-queue))) - (is (= true (seq-iter-match test-record)))))) - (deftest test-reader-literals (testing "Testing reader literals" (is (= #queue [1] (into cljs.core.PersistentQueue.EMPTY [1]))) diff --git a/src/test/cljs/cljs/iterator_test.cljs b/src/test/cljs/cljs/iterator_test.cljs new file mode 100644 index 000000000..84e9e6a4d --- /dev/null +++ b/src/test/cljs/cljs/iterator_test.cljs @@ -0,0 +1,47 @@ +; Copyright (c) Rich Hickey. All rights reserved. +; The use and distribution terms for this software are covered by the +; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php) +; which can be found in the file epl-v10.html at the root of this distribution. +; By using this software in any fashion, you are agreeing to be bound by +; the terms of this license. +; You must not remove this notice, or any other, from this software. + +(ns cljs.iterator-test + (:require [cljs.test :refer-macros [deftest testing is are run-tests]])) + +(defn seq-iter-match + [coll] + (let [i (-iterator coll)] + (loop [s (seq coll) + n 0] + (if (seq s) + (do + (when-not (.hasNext i) + (throw + (js/Error. + (str "Iterator exhausted before seq at(" n ")" )))) + (let [iv (.next i) + sv (first s)] + (when-not (= iv sv) + (throw + (js/Error. + (str "Iterator value " iv " and seq value " sv " did not match at ( " n ")"))))) + (recur (rest s) (inc n))) + (if (.hasNext i) + (throw + (js/Error. + (str "Seq exhausted before iterator at (" n ")"))) + true))))) + +(defrecord TestIterRec [a b]) + +(deftest coll-iter-seq-match + (testing "Direct iterators match sequences" + (let [test-map (apply hash-map (range 200)) + test-set (apply hash-set (range 200)) + test-queue (into cljs.core.PersistentQueue.EMPTY (vec (range 100))) + test-record (into (TestIterRec. 1 2) {:c 3 :d 4})] + (is (= true (seq-iter-match test-map))) + (is (= true (seq-iter-match test-set))) + (is (= true (seq-iter-match test-queue))) + (is (= true (seq-iter-match test-record)))))) \ No newline at end of file diff --git a/src/test/cljs/test_runner.cljs b/src/test/cljs/test_runner.cljs index 10abbdf54..7e551f9de 100644 --- a/src/test/cljs/test_runner.cljs +++ b/src/test/cljs/test_runner.cljs @@ -19,6 +19,7 @@ [cljs.core-test :as core-test] [cljs.chunked-seq] [cljs.interop-test] + [cljs.iterator-test] [cljs.reader-test] [cljs.binding-test] [cljs.parse-test] @@ -81,6 +82,7 @@ 'cljs.core-test 'cljs.chunked-seq 'cljs.interop-test + 'cljs.iterator-test 'cljs.reader-test 'cljs.parse-test 'clojure.set-test