emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] map 89baf16 2/2: * test/automated/map-tests.el: Refactorin


From: Nicolas Petton
Subject: [Emacs-diffs] map 89baf16 2/2: * test/automated/map-tests.el: Refactoring of test methods.
Date: Tue, 21 Apr 2015 18:54:57 +0000

branch: map
commit 89baf163324c6820ca17e91cda9dc8b162a59eab
Author: Nicolas Petton <address@hidden>
Commit: Nicolas Petton <address@hidden>

    * test/automated/map-tests.el: Refactoring of test methods.
---
 test/automated/map-tests.el |  284 ++++++++++++++++++++----------------------
 1 files changed, 135 insertions(+), 149 deletions(-)

diff --git a/test/automated/map-tests.el b/test/automated/map-tests.el
index ea7b0af..9a0d99e 100644
--- a/test/automated/map-tests.el
+++ b/test/automated/map-tests.el
@@ -29,56 +29,56 @@
 (require 'ert)
 (require 'map)
 
-(defmacro with-maps-do (alist-name vec-name ht-name &rest body)
-  (declare (indent 3))
-  `(let ((,alist-name '((a . 2)
-                        (b . 3)
-                        (c . 4)))
-         (,vec-name (make-vector 3 nil))
-         (,ht-name (make-hash-table)))
-     (aset ,vec-name 0 'a)
-     (aset ,vec-name 1 'b)
-     (aset ,vec-name 2 'c)
-     (puthash 'a 2 ,ht-name)
-     (puthash 'b 3 ,ht-name)
-     (puthash 'c 4 ,ht-name)
-     (progn
-       ,@body)))
+(defmacro with-maps-do (var &rest body)
+  "Successively bind VAR to an alist, vector and hash-table.
+Each map is built from the following alist data:
+'((0 . 3) (1 . 4) (2 . 5)).
+Evaluate BODY for each created map.
+
+\(fn (var map) body)"
+  (declare (indent 1) (debug t))
+  (let ((alist (make-symbol "alist"))
+        (vec (make-symbol "vec"))
+        (ht (make-symbol "ht")))
+   `(let ((,alist '((0 . 3)
+                    (1 . 4)
+                    (2 . 5)))
+          (,vec (make-vector 3 nil))
+          (,ht (make-hash-table)))
+      (aset ,vec 0 '3)
+      (aset ,vec 1 '4)
+      (aset ,vec 2 '5)
+      (puthash '0 3 ,ht)
+      (puthash '1 4 ,ht)
+      (puthash '2 5 ,ht)
+      (dolist (,var (list ,alist ,vec ,ht))
+        ,@body))))
 
 (ert-deftest test-map-elt ()
-  (with-maps-do alist vec ht
-    (assert (= 2 (map-elt alist 'a)))
-    (assert (= 3 (map-elt alist 'b)))
-    (assert (= 4 (map-elt alist 'c)))
-    (assert (null (map-elt alist 'd)))
-    (assert (= 2 (map-elt ht 'a)))
-    (assert (= 3 (map-elt ht 'b)))
-    (assert (= 4 (map-elt ht 'c)))
-    (assert (null (map-elt ht 'd)))
-    (assert (eq 'a (map-elt vec 0)))
-    (assert (eq 'b (map-elt vec 1)))
-    (assert (eq 'c (map-elt vec 2)))
-    (assert (null (map-elt vec 3)))))
+  (with-maps-do map
+    (assert (= 3 (map-elt map 0)))
+    (assert (= 4 (map-elt map 1)))
+    (assert (= 5 (map-elt map 2)))
+    (assert (null (map-elt map 4)))))
 
 (ert-deftest test-map-elt-default ()
-  (with-maps-do alist vec ht
-    (assert (= 5 (map-elt alist 'd 5)))
-    (assert (= 5 (map-elt vec 4 5)))
-    (assert (= 5 (map-elt ht 'd 5)))))
+  (with-maps-do map
+    (assert (= 5 (map-elt map 7 5)))))
 
 (ert-deftest test-map-put ()
-  (with-maps-do alist vec ht
-    (map-put alist 'd 4)
-    (assert (= (map-elt alist 'd) 4))
-    (map-put alist 'd 5)
-    (assert (= (map-elt alist 'd) 5))
-    (map-put ht 'd 4)
-    (assert (= (map-elt ht 'd) 4))
-    (map-put ht 'd 5)
-    (assert (= (map-elt ht 'd) 5))
-    (map-put vec 0 'd)
-    (assert (eq (map-elt vec 0) 'd))
-    (should-error (map-put vec 4 'd))))
+  (with-maps-do map
+    (map-put map 2 'hello)
+    (assert (eq (map-elt map 2) 'hello)))
+  (let ((ht (make-hash-table)))
+    (map-put ht 2 'a)
+    (assert (eq (map-elt ht 2)
+                'a)))
+  (let ((alist '((0 . a) (1 . b) (2 . c))))
+    (map-put alist 2 'a)
+    (assert (eq (map-elt alist 2)
+                'a)))
+  (let ((vec [3 4 5]))
+   (should-error (map-put vec 3 6))))
 
 (ert-deftest test-map-put-literal ()
   (assert (= (map-elt (map-put [1 2 3] 1 4) 1)
@@ -93,13 +93,9 @@
     (assert (eq (map-put ht 'a 'hello) ht))))
 
 (ert-deftest test-map-delete ()
-  (with-maps-do alist vec ht
-    (map-delete alist 'a)
-    (assert (null (map-elt alist 'a)))
-    (map-delete ht 'a)
-    (assert (null (map-elt ht 'a)))
-    (map-delete vec 2)
-    (assert (null (map-elt vec 2)))))
+  (with-maps-do map
+    (map-delete map 1)
+    (assert (null (map-elt map 1)))))
 
 (ert-deftest test-map-delete-return-value ()
   (let ((ht (make-hash-table)))
@@ -136,32 +132,24 @@
   (assert (map-p [1 2 3]))
   (assert (map-p (make-hash-table)))
   (assert (map-p "hello"))
-  (with-maps-do alist vec ht
-    (assert (map-p alist))
-    (assert (map-p vec))
-    (assert (map-p ht))
-    (assert (not (map-p 1)))
-    (assert (not (map-p 'hello)))))
+  (assert (not (map-p 1)))
+  (assert (not (map-p 'hello))))
 
 (ert-deftest test-map-keys ()
-  (with-maps-do alist vec ht
-    (assert (equal (map-keys alist) '(a b c)))
-    (assert (equal (map-keys vec) '(0 1 2)))
-    (assert (equal (map-keys ht) '(a b c)))))
+  (with-maps-do map
+    (assert (equal (map-keys map) '(0 1 2))))
+  (assert (null (map-keys nil)))
+  (assert (null (map-keys []))))
 
 (ert-deftest test-map-values ()
-  (with-maps-do alist vec ht
-    (assert (equal (map-values alist) '(2 3 4)))
-    (assert (equal (map-values vec) '(a b c)))
-    (assert (equal (map-values ht) '(2 3 4)))))
+  (with-maps-do map
+    (assert (equal (map-values map) '(3 4 5)))))
 
 (ert-deftest test-map-pairs ()
-  (with-maps-do alist vec ht
-    (assert (equal (map-pairs alist) alist))
-    (assert (equal (map-pairs vec) '((0 . a)
-                                     (1 . b)
-                                     (2 . c))))
-    (assert (equal (map-pairs ht) alist))))
+  (with-maps-do map
+    (assert (equal (map-pairs map) '((0 . 3)
+                                     (1 . 4)
+                                     (2 . 5))))))
 
 (ert-deftest test-map-length ()
   (let ((ht (make-hash-table)))
@@ -177,19 +165,18 @@
     (assert (= 4 (map-length ht)))))
 
 (ert-deftest test-map-copy ()
-  (with-maps-do alist vec ht
-    (dolist (map (list alist vec ht))
-      (let ((copy (map-copy map)))
-        (assert (equal (map-keys map) (map-keys copy)))
-        (assert (equal (map-values map) (map-values copy)))
-        (assert (not (eq map copy)))))))
+  (with-maps-do map
+    (let ((copy (map-copy map)))
+      (assert (equal (map-keys map) (map-keys copy)))
+      (assert (equal (map-values map) (map-values copy)))
+      (assert (not (eq map copy))))))
 
 (ert-deftest test-map-apply ()
-  (with-maps-do alist vec ht
-    (dolist (map (list alist ht))
-      (assert (equal (map-apply (lambda (k v) (cons (symbol-name k) v))
-                                map)
-                     '(("a" . 2) ("b" . 3) ("c" . 4)))))
+  (with-maps-do map
+    (assert (equal (map-apply (lambda (k v) (cons (int-to-string k) v))
+                              map)
+                   '(("0" . 3) ("1" . 4) ("2" . 5)))))
+  (let ((vec [a b c]))
     (assert (equal (map-apply (lambda (k v) (cons (1+ k) v))
                               vec)
                    '((1 . a)
@@ -197,64 +184,62 @@
                      (3 . c))))))
 
 (ert-deftest test-map-keys-apply ()
-  (with-maps-do alist vec ht
-    (dolist (map (list alist ht))
-      (assert (equal (map-keys-apply (lambda (k) (symbol-name k))
-                                map)
-                     '("a" "b" "c"))))
+  (with-maps-do map
+    (assert (equal (map-keys-apply (lambda (k) (int-to-string k))
+                                   map)
+                   '("0" "1" "2"))))
+  (let ((vec [a b c]))
     (assert (equal (map-keys-apply (lambda (k) (1+ k))
-                              vec)
+                                   vec)
                    '(1 2 3)))))
 
 (ert-deftest test-map-values-apply ()
-  (with-maps-do alist vec ht
-    (dolist (map (list alist ht))
-      (assert (equal (map-values-apply (lambda (v) (1+ v))
-                                map)
-                     '(3 4 5))))
+  (with-maps-do map
+    (assert (equal (map-values-apply (lambda (v) (1+ v))
+                                     map)
+                   '(4 5 6))))
+  (let ((vec [a b c]))
     (assert (equal (map-values-apply (lambda (v) (symbol-name v))
-                              vec)
+                                     vec)
                    '("a" "b" "c")))))
 
 (ert-deftest test-map-filter ()
-  (with-maps-do alist vec ht
-    (dolist (map (list alist ht))
-      (assert (equal (map-keys (map-filter (lambda (k v)
-                                             (<= 3 v))
-                                           map))
-                     '(b c)))
-      (assert (null (map-filter (lambda (k v)
-                                  (eq 'd k))
-                                map))))
+  (with-maps-do map
+    (assert (equal (map-keys (map-filter (lambda (k v)
+                                           (<= 4 v))
+                                         map))
+                   '(1 2)))
     (assert (null (map-filter (lambda (k v)
-                                (eq 3 v))
-                              [1 2 4 5])))
-    (assert (equal (map-filter (lambda (k v)
-                                 (eq 3 k))
-                               [1 2 4 5])
-                   '((3 . 5))))))
+                                (eq 'd k))
+                              map))))
+  (assert (null (map-filter (lambda (k v)
+                              (eq 3 v))
+                            [1 2 4 5])))
+  (assert (equal (map-filter (lambda (k v)
+                               (eq 3 k))
+                             [1 2 4 5])
+                 '((3 . 5)))))
 
 (ert-deftest test-map-remove ()
-  (with-maps-do alist vec ht
-    (dolist (map (list alist ht))
-      (assert (equal (map-keys (map-remove (lambda (k v)
-                                             (<= 3 v))
-                                           map))
-                     '(a)))
-      (assert (equal (map-keys (map-remove (lambda (k v)
-                                            (eq 'd k))
-                                          map))
-                     (map-keys map))))
-    (assert (equal (map-remove (lambda (k v)
-                                 (eq 3 v))
-                               [1 2 4 5])
-                   '((0 . 1)
-                     (1 . 2)
-                     (2 . 4)
-                     (3 . 5))))
-    (assert (null (map-remove (lambda (k v)
-                                (>= k 0))
-                              [1 2 4 5])))))
+  (with-maps-do map
+    (assert (equal (map-keys (map-remove (lambda (k v)
+                                           (>= v 4))
+                                         map))
+                   '(0)))
+    (assert (equal (map-keys (map-remove (lambda (k v)
+                                           (eq 'd k))
+                                         map))
+                   (map-keys map))))
+  (assert (equal (map-remove (lambda (k v)
+                               (eq 3 v))
+                             [1 2 4 5])
+                 '((0 . 1)
+                   (1 . 2)
+                   (2 . 4)
+                   (3 . 5))))
+  (assert (null (map-remove (lambda (k v)
+                              (>= k 0))
+                            [1 2 4 5]))))
 
 (ert-deftest test-map-empty-p ()
   (assert (map-empty-p nil))
@@ -274,15 +259,15 @@
   (assert (not (map-contains-key-p [a b c] 3))))
 
 (ert-deftest test-map-some-p ()
-  (with-maps-do alist vec ht
-    (dolist (map (list alist ht))
-      (assert (equal (map-some-p (lambda (k v)
-                                   (eq 'a k))
-                                 map)
-                     (cons 'a 2)))
-      (assert (not (map-some-p (lambda (k v)
-                                 (eq 'd k))
-                               map))))
+  (with-maps-do map
+    (assert (equal (map-some-p (lambda (k v)
+                                 (eq 1 k))
+                               map)
+                   (cons 1 4)))
+    (assert (not (map-some-p (lambda (k v)
+                               (eq 'd k))
+                             map))))
+  (let ((vec [a b c]))
     (assert (equal (map-some-p (lambda (k v)
                                  (> k 1))
                                vec)
@@ -292,24 +277,25 @@
                              vec)))))
 
 (ert-deftest test-map-every-p ()
-  (with-maps-do alist vec ht
-    (dolist (map (list alist ht vec))
-      (assert (map-every-p (lambda (k v)
-                             k)
-                           map))
-      (assert (not (map-every-p (lambda (k v)
-                                  nil)
-                                map))))
+  (with-maps-do map
+    (assert (map-every-p (lambda (k v)
+                           k)
+                         map))
+    (assert (not (map-every-p (lambda (k v)
+                                nil)
+                              map))))
+  (let ((vec [a b c]))
     (assert (map-every-p (lambda (k v)
                            (>= k 0))
                          vec))
     (assert (not (map-every-p (lambda (k v)
-                               (> k 3))
+                                (> k 3))
                               vec)))))
 
 (ert-deftest test-map-into ()
-  (with-maps-do alist vec ht
-    (assert (hash-table-p (map-into alist 'hash-table)))
+  (let* ((alist '((a . 1) (b . 2)))
+         (ht (map-into alist 'hash-table)))
+    (assert (hash-table-p ht))
     (assert (equal (map-into (map-into alist 'hash-table) 'list)
                    alist))
     (assert (listp (map-into ht 'list)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]