summaryrefslogtreecommitdiff
path: root/test/lisp/emacs-lisp
diff options
context:
space:
mode:
Diffstat (limited to 'test/lisp/emacs-lisp')
-rw-r--r--test/lisp/emacs-lisp/cl-extra-tests.el59
1 files changed, 59 insertions, 0 deletions
diff --git a/test/lisp/emacs-lisp/cl-extra-tests.el b/test/lisp/emacs-lisp/cl-extra-tests.el
index 3e2388acc6f..5b2371e7b95 100644
--- a/test/lisp/emacs-lisp/cl-extra-tests.el
+++ b/test/lisp/emacs-lisp/cl-extra-tests.el
@@ -35,4 +35,63 @@
(should (eq (cl-getf plist 'y :none) nil))
(should (eq (cl-getf plist 'z :none) :none))))
+(ert-deftest cl-extra-test-mapc ()
+ (let ((lst '(a b c))
+ (lst2 '(d e f))
+ (lst3 '(1 2 3))
+ (fn1 (lambda (_x) nil))
+ (fn2 (lambda (_x _y) nil))
+ (fn3 (lambda (_x _y _z) nil)))
+ (should (equal lst (cl-mapc fn1 lst)))
+ (should (equal lst (cl-mapc fn2 lst lst2)))
+ (should (equal lst (cl-mapc fn3 lst lst2 lst3)))))
+
+(ert-deftest cl-extra-test-mapl ()
+ (let ((lst '(a b c))
+ (lst2 '(d e f))
+ (lst3 '(1 2 3))
+ (fn1 (lambda (x) (should (consp x))))
+ (fn2 (lambda (x y) (should (and (consp x) (consp y)))))
+ (fn3 (lambda (x y z) (should (and (consp x) (consp y) (consp z))))))
+ (should (equal lst (cl-mapl fn1 lst)))
+ (should (equal lst (cl-mapl fn2 lst lst2)))
+ (should (equal lst (cl-mapl fn3 lst lst2 lst3)))))
+
+(ert-deftest cl-extra-test-mapcar ()
+ (let ((lst '(a b c))
+ (lst2 '(d e f))
+ (lst3 '(1 2 3))
+ (fn1 (lambda (x) x))
+ (fn2 (lambda (_x y) y))
+ (fn3 (lambda (_x _y z) z)))
+ (should (equal lst (cl-mapcar fn1 lst)))
+ (should (equal lst2 (cl-mapcar fn2 lst lst2)))
+ (should (equal lst3 (cl-mapcar fn3 lst lst2 lst3)))))
+
+(ert-deftest cl-extra-test-map ()
+ (let ((lst '(a b c))
+ (lst2 '(d e f))
+ (lst3 '(1 2 3))
+ (fn1 (lambda (x) x))
+ (fn2 (lambda (_x y) y))
+ (fn3 (lambda (x _y _z) (string-to-char (format "%S" x)))))
+ (should (equal lst (cl-map 'list fn1 lst)))
+ (should (equal (vconcat lst2) (cl-map 'vector fn2 lst lst2)))
+ (should (equal (mapconcat (lambda (x) (format "%S" x)) lst "")
+ (cl-map 'string fn3 lst lst2 lst3)))))
+
+(ert-deftest cl-extra-test-maplist ()
+ (let ((lst '(a b c))
+ (lst2 '(d e f))
+ (lst3 '(1 2 3))
+ (fn1 (lambda (x) (should (consp x)) x))
+ (fn2 (lambda (x y) (should (and (consp x) (consp y))) y))
+ (fn3 (lambda (x y z) (should (and (consp x) (consp y) (consp z))) z)))
+ (should (equal (list lst (cdr lst) (cddr lst))
+ (cl-maplist fn1 lst)))
+ (should (equal (list lst2 (cdr lst2) (cddr lst2))
+ (cl-maplist fn2 lst lst2)))
+ (should (equal (list lst3 (cdr lst3) (cddr lst3))
+ (cl-maplist fn3 lst lst2 lst3)))))
+
;;; cl-extra-tests.el ends here