diff options
| author | Allen Li | 2018-10-24 20:44:01 -0600 |
|---|---|---|
| committer | Eli Zaretskii | 2018-11-10 11:41:51 +0200 |
| commit | 5578112e182e20661783a1fef2c779b8844cf082 (patch) | |
| tree | f7ab48c6949bf6b0598ed705578a4cacae554207 /test | |
| parent | 705adc237629a78c10165f9a3b3260cb56242cda (diff) | |
| download | emacs-5578112e182e20661783a1fef2c779b8844cf082.tar.gz emacs-5578112e182e20661783a1fef2c779b8844cf082.zip | |
Add 'ring-resize' function
* lisp/emacs-lisp/ring.el (ring-resize): New function. (Bug#32849)
* doc/lispref/sequences.texi (Rings): Document new function 'ring-resize'.
* etc/NEWS: Document new function 'ring-resize'.
* test/lisp/emacs-lisp/ring-tests.el (ring-test-ring-resize): New tests.
Diffstat (limited to 'test')
| -rw-r--r-- | test/lisp/emacs-lisp/ring-tests.el | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/lisp/emacs-lisp/ring-tests.el b/test/lisp/emacs-lisp/ring-tests.el index 0b4e3d9a694..9fa36aa3d33 100644 --- a/test/lisp/emacs-lisp/ring-tests.el +++ b/test/lisp/emacs-lisp/ring-tests.el | |||
| @@ -162,6 +162,43 @@ | |||
| 162 | (should (= (ring-size ring) 5)) | 162 | (should (= (ring-size ring) 5)) |
| 163 | (should (equal (ring-elements ring) '(3 2 1))))) | 163 | (should (equal (ring-elements ring) '(3 2 1))))) |
| 164 | 164 | ||
| 165 | (ert-deftest ring-resize/grow () | ||
| 166 | (let ((ring (make-ring 3))) | ||
| 167 | (ring-insert ring 1) | ||
| 168 | (ring-insert ring 2) | ||
| 169 | (ring-insert ring 3) | ||
| 170 | (ring-resize ring 5) | ||
| 171 | (should (= (ring-size ring) 5)) | ||
| 172 | (should (equal (ring-elements ring) '(3 2 1))))) | ||
| 173 | |||
| 174 | (ert-deftest ring-resize/grow-empty () | ||
| 175 | (let ((ring (make-ring 3))) | ||
| 176 | (ring-resize ring 5) | ||
| 177 | (should (= (ring-size ring) 5)) | ||
| 178 | (should (equal (ring-elements ring) '())))) | ||
| 179 | |||
| 180 | (ert-deftest ring-resize/grow-wrapped-ring () | ||
| 181 | (let ((ring (make-ring 3))) | ||
| 182 | (ring-insert ring 1) | ||
| 183 | (ring-insert ring 2) | ||
| 184 | (ring-insert ring 3) | ||
| 185 | (ring-insert ring 4) | ||
| 186 | (ring-insert ring 5) | ||
| 187 | (ring-resize ring 5) | ||
| 188 | (should (= (ring-size ring) 5)) | ||
| 189 | (should (equal (ring-elements ring) '(5 4 3))))) | ||
| 190 | |||
| 191 | (ert-deftest ring-resize/shrink () | ||
| 192 | (let ((ring (make-ring 5))) | ||
| 193 | (ring-insert ring 1) | ||
| 194 | (ring-insert ring 2) | ||
| 195 | (ring-insert ring 3) | ||
| 196 | (ring-insert ring 4) | ||
| 197 | (ring-insert ring 5) | ||
| 198 | (ring-resize ring 3) | ||
| 199 | (should (= (ring-size ring) 3)) | ||
| 200 | (should (equal (ring-elements ring) '(5 4 3))))) | ||
| 201 | |||
| 165 | (ert-deftest ring-tests-insert () | 202 | (ert-deftest ring-tests-insert () |
| 166 | (let ((ring (make-ring 2))) | 203 | (let ((ring (make-ring 2))) |
| 167 | (ring-insert+extend ring :a) | 204 | (ring-insert+extend ring :a) |