emacs-diffs
[Top][All Lists]
Advanced

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

master 37a2a42 3/4: Convert some completion.el tests to ERT


From: Stefan Kangas
Subject: master 37a2a42 3/4: Convert some completion.el tests to ERT
Date: Wed, 23 Sep 2020 14:57:19 -0400 (EDT)

branch: master
commit 37a2a427e4afaab963ba9753d11d7b665ac67ea0
Author: Stefan Kangas <stefan@marxist.se>
Commit: Stefan Kangas <stefan@marxist.se>

    Convert some completion.el tests to ERT
    
    * test/lisp/completion-tests.el: New file.
    * lisp/completion.el: Move commented out tests to completion-tests.el.
---
 lisp/completion.el            | 121 ------------------------------
 test/lisp/completion-tests.el | 170 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 170 insertions(+), 121 deletions(-)

diff --git a/lisp/completion.el b/lisp/completion.el
index ed13455..e4a004f 100644
--- a/lisp/completion.el
+++ b/lisp/completion.el
@@ -399,13 +399,6 @@ Used to decide whether to save completions.")
                  :up)
                 (t :neither))))))
 
-;; Tests -
-;; (cmpl-string-case-type "123ABCDEF456") --> :up
-;; (cmpl-string-case-type "123abcdef456") --> :down
-;; (cmpl-string-case-type "123aBcDeF456") --> :mixed
-;; (cmpl-string-case-type "123456")       --> :neither
-;; (cmpl-string-case-type "Abcde123")     --> :capitalized
-
 (defun cmpl-coerce-string-case (string case-type)
   (cond ((eq case-type :down) (downcase string))
        ((eq case-type :up) (upcase string))
@@ -424,12 +417,6 @@ Used to decide whether to save completions.")
           ;; as is
           string-to-coerce))))
 
-;; Tests -
-;; (cmpl-merge-string-cases "AbCdEf456" "abc")     --> AbCdEf456
-;; (cmpl-merge-string-cases "abcdef456" "ABC")     --> ABCDEF456
-;; (cmpl-merge-string-cases "ABCDEF456" "Abc")     --> Abcdef456
-;; (cmpl-merge-string-cases "ABCDEF456" "abc")     --> abcdef456
-
 
 (defun cmpl-hours-since-origin ()
   (floor (time-convert nil 'integer) 3600))
@@ -1226,45 +1213,6 @@ String must be longer than 
`completion-prefix-min-length'."
                      (set cmpl-db-prefix-symbol nil)))))
       (error "Unknown completion `%s'" completion-string))))
 
-;; Tests --
-;;  - Add and Find -
-;; (add-completion-to-head "banana")     --> ("banana" 0 nil 0)
-;; (find-exact-completion "banana")      --> ("banana" 0 nil 0)
-;; (find-exact-completion "bana")        --> nil
-;; (car (find-cmpl-prefix-entry "ban"))  --> (("banana" ...))
-;; (cdr (find-cmpl-prefix-entry "ban"))  --> (("banana" ...))
-;; (add-completion-to-head "banish")     --> ("banish" 0 nil 0)
-;; (find-exact-completion "banish")      --> ("banish" 0 nil 0)
-;; (car (find-cmpl-prefix-entry "ban"))  --> (("banish" ...) ("banana" ...))
-;; (cdr (find-cmpl-prefix-entry "ban"))  --> (("banana" ...))
-;; (add-completion-to-head "banana")     --> ("banana" 0 nil 0)
-;; (car (find-cmpl-prefix-entry "ban"))  --> (("banana" ...) ("banish" ...))
-;; (cdr (find-cmpl-prefix-entry "ban"))  --> (("banish" ...))
-;;
-;;  - Deleting -
-;; (add-completion-to-head "banner")     --> ("banner" 0 nil 0)
-;; (delete-completion "banner")
-;; (find-exact-completion "banner")      --> nil
-;; (car (find-cmpl-prefix-entry "ban"))  --> (("banana" ...) ("banish" ...))
-;; (cdr (find-cmpl-prefix-entry "ban"))  --> (("banish" ...))
-;; (add-completion-to-head "banner")     --> ("banner" 0 nil 0)
-;; (delete-completion "banana")
-;; (car (find-cmpl-prefix-entry "ban"))  --> (("banner" ...) ("banish" ...))
-;; (cdr (find-cmpl-prefix-entry "ban"))  --> (("banish" ...))
-;; (delete-completion "banner")
-;; (delete-completion "banish")
-;; (find-cmpl-prefix-entry "ban")        --> nil
-;; (delete-completion "banner")          --> error
-;;
-;; - Tail -
-;; (add-completion-to-tail-if-new "banana") --> ("banana" 0 nil 0)
-;; (car (find-cmpl-prefix-entry "ban"))     --> (("banana" ...))
-;; (cdr (find-cmpl-prefix-entry "ban"))     --> (("banana" ...))
-;; (add-completion-to-tail-if-new "banish") --> ("banish" 0 nil 0)
-;; (car (find-cmpl-prefix-entry "ban"))     -->(("banana" ...) ("banish" ...))
-;; (cdr (find-cmpl-prefix-entry "ban"))     -->(("banish" ...))
-;;
-
 
 ;;---------------------------------------------------------------------------
 ;; Database Update :: Interface level routines
@@ -1361,29 +1309,6 @@ Completions added this way will automatically be saved if
                 (set-completion-num-uses entry 1)
                 (setq cmpl-completions-accepted-p t)))))))
 
-;; Tests --
-;;  - Add and Find -
-;; (add-completion "banana" 5 10)
-;; (find-exact-completion "banana")  --> ("banana" 5 10 0)
-;; (add-completion "banana" 6)
-;; (find-exact-completion "banana")  --> ("banana" 6 10 0)
-;; (add-completion "banish")
-;; (car (find-cmpl-prefix-entry "ban"))  --> (("banish" ...) ("banana" ...))
-;;
-;;  - Accepting -
-;; (setq completion-to-accept "banana")
-;; (accept-completion)
-;; (find-exact-completion "banana")      --> ("banana" 7 10)
-;; (car (find-cmpl-prefix-entry "ban"))  --> (("banana" ...) ("banish" ...))
-;; (setq completion-to-accept "banish")
-;; (add-completion "banner")
-;; (car (find-cmpl-prefix-entry "ban"))
-;;        --> (("banner" ...) ("banish" 1 ...) ("banana" 7 ...))
-;;
-;;  - Deleting -
-;; (kill-completion "banish")
-;; (car (find-cmpl-prefix-entry "ban"))  --> (("banner" ...) ("banana" ...))
-
 
 ;;---------------------------------------------------------------------------
 ;; Searching the database
@@ -1505,46 +1430,6 @@ If there are no more entries, try cdabbrev and then 
return only a string."
     ;; Completely unsuccessful, return nil
     ))
 
-;; Tests --
-;;  - Add and Find -
-;; (add-completion "banana")
-;; (completion-search-reset "ban")
-;; (completion-search-next 0)        --> "banana"
-;;
-;;  - Discrimination -
-;; (add-completion "cumberland")
-;; (add-completion "cumberbund")
-;; cumbering
-;; (completion-search-reset "cumb")
-;; (completion-search-peek t)        --> "cumberbund"
-;; (completion-search-next 0)        --> "cumberbund"
-;; (completion-search-peek t)        --> "cumberland"
-;; (completion-search-next 1)        --> "cumberland"
-;; (completion-search-peek nil)      --> nil
-;; (completion-search-next 2)        --> "cumbering"  {cdabbrev}
-;; (completion-search-next 3)        -->  nil or "cumming"{depends on context}
-;; (completion-search-next 1)        --> "cumberland"
-;; (completion-search-peek t)        --> "cumbering"  {cdabbrev}
-;;
-;;  - Accepting -
-;; (completion-search-next 1)        --> "cumberland"
-;; (setq completion-to-accept "cumberland")
-;; (completion-search-reset "foo")
-;; (completion-search-reset "cum")
-;; (completion-search-next 0)        --> "cumberland"
-;;
-;;  - Deleting -
-;; (kill-completion "cumberland")
-;; cummings
-;; (completion-search-reset "cum")
-;; (completion-search-next 0)        --> "cumberbund"
-;; (completion-search-next 1)        --> "cummings"
-;;
-;;  - Ignoring Capitalization -
-;; (completion-search-reset "CuMb")
-;; (completion-search-next 0)            --> "cumberbund"
-
-
 
 ;;-----------------------------------------------
 ;; COMPLETE
@@ -1733,12 +1618,6 @@ Prefix args ::
   "\n(\\(\\w*:\\)?def\\(\\w\\|\\s_\\)*\\s +(*"
   "A regexp that searches for Lisp definition form.")
 
-;; Tests -
-;;  (and (string-match *lisp-def-regexp* "\n(defun foo") (match-end 0)) -> 8
-;;  (and (string-match *lisp-def-regexp* "\n(si:def foo") (match-end 0)) -> 9
-;;  (and (string-match *lisp-def-regexp* "\n(def-bar foo")(match-end 0)) -> 10
-;;  (and (string-match *lisp-def-regexp* "\n(defun (foo") (match-end 0)) -> 9
-
 ;; Parses all the definition names from a Lisp mode buffer and adds them to
 ;; the completion database.
 (defun add-completions-from-lisp-buffer ()
diff --git a/test/lisp/completion-tests.el b/test/lisp/completion-tests.el
new file mode 100644
index 0000000..7473bbb
--- /dev/null
+++ b/test/lisp/completion-tests.el
@@ -0,0 +1,170 @@
+;;; completion-tests.el --- Tests for completion.el  -*- lexical-binding: t -*-
+
+;; Copyright (C) 2020 Free Software Foundation, Inc.
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;; Code:
+
+(require 'ert)
+(require 'completion)
+
+(ert-deftest completion-test-cmpl-string-case-type ()
+  (should (eq (cmpl-string-case-type "123ABCDEF456") :up))
+  (should (eq (cmpl-string-case-type "123abcdef456") :down))
+  (should (eq (cmpl-string-case-type "123aBcDeF456") :mixed))
+  (should (eq (cmpl-string-case-type "123456") :neither))
+  (should (eq (cmpl-string-case-type "Abcde123") :capitalized)))
+
+(ert-deftest completion-test-cmpl-merge-string-cases ()
+  (should (equal (cmpl-merge-string-cases "AbCdEf456" "abc") "AbCdEf456"))
+  (should (equal (cmpl-merge-string-cases "abcdef456" "ABC") "ABCDEF456"))
+  (should (equal (cmpl-merge-string-cases "ABCDEF456" "Abc") "Abcdef456"))
+  (should (equal (cmpl-merge-string-cases "ABCDEF456" "abc") "abcdef456")))
+
+(ert-deftest completion-test-add-find-delete-tail ()
+  (unwind-protect
+      (progn
+        ;;  - Add and Find -
+        (should (equal (add-completion-to-head "banana") '("banana" 0 nil 0)))
+        (should (equal (find-exact-completion "banana") '("banana" 0 nil 0)))
+        (should (equal (find-exact-completion "bana") nil))
+        (should (equal (car (find-cmpl-prefix-entry "ban")) '(("banana" 0 nil 
0))))
+        (should (equal (cdr (find-cmpl-prefix-entry "ban")) '(("banana" 0 nil 
0))))
+
+        (should (equal (add-completion-to-head "banish") '("banish" 0 nil 0)))
+        (should (equal (find-exact-completion "banish") '("banish" 0 nil 0)))
+        (should (equal (car (find-cmpl-prefix-entry "ban")) '(("banish" 0 nil 
0) ("banana" 0 nil 0))))
+        (should (equal (cdr (find-cmpl-prefix-entry "ban")) '(("banana" 0 nil 
0))))
+
+        (should (equal (add-completion-to-head "banana") '("banana" 0 nil 0)))
+        (should (equal (car (find-cmpl-prefix-entry "ban")) '(("banana" 0 nil 
0) ("banish" 0 nil 0))))
+        (should (equal (cdr (find-cmpl-prefix-entry "ban")) '(("banish" 0 nil 
0))))
+
+        ;;  - Deleting -
+        (should (equal (add-completion-to-head "banner") '("banner" 0 nil 0)))
+        (delete-completion "banner")
+        (should-not (find-exact-completion "banner"))
+        (should (equal (car (find-cmpl-prefix-entry "ban")) '(("banana" 0 nil 
0) ("banish" 0 nil 0))))
+        (should (equal (cdr (find-cmpl-prefix-entry "ban")) '(("banish" 0 nil 
0))))
+        (should (equal (add-completion-to-head "banner") '("banner" 0 nil 0)))
+        (delete-completion "banana")
+        (should (equal (car (find-cmpl-prefix-entry "ban")) '(("banner" 0 nil 
0) ("banish" 0 nil 0))))
+        (should (equal (cdr (find-cmpl-prefix-entry "ban")) '(("banish" 0 nil 
0))))
+        (delete-completion "banner")
+        (delete-completion "banish")
+        (should-not (find-cmpl-prefix-entry "ban"))
+        (should-error (delete-completion "banner"))
+
+        ;; - Tail -
+        (should (equal (add-completion-to-tail-if-new "banana") '("banana" 0 
nil 0)))
+        (should (equal (car (find-cmpl-prefix-entry "ban")) '(("banana" 0 nil 
0))))
+        (should (equal (cdr (find-cmpl-prefix-entry "ban")) '(("banana" 0 nil 
0))))
+        (add-completion-to-tail-if-new "banish") '("banish" 0 nil 0)
+        (should (equal (car (find-cmpl-prefix-entry "ban")) '(("banana" 0 nil 
0) ("banish" 0 nil 0))))
+        (should (equal (cdr (find-cmpl-prefix-entry "ban")) '(("banish" 0 nil 
0)))))
+    (ignore-errors (kill-completion "banana"))
+    (ignore-errors (kill-completion "banner"))
+    (ignore-errors (kill-completion "banish"))))
+
+(ert-deftest completion-test-add-find-accept-delete ()
+  (unwind-protect
+      (progn
+        ;; - Add and Find -
+        (add-completion "banana" 5 10)
+        (should (equal (find-exact-completion "banana") '("banana" 5 10 0)))
+        (add-completion "banana" 6)
+        (should (equal (find-exact-completion "banana") '("banana" 6 10 0)))
+        (add-completion "banish")
+        (should (equal (car (find-cmpl-prefix-entry "ban")) '(("banish" 0 nil 
0) ("banana" 6 10 0))))
+
+        ;; - Accepting -
+        (setq completion-to-accept "banana")
+        (accept-completion)
+        (should (equal (find-exact-completion "banana") '("banana" 7 10 0)))
+        (should (equal (car (find-cmpl-prefix-entry "ban")) '(("banana" 7 10 
0) ("banish" 0 nil 0))))
+        (setq completion-to-accept "banish")
+        (add-completion "banner")
+        (should (equal (car (find-cmpl-prefix-entry "ban"))
+                       '(("banner" 0 nil 0) ("banish" 1 nil 0) ("banana" 7 10 
0))))
+
+        ;; - Deleting -
+        (kill-completion "banish")
+        (should (equal (car (find-cmpl-prefix-entry "ban")) '(("banner" 0 nil 
0) ("banana" 7 10 0)))))
+    (ignore-errors (kill-completion "banish"))
+    (ignore-errors (kill-completion "banana"))
+    (ignore-errors (kill-completion "banner"))))
+
+(ert-deftest completion-test-search ()
+  (unwind-protect
+      (progn
+        ;; - Add and Find -
+        (add-completion "banana")
+        (completion-search-reset "ban")
+        (should (equal (car (completion-search-next 0)) "banana"))
+
+        ;; - Discrimination -
+        (add-completion "cumberland")
+        (add-completion "cumberbund")
+        ;; cumbering
+        (completion-search-reset "cumb")
+        (should (equal (car (completion-search-peek t)) "cumberbund"))
+        (should (equal (car (completion-search-next 0)) "cumberbund"))
+        (should (equal (car (completion-search-peek t)) "cumberland"))
+        (should (equal (car (completion-search-next 1)) "cumberland"))
+        (should-not (completion-search-peek nil))
+
+        ;; FIXME
+        ;; (should (equal (completion-search-next 2) "cumbering"))  ; 
{cdabbrev}
+        ;;(completion-search-next 3)        -->  nil or "cumming" {depends on 
context}
+
+        (should (equal (car (completion-search-next 1)) "cumberland"))
+
+        ;; FIXME
+        ;; (should (equal (completion-search-peek t) "cumbering"))  ; 
{cdabbrev}
+
+        ;; - Accepting -
+        (should (equal (car (completion-search-next 1)) "cumberland"))
+        (setq completion-to-accept "cumberland")
+        (completion-search-reset "foo")
+        (completion-search-reset "cum")
+        (should (equal (car (completion-search-next 0)) "cumberland"))
+
+        ;; - Deleting -
+        (kill-completion "cumberland")
+        (add-completion "cummings")
+        (completion-search-reset "cum")
+        (should (equal (car (completion-search-next 0)) "cummings"))
+        (should (equal (car (completion-search-next 1)) "cumberbund"))
+
+        ;; - Ignoring Capitalization -
+        (completion-search-reset "CuMb")
+        (should (equal (car (completion-search-next 0)) "cumberbund")))
+    (ignore-errors (kill-completion "banana"))
+    (ignore-errors (kill-completion "cumberland"))
+    (ignore-errors (kill-completion "cumberbund"))
+    (ignore-errors (kill-completion "cummings"))))
+
+(ert-deftest completion-test-lisp-def-regexp ()
+  (should (= (and (string-match *lisp-def-regexp* "\n(defun foo") (match-end 
0)) 8))
+  (should (= (and (string-match *lisp-def-regexp* "\n(si:def foo") (match-end 
0)) 9))
+  (should (= (and (string-match *lisp-def-regexp* "\n(def-bar foo")(match-end 
0)) 10))
+  (should (= (and (string-match *lisp-def-regexp* "\n(defun (foo") (match-end 
0)) 9)))
+
+(provide 'completion-tests)
+;;; completion-tests.el ends here



reply via email to

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