Skip to content

Commit ce033a1

Browse files
devnstuarthalloway
authored andcommitted
CLJ-1709 Fixes bug in count and contents of LongRange with step != 1
Signed-off-by: Stuart Halloway <[email protected]>
1 parent 7c45fe6 commit ce033a1

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

src/jvm/clojure/lang/LongRange.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,9 @@ public ISeq chunkedMore() {
156156
}
157157

158158
public int absCount(long start, long end, long step) {
159-
double c = (end - start) / step;
159+
double c = (double) (end - start) / step;
160160
int ic = (int) c;
161-
if(c < ic)
161+
if(c > ic)
162162
return ic + 1;
163163
else
164164
return ic;

test/clojure/test_clojure/sequences.clj

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,10 @@
1010
; Contributors: Stuart Halloway
1111

1212
(ns clojure.test-clojure.sequences
13-
(:use clojure.test)
13+
(:require [clojure.test :refer :all]
14+
[clojure.test.check.generators :as gen]
15+
[clojure.test.check.properties :as prop]
16+
[clojure.test.check.clojure-test :refer (defspec)])
1417
(:import clojure.lang.IReduce))
1518

1619
;; *** Tests ***
@@ -973,6 +976,12 @@
973976
{} {:a 1 :b 2}
974977
#{} #{1 2} ))
975978

979+
(defspec longrange-equals-range 100
980+
(prop/for-all [start gen/int
981+
end gen/int
982+
step gen/s-pos-int]
983+
(= (clojure.lang.Range/create start end step)
984+
(clojure.lang.LongRange/create start end step))))
976985

977986
(deftest test-range
978987
(are [x y] (= x y)

0 commit comments

Comments
 (0)