aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFrantisek Sodomka <fsodomka@gmail.com>2009-03-04 13:33:09 +0000
committerFrantisek Sodomka <fsodomka@gmail.com>2009-03-04 13:33:09 +0000
commit705dfa54b8ff577223d9a60364dec8f713230a13 (patch)
treee9a2ae2540b788cfe820e562cca0178b445d0fe1 /src
parent2f8147619f6092939c742176adaa6e3dd47fb188 (diff)
test predicates: update for lazy-seq;
test sequences: equality, lazy-seq, update seq & reverse
Diffstat (limited to 'src')
-rw-r--r--src/clojure/contrib/test_clojure/predicates.clj20
-rw-r--r--src/clojure/contrib/test_clojure/sequences.clj44
2 files changed, 56 insertions, 8 deletions
diff --git a/src/clojure/contrib/test_clojure/predicates.clj b/src/clojure/contrib/test_clojure/predicates.clj
index fc7b41db..0206860d 100644
--- a/src/clojure/contrib/test_clojure/predicates.clj
+++ b/src/clojure/contrib/test_clojure/predicates.clj
@@ -40,6 +40,7 @@
:empty-string ""
:empty-regex #""
:empty-list ()
+ :empty-lazy-seq (lazy-seq nil)
:empty-vector []
:empty-map {}
:empty-set #{}
@@ -48,6 +49,7 @@
:string "abc"
:regex #"a*b"
:list '(1 2 3)
+ :lazy-seq (lazy-seq [1 2 3])
:vector [1 2 3]
:map {:a 1 :b 2 :c 3}
:set #{1 2 3}
@@ -84,17 +86,19 @@
string? [:empty-string :string]
; regex?
- list? [:empty-list :list]
+ list? [:empty-list :list]
vector? [:empty-vector :vector]
- map? [:empty-map :map]
- set? [:empty-set :set]
+ map? [:empty-map :map]
+ set? [:empty-set :set]
- coll? [:empty-list :list
- :empty-vector :vector
- :empty-map :map
- :empty-set :set]
+ coll? [:empty-list :list
+ :empty-lazy-seq :lazy-seq
+ :empty-vector :vector
+ :empty-map :map
+ :empty-set :set]
- seq? [:empty-list :list]
+ seq? [:empty-list :list
+ :empty-lazy-seq :lazy-seq]
; array?
fn? [:fn]
diff --git a/src/clojure/contrib/test_clojure/sequences.clj b/src/clojure/contrib/test_clojure/sequences.clj
index 154c2f6e..2f7d34d5 100644
--- a/src/clojure/contrib/test_clojure/sequences.clj
+++ b/src/clojure/contrib/test_clojure/sequences.clj
@@ -18,7 +18,50 @@
;; *** Tests ***
+(deftest test-equality
+ ; lazy sequences
+ (are (= _1 _2)
+ ; fixed SVN 1288 - LazySeq and EmptyList equals/equiv
+ ; http://groups.google.com/group/clojure/browse_frm/thread/286d807be9cae2a5#
+ (map inc nil) ()
+ (map inc ()) ()
+ (map inc []) ()
+ (map inc #{}) ()
+ (map inc {}) () ))
+
+
+(deftest test-lazy-seq
+ (are (seq? _)
+ (lazy-seq nil)
+ (lazy-seq [])
+ (lazy-seq [1 2]))
+
+ ; SVN 1292: fixed (= (lazy-seq nil) nil)
+ (is (not= (lazy-seq nil) nil))
+
+ (are (= _1 _2)
+ (lazy-seq nil) ()
+ (lazy-seq [nil]) '(nil)
+
+ (lazy-seq ()) ()
+ (lazy-seq []) ()
+ (lazy-seq #{}) ()
+ (lazy-seq {}) ()
+ (lazy-seq "") ()
+ (lazy-seq (into-array [])) ()
+
+ (lazy-seq (list 1 2)) '(1 2)
+ (lazy-seq [1 2]) '(1 2)
+ (lazy-seq (sorted-set 1 2)) '(1 2)
+ (lazy-seq (sorted-map :a 1 :b 2)) '([:a 1] [:b 2])
+ (lazy-seq "abc") '(\a \b \c)
+ (lazy-seq (into-array [1 2])) '(1 2) ))
+
+
(deftest test-seq
+ (is (not (seq? (seq []))))
+ (is (seq? (seq [1 2])))
+
(are (= _1 _2)
(seq nil) nil
(seq [nil]) '(nil)
@@ -563,6 +606,7 @@
(deftest test-reverse
(are (= _1 _2)
+ (reverse nil) () ; since SVN 1294
(reverse []) ()
(reverse [1]) '(1)
(reverse [1 2 3]) '(3 2 1) ))