X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=tests%2Ftest-elmo-util.el;h=2d5a5e125081671f8e5d865be0a2aeaf46101629;hb=1b3b6efcc09e014e2fb7f56806b4365454af17c0;hp=81f30f92869bef4675b710a68f18c5327fd6830e;hpb=6e290fc8c57e86711b139a836ff56971e3dd9b34;p=elisp%2Fwanderlust.git diff --git a/tests/test-elmo-util.el b/tests/test-elmo-util.el index 81f30f9..2d5a5e1 100644 --- a/tests/test-elmo-util.el +++ b/tests/test-elmo-util.el @@ -94,6 +94,57 @@ ;;; (equal '(1 2 "3" 5 4) ;;; (elmo-list-insert '(1 2 "3" 5) 4 "3")) +(defun test-elmo-same-list-p (list1 list2) + (let ((clist1 (copy-sequence list1)) + (clist2 (copy-sequence list2))) + (while list2 + (setq clist1 (delq (car list2) clist1)) + (setq list2 (cdr list2))) + (while list1 + (setq clist2 (delq (car list1) clist2)) + (setq list1 (cdr list1))) + (equal (list clist1 clist2) '(nil nil)))) + +(defun test-elmo-same-diff-p (diff1 diff2) + (and (test-elmo-same-list-p (car diff1) + (car diff2)) + (test-elmo-same-list-p (nth 1 diff1) + (nth 1 diff2)))) + +(luna-define-method test-elmo-list-diff ((case test-elmo-util)) + (let ((list1 '(1 2 3)) + (list2 '(1 2 3 4)) + (list3 '(1 2 4)) + (list4 '(4 5 6)) + (list5 '(3 4 5 6))) + (lunit-assert + (test-elmo-same-diff-p '(nil nil) + (elmo-list-diff nil nil))) + (lunit-assert + (test-elmo-same-diff-p '(nil (1 2 3)) + (elmo-list-diff nil list1))) + (lunit-assert + (test-elmo-same-diff-p '((1 2 3) nil) + (elmo-list-diff list1 nil))) + (lunit-assert + (test-elmo-same-diff-p '(nil nil) + (elmo-list-diff list1 list1))) + (lunit-assert + (test-elmo-same-diff-p '(nil (4)) + (elmo-list-diff list1 list2))) + (lunit-assert + (test-elmo-same-diff-p '((3) (4)) + (elmo-list-diff list1 list3))) + (lunit-assert + (test-elmo-same-diff-p '((1 2 3) (4 5 6)) + (elmo-list-diff list1 list4))) + (lunit-assert + (test-elmo-same-diff-p '((1 2) (5 6)) + (elmo-list-diff list3 list4))) + (lunit-assert + (test-elmo-same-diff-p '((1 2) (3 5 6)) + (elmo-list-diff list3 list5))))) + (luna-define-method test-elmo-delete-char-1 ((case test-elmo-util)) (lunit-assert (string= "f" (elmo-delete-char ?o "foo"))) @@ -211,6 +262,60 @@ (equal '((1 . 100)) (elmo-number-set-append '((1 . 99)) 100)))) +(luna-define-method test-elmo-number-set-delete-1 ((case test-elmo-util)) + "Check edge." + (lunit-assert + (equal '(2 3) + (elmo-number-set-delete '(1 2 3) 1)))) + +(luna-define-method test-elmo-number-set-delete-2 ((case test-elmo-util)) + "Normal case." + (lunit-assert + (equal '(1 3) + (elmo-number-set-delete '(1 2 3) 2)))) + +(luna-define-method test-elmo-number-set-delete-3 ((case test-elmo-util)) + "Check edge." + (lunit-assert + (equal '(1 2) + (elmo-number-set-delete '(1 2 3) 3)))) + +(luna-define-method test-elmo-number-set-delete-4 ((case test-elmo-util)) + "Check edge." + (lunit-assert + (equal '((2 . 100)) + (elmo-number-set-delete '((1 . 100)) 1)))) + +(luna-define-method test-elmo-number-set-delete-5 ((case test-elmo-util)) + "Check edge." + (lunit-assert + (equal '(1 (3 . 100)) + (elmo-number-set-delete '((1 . 100)) 2)))) + +(luna-define-method test-elmo-number-set-delete-6 ((case test-elmo-util)) + "Normal case." + (lunit-assert + (equal '((1 . 49) (51 . 100)) + (elmo-number-set-delete '((1 . 100)) 50)))) + +(luna-define-method test-elmo-number-set-delete-7 ((case test-elmo-util)) + "Check edge." + (lunit-assert + (equal '((1 . 98) 100) + (elmo-number-set-delete '((1 . 100)) 99)))) + +(luna-define-method test-elmo-number-set-delete-8 ((case test-elmo-util)) + "Check edge." + (lunit-assert + (equal '((1 . 99)) + (elmo-number-set-delete '((1 . 100)) 100)))) + +(luna-define-method test-elmo-number-set-delete-list-1 ((case test-elmo-util)) + "Simple testcase." + (lunit-assert + (equal '((1 . 99)) + (elmo-number-set-delete-list '((1 . 100)) '(100))))) + (luna-define-method test-elmo-number-set-to-number-list-1 ((case test-elmo-util)) "Simple testcase." (lunit-assert