diff options
Diffstat (limited to 'exercism/emacs-lisp/word-count/word-count-test.el')
-rw-r--r-- | exercism/emacs-lisp/word-count/word-count-test.el | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/exercism/emacs-lisp/word-count/word-count-test.el b/exercism/emacs-lisp/word-count/word-count-test.el new file mode 100644 index 0000000..1029b68 --- /dev/null +++ b/exercism/emacs-lisp/word-count/word-count-test.el @@ -0,0 +1,65 @@ +;;; word-count-test.el --- Tests for word-count (exercism) + +;;; Commentary: + +;;; Code: + +(load-file "word-count.el") + + +(defun equal-assoc (a b) + (let ((strcmp (lambda (a b) (not (string< (car a) (car b)))))) + (equal (sort (copy-sequence a) strcmp) + (sort (copy-sequence b) strcmp)))) + + +(ert-deftest no-words-test () + (should (equal-assoc (word-count "") + nil))) + + +(ert-deftest count-one-word-test () + (should (equal-assoc (word-count "word") + '(("word" . 1))))) + + +(ert-deftest count-one-of-each-word-test () + (should (equal-assoc (word-count "one of each") + '(("each" . 1) + ("of" . 1) + ("one" . 1))))) + + +(ert-deftest multiple-occurrences-of-a-word-test () + (should (equal-assoc (word-count "one fish two fish red fish blue fish") + '(("blue" . 1) + ("red" . 1) + ("two" . 1) + ("fish" . 4) + ("one" . 1))))) + + +(ert-deftest ignore-punctuation-test () + (should (equal-assoc (word-count "car : carpet as java : javascript!!&@$%^&") + '(("javascript" . 1) + ("java" . 1) + ("as" . 1) + ("carpet" . 1) + ("car" . 1))))) + + +(ert-deftest include-numbers-test () + (should (equal-assoc (word-count "testing, 1, 2 testing") + '(("2" . 1) + ("1" . 1) + ("testing" . 2))))) + + +(ert-deftest normalize-case-test () + (should (equal-assoc (word-count "go Go GO Stop stop") + '(("stop" . 2) + ("go" . 3))))) + + +(provide 'word-count) +;;; word-count-test.el ends here |