[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] stream 8c111a8: Allow negative steps in stream-range
From: |
Nicolas Petton |
Subject: |
[Emacs-diffs] stream 8c111a8: Allow negative steps in stream-range |
Date: |
Mon, 10 Aug 2015 12:54:11 +0000 |
branch: stream
commit 8c111a86bcd310df347822552969444e5b48dc45
Author: Nicolas Petton <address@hidden>
Commit: Nicolas Petton <address@hidden>
Allow negative steps in stream-range
* lisp/emacs-lisp/stream.el (stream-range): Do not signal an error if
the step is negative.
* test/automated/stream-tests.el (stream-range-test): Add a regression
test for negative steps in stream-range.
---
lisp/emacs-lisp/stream.el | 8 +++-----
test/automated/stream-tests.el | 4 ++--
2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/lisp/emacs-lisp/stream.el b/lisp/emacs-lisp/stream.el
index 0cf3e93..eed436a 100644
--- a/lisp/emacs-lisp/stream.el
+++ b/lisp/emacs-lisp/stream.el
@@ -183,13 +183,11 @@ If START is nil, it defaults to 0. If STEP is nil, it
defaults to
range is infinite."
(unless start (setq start 0))
(unless step (setq step 1))
- (cond
- ((equal start end) (stream-empty))
- ((and end (> start end)) (error "Invalid range boundaries"))
- (t
+ (if (equal start end)
+ (stream-empty)
(stream-cons
start
- (stream-range (+ start step) end step)))))
+ (stream-range (+ start step) end step))))
(defun stream-seq (seq)
"Return a stream built from the sequence SEQ.
diff --git a/test/automated/stream-tests.el b/test/automated/stream-tests.el
index a763410..59a0770 100644
--- a/test/automated/stream-tests.el
+++ b/test/automated/stream-tests.el
@@ -103,11 +103,11 @@
(ert-deftest stream-range-test ()
(should (stream-empty-p (stream-range 0 0)))
(should (stream-empty-p (stream-range 3 3)))
- (should-error (stream-range 3 2))
(should (= 0 (stream-first (stream-range 0 6 2))))
(should (= 2 (stream-first (stream-rest (stream-range 0 6 2)))))
(should (= 4 (stream-first (stream-rest (stream-rest (stream-range 0 6
2))))))
- (should (stream-empty-p (stream-rest (stream-rest (stream-rest (stream-range
0 6 2)))))))
+ (should (stream-empty-p (stream-rest (stream-rest (stream-rest (stream-range
0 6 2))))))
+ (should (= -4 (stream-first (stream-rest (stream-rest (stream-range 0 nil
-2)))))))
(ert-deftest stream-list-test ()
(dolist (list '(nil '(1 2 3) '(a . b)))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] stream 8c111a8: Allow negative steps in stream-range,
Nicolas Petton <=