summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/jvm/clojure/lang/PersistentQueue.java4
-rw-r--r--test/clojure/test_clojure/data_structures.clj20
2 files changed, 22 insertions, 2 deletions
diff --git a/src/jvm/clojure/lang/PersistentQueue.java b/src/jvm/clojure/lang/PersistentQueue.java
index 655b3e41..fb7781c3 100644
--- a/src/jvm/clojure/lang/PersistentQueue.java
+++ b/src/jvm/clojure/lang/PersistentQueue.java
@@ -47,7 +47,7 @@ public boolean equiv(Object obj){
if(ms == null || !Util.equiv(s.first(), ms.first()))
return false;
}
- return ms.next() == null;
+ return ms == null;
}
@@ -61,7 +61,7 @@ public boolean equals(Object obj){
if(ms == null || !Util.equals(s.first(), ms.first()))
return false;
}
- return ms.next() == null;
+ return ms == null;
}
diff --git a/test/clojure/test_clojure/data_structures.clj b/test/clojure/test_clojure/data_structures.clj
index 330bbed4..690bde4e 100644
--- a/test/clojure/test_clojure/data_structures.clj
+++ b/test/clojure/test_clojure/data_structures.clj
@@ -774,3 +774,23 @@
(disj #{#{nil}} #{nil}) #{} ))
+;; *** Queues ***
+
+(deftest test-queues
+ (let [EMPTY clojure.lang.PersistentQueue/EMPTY]
+ (are [x y] (= x y)
+ EMPTY EMPTY
+ (into EMPTY (range 50)) (into EMPTY (range 50))
+ (range 5) (into EMPTY (range 5))
+ (range 1 6) (-> EMPTY
+ (into (range 6))
+ pop))
+ (are [x y] (not= x y)
+ (range 5) (into EMPTY (range 6))
+ (range 6) (into EMPTY (range 5))
+ (range 0 6) (-> EMPTY
+ (into (range 6))
+ pop)
+ (range 1 6) (-> EMPTY
+ (into (range 7))
+ pop))))