aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMattias EngdegÄrd2023-02-26 14:34:58 +0100
committerMattias EngdegÄrd2023-02-27 10:03:23 +0100
commit434ab2e08895bdf952de78aea285da33be63c954 (patch)
tree07a09150928f785f3eacd9fc3ea5ca824c338d42 /test
parentc640dc9ef533c1fa68cf7b29f63a3fb32e4c3b06 (diff)
downloademacs-434ab2e08895bdf952de78aea285da33be63c954.tar.gz
emacs-434ab2e08895bdf952de78aea285da33be63c954.zip
Improve delete-consecutive-dups doc precision and add test
* lisp/subr.el (delete-consecutive-dups): Document which element of each run is retained (the earliest in the list). This matters because it makes it safe to ignore the return value. * test/lisp/subr-tests.el (subr--delete-dups) (subr--delete-consecutive-dups): Add tests.
Diffstat (limited to 'test')
-rw-r--r--test/lisp/subr-tests.el34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/lisp/subr-tests.el b/test/lisp/subr-tests.el
index d5efabc1370..050ee22ac18 100644
--- a/test/lisp/subr-tests.el
+++ b/test/lisp/subr-tests.el
@@ -1171,5 +1171,39 @@ final or penultimate step during initialization."))
1171 (should-not (list-of-strings-p '("a" nil "b"))) 1171 (should-not (list-of-strings-p '("a" nil "b")))
1172 (should-not (list-of-strings-p '("a" "b" . "c")))) 1172 (should-not (list-of-strings-p '("a" "b" . "c"))))
1173 1173
1174(ert-deftest subr--delete-dups ()
1175 (should (equal (delete-dups nil) nil))
1176 (let* ((a (list "a" "b" "c"))
1177 (a-dedup (delete-dups a)))
1178 (should (equal a-dedup '("a" "b" "c")))
1179 (should (eq a a-dedup)))
1180 (let* ((a (list "a" "a" "b" "b" "a" "c" "b" "c" "a"))
1181 (a-b (cddr a)) ; link of first "b"
1182 (a-dedup (delete-dups a)))
1183 (should (equal a-dedup '("a" "b" "c")))
1184 (should (eq a a-dedup))
1185 (should (eq (cdr a-dedup) a-b))))
1186
1187(ert-deftest subr--delete-consecutive-dups ()
1188 (should (equal (delete-consecutive-dups nil) nil))
1189 (let* ((a (list "a" "b" "c"))
1190 (a-dedup (delete-consecutive-dups a)))
1191 (should (equal a-dedup '("a" "b" "c")))
1192 (should (eq a a-dedup)))
1193 (let* ((a (list "a" "a" "b" "a" "a" "b" "b" "b" "c" "c" "a" "a"))
1194 (a-b (nthcdr 3 a)) ; link of third "a"
1195 (a-dedup (delete-consecutive-dups a)))
1196 (should (equal a-dedup '("a" "b" "a" "b" "c" "a")))
1197 (should (eq a a-dedup))
1198 (should (equal (nthcdr 2 a-dedup) a-b)))
1199 (let* ((a (list "a" "b" "a"))
1200 (a-dedup (delete-consecutive-dups a t)))
1201 (should (equal a-dedup '("a" "b")))
1202 (should (eq a a-dedup)))
1203 (let* ((a (list "a" "a" "b" "a" "a" "b" "b" "b" "c" "c" "a" "a"))
1204 (a-dedup (delete-consecutive-dups a t)))
1205 (should (equal a-dedup '("a" "b" "a" "b" "c")))
1206 (should (eq a a-dedup))))
1207
1174(provide 'subr-tests) 1208(provide 'subr-tests)
1175;;; subr-tests.el ends here 1209;;; subr-tests.el ends here