Commit 778de727 authored by Przemyslaw Wojnowski's avatar Przemyslaw Wojnowski Committed by Stefan Monnier

* test/automated/cl-lib-tests.el: Add tests for plusp, second, ...

(cl-lib-test-plusp, cl-lib-test-minusp)
(cl-lib-test-oddp, cl-lib-test-evenp, cl-lib-test-first)
(cl-lib-test-second, cl-lib-test-third, cl-lib-test-fourth)
(cl-lib-test-fifth, cl-lib-test-sixth, cl-lib-test-seventh)
(cl-lib-test-eighth, cl-lib-test-ninth, cl-lib-test-tenth)
(cl-lib-test-endp, cl-lib-test-nth-value)
(cl-lib-nth-value-test-multiple-values, cl-test-caaar, cl-test-caadr)
(cl-test-ldiff): New tests.
(cl-digit-char-p): Tighten the test.
parent ff032662
2015-03-10 Przemyslaw Wojnowski <esperanto@cumego.com>
* automated/cl-lib-tests.el: Add tests for plusp, second, ...
(cl-lib-test-plusp, cl-lib-test-minusp)
(cl-lib-test-oddp, cl-lib-test-evenp, cl-lib-test-first)
(cl-lib-test-second, cl-lib-test-third, cl-lib-test-fourth)
(cl-lib-test-fifth, cl-lib-test-sixth, cl-lib-test-seventh)
(cl-lib-test-eighth, cl-lib-test-ninth, cl-lib-test-tenth)
(cl-lib-test-endp, cl-lib-test-nth-value)
(cl-lib-nth-value-test-multiple-values, cl-test-caaar, cl-test-caadr)
(cl-test-ldiff): New tests.
(cl-digit-char-p): Tighten the test.
2015-03-09 Dmitry Gutov <dgutov@yandex.ru>
* indent/Makefile: Call 'rm' with '-f'. Default EMACS to
......
......@@ -223,13 +223,192 @@
(should (= (cl-the integer (cl-incf side-effect)) 1))
(should (= side-effect 1))))
(ert-deftest cl-lib-test-plusp ()
(should-not (cl-plusp -1.0e+INF))
(should-not (cl-plusp -1.5e2))
(should-not (cl-plusp -3.14))
(should-not (cl-plusp -1))
(should-not (cl-plusp -0.0))
(should-not (cl-plusp 0))
(should-not (cl-plusp 0.0))
(should-not (cl-plusp -0.0e+NaN))
(should-not (cl-plusp 0.0e+NaN))
(should (cl-plusp 1))
(should (cl-plusp 3.14))
(should (cl-plusp 1.5e2))
(should (cl-plusp 1.0e+INF))
(should-error (cl-plusp "42") :type 'wrong-type-argument))
(ert-deftest cl-lib-test-minusp ()
(should (cl-minusp -1.0e+INF))
(should (cl-minusp -1.5e2))
(should (cl-minusp -3.14))
(should (cl-minusp -1))
(should-not (cl-minusp -0.0))
(should-not (cl-minusp 0))
(should-not (cl-minusp 0.0))
(should-not (cl-minusp -0.0e+NaN))
(should-not (cl-minusp 0.0e+NaN))
(should-not (cl-minusp 1))
(should-not (cl-minusp 3.14))
(should-not (cl-minusp 1.5e2))
(should-not (cl-minusp 1.0e+INF))
(should-error (cl-minusp "-42") :type 'wrong-type-argument))
(ert-deftest cl-lib-test-oddp ()
(should (cl-oddp -3))
(should (cl-oddp 3))
(should-not (cl-oddp -2))
(should-not (cl-oddp 0))
(should-not (cl-oddp 2))
(should-error (cl-oddp 3.0e+NaN) :type 'wrong-type-argument)
(should-error (cl-oddp 3.0) :type 'wrong-type-argument)
(should-error (cl-oddp "3") :type 'wrong-type-argument))
(ert-deftest cl-lib-test-evenp ()
(should (cl-evenp -2))
(should (cl-evenp 0))
(should (cl-evenp 2))
(should-not (cl-evenp -3))
(should-not (cl-evenp 3))
(should-error (cl-evenp 2.0e+NaN) :type 'wrong-type-argument)
(should-error (cl-evenp 2.0) :type 'wrong-type-argument)
(should-error (cl-evenp "2") :type 'wrong-type-argument))
(ert-deftest cl-digit-char-p ()
(should (cl-digit-char-p ?3))
(should (cl-digit-char-p ?a 11))
(should (eql 3 (cl-digit-char-p ?3)))
(should (eql 10 (cl-digit-char-p ?a 11)))
(should (eql 10 (cl-digit-char-p ?A 11)))
(should-not (cl-digit-char-p ?a))
(should (cl-digit-char-p ?w 36))
(should-error (cl-digit-char-p ?a 37))
(should-error (cl-digit-char-p ?a 1)))
(should (eql 32 (cl-digit-char-p ?w 36)))
(should-error (cl-digit-char-p ?a 37) :type 'args-out-of-range)
(should-error (cl-digit-char-p ?a 1) :type 'args-out-of-range))
(ert-deftest cl-lib-test-first ()
(should (null (cl-first '())))
(should (= 4 (cl-first '(4))))
(should (= 4 (cl-first '(4 2))))
(should-error (cl-first "42") :type 'wrong-type-argument))
(ert-deftest cl-lib-test-second ()
(should (null (cl-second '())))
(should (null (cl-second '(4))))
(should (= 2 (cl-second '(1 2))))
(should (= 2 (cl-second '(1 2 3))))
(should-error (cl-second "1 2 3") :type 'wrong-type-argument))
(ert-deftest cl-lib-test-third ()
(should (null (cl-third '())))
(should (null (cl-third '(1 2))))
(should (= 3 (cl-third '(1 2 3))))
(should (= 3 (cl-third '(1 2 3 4))))
(should-error (cl-third "123") :type 'wrong-type-argument))
(ert-deftest cl-lib-test-fourth ()
(should (null (cl-fourth '())))
(should (null (cl-fourth '(1 2 3))))
(should (= 4 (cl-fourth '(1 2 3 4))))
(should (= 4 (cl-fourth '(1 2 3 4 5))))
(should-error (cl-fourth "1234") :type 'wrong-type-argument))
(ert-deftest cl-lib-test-fifth ()
(should (null (cl-fifth '())))
(should (null (cl-fifth '(1 2 3 4))))
(should (= 5 (cl-fifth '(1 2 3 4 5))))
(should (= 5 (cl-fifth '(1 2 3 4 5 6))))
(should-error (cl-fifth "12345") :type 'wrong-type-argument))
(ert-deftest cl-lib-test-fifth ()
(should (null (cl-fifth '())))
(should (null (cl-fifth '(1 2 3 4))))
(should (= 5 (cl-fifth '(1 2 3 4 5))))
(should (= 5 (cl-fifth '(1 2 3 4 5 6))))
(should-error (cl-fifth "12345") :type 'wrong-type-argument))
(ert-deftest cl-lib-test-sixth ()
(should (null (cl-sixth '())))
(should (null (cl-sixth '(1 2 3 4 5))))
(should (= 6 (cl-sixth '(1 2 3 4 5 6))))
(should (= 6 (cl-sixth '(1 2 3 4 5 6 7))))
(should-error (cl-sixth "123456") :type 'wrong-type-argument))
(ert-deftest cl-lib-test-seventh ()
(should (null (cl-seventh '())))
(should (null (cl-seventh '(1 2 3 4 5 6))))
(should (= 7 (cl-seventh '(1 2 3 4 5 6 7))))
(should (= 7 (cl-seventh '(1 2 3 4 5 6 7 8))))
(should-error (cl-seventh "1234567") :type 'wrong-type-argument))
(ert-deftest cl-lib-test-eighth ()
(should (null (cl-eighth '())))
(should (null (cl-eighth '(1 2 3 4 5 6 7))))
(should (= 8 (cl-eighth '(1 2 3 4 5 6 7 8))))
(should (= 8 (cl-eighth '(1 2 3 4 5 6 7 8 9))))
(should-error (cl-eighth "12345678") :type 'wrong-type-argument))
(ert-deftest cl-lib-test-ninth ()
(should (null (cl-ninth '())))
(should (null (cl-ninth '(1 2 3 4 5 6 7 8))))
(should (= 9 (cl-ninth '(1 2 3 4 5 6 7 8 9))))
(should (= 9 (cl-ninth '(1 2 3 4 5 6 7 8 9 10))))
(should-error (cl-ninth "123456789") :type 'wrong-type-argument))
(ert-deftest cl-lib-test-tenth ()
(should (null (cl-tenth '())))
(should (null (cl-tenth '(1 2 3 4 5 6 7 8 9))))
(should (= 10 (cl-tenth '(1 2 3 4 5 6 7 8 9 10))))
(should (= 10 (cl-tenth '(1 2 3 4 5 6 7 8 9 10 11))))
(should-error (cl-tenth "1234567890") :type 'wrong-type-argument))
(ert-deftest cl-lib-test-endp ()
(should (cl-endp '()))
(should-not (cl-endp '(1)))
(should-error (cl-endp 1) :type 'wrong-type-argument)
(should-error (cl-endp [1]) :type 'wrong-type-argument))
(ert-deftest cl-lib-test-nth-value ()
(let ((vals (cl-values 2 3)))
(should (= (cl-nth-value 0 vals) 2))
(should (= (cl-nth-value 1 vals) 3))
(should (null (cl-nth-value 2 vals)))
(should-error (cl-nth-value 0.0 vals) :type 'wrong-type-argument)))
(ert-deftest cl-lib-nth-value-test-multiple-values ()
"While CL multiple values are an alias to list, these won't work."
:expected-result :failed
(should (eq (cl-nth-value 0 '(2 3)) '(2 3)))
(should (= (cl-nth-value 0 1) 1))
(should (null (cl-nth-value 1 1)))
(should-error (cl-nth-value -1 (cl-values 2 3)) :type 'args-out-of-range)
(should (string= (cl-nth-value 0 "only lists") "only lists")))
(ert-deftest cl-test-caaar ()
(should (null (cl-caaar '())))
(should (null (cl-caaar '(() (2)))))
(should (null (cl-caaar '((() (2)) (a b)))))
(should-error (cl-caaar '(1 2)) :type 'wrong-type-argument)
(should-error (cl-caaar '((1 2))) :type 'wrong-type-argument)
(should (= 1 (cl-caaar '(((1 2) (3 4))))))
(should (null (cl-caaar '((() (3 4)))))))
(ert-deftest cl-test-caadr ()
(should (null (cl-caadr '())))
(should (null (cl-caadr '(1))))
(should-error (cl-caadr '(1 2)) :type 'wrong-type-argument)
(should (= 2 (cl-caadr '(1 (2 3)))))
(should (equal '((2) (3)) (cl-caadr '((1) (((2) (3))) (4))))))
(ert-deftest cl-test-ldiff ()
(let ((l '(1 2 3)))
(should (null (cl-ldiff '() '())))
(should (null (cl-ldiff '() l)))
(should (null (cl-ldiff l l)))
(should (equal l (cl-ldiff l '())))
;; must be part of the list
(should (equal l (cl-ldiff l '(2 3))))
(should (equal '(1) (cl-ldiff l (nthcdr 1 l))))
;; should return a copy
(should-not (eq (cl-ldiff l '()) l))))
(ert-deftest cl-parse-integer ()
(should-error (cl-parse-integer "abc"))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment