aboutsummaryrefslogtreecommitdiff
path: root/tests/functions.lisp
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2025-03-01 20:09:44 +0000
committerAryadev Chavali <aryadev@aryadevchavali.com>2025-03-02 01:17:56 +0000
commit93790fad8847632654d6220a6a71bfbf4c867775 (patch)
treeabd4c38e982184dc433b24cc030dd73bf2af9217 /tests/functions.lisp
parent191ef054015143a73e214a49f07b01ec7b2ea75b (diff)
downloadcantedraw-93790fad8847632654d6220a6a71bfbf4c867775.tar.gz
cantedraw-93790fad8847632654d6220a6a71bfbf4c867775.tar.bz2
cantedraw-93790fad8847632654d6220a6a71bfbf4c867775.zip
Move all test code into one file.
Diffstat (limited to 'tests/functions.lisp')
-rw-r--r--tests/functions.lisp115
1 files changed, 0 insertions, 115 deletions
diff --git a/tests/functions.lisp b/tests/functions.lisp
deleted file mode 100644
index 11d8f6e..0000000
--- a/tests/functions.lisp
+++ /dev/null
@@ -1,115 +0,0 @@
-;;; functions.lisp - 2025-02-20
-
-;; Copyright (C) 2025 Aryadev Chavali
-
-;; This program 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 Version 2 for
-;; details.
-
-;; You may distribute and modify this code under the terms of the GNU General
-;; Public License Version 2, which you should have received a copy of along with
-;; this program. If not, please go to <https://www.gnu.org/licenses/>.
-
-;;; Code:
-
-(defpackage cantedraw/tests/functions
- (:use
- :cl :parachute :cantedraw.lib.macros
- :cantedraw.lib.functions))
-
-(in-package :cantedraw/tests/functions)
-
-(define-test function-test)
-
-(define-test (function-test "parse-integer*")
- :compile-at :execute
- (is eq 2 (parse-integer* "2"))
- (is eq 2048 (parse-integer* "2048abcdef"))
- (is eq nil (parse-integer* "a2048abcdef"))
- (is eq nil (parse-integer* "garbage"))
- (fail (parse-integer* nil)))
-
-(define-test (function-test range)
- :compile-at :execute
- (fail (range 1 0))
- (fail (range nil nil))
- (fail (range "a" "b"))
- (true (null (range 1 1)))
- (is equal '(1 2 3 4) (range 1 5))
- (is equal '(-3 -2 -1 0) (range -3 1)))
-
-(define-test (function-test take)
- :depends-on ((cantedraw/tests/macros ->>))
- :compile-at :execute
- (fail (take nil nil))
- (fail (take 100 nil))
- (fail (take nil 100))
- (true (->> (list 1 2 3 4) (take 0) null))
- (is equal "H" (take 1 "Hello"))
- (is equal '(1 2) (take 2 '(1 2 3 4 5))))
-
-(define-test (function-test split)
- :compile-at :execute
- (fail (split nil nil))
- (fail (split 100 nil))
- (fail (split nil 100))
- (is-values (split 0 '(1 2 3 4))
- (eq nil)
- (equal '(1 2 3 4)))
- (is-values (split 1 '(1 2 3 4))
- (equal '(1))
- (equal '(2 3 4)))
- (is-values (split 5 "Hello World")
- (string= "Hello")
- (string= " World")))
-
-(define-test (function-test rev-map)
- :depends-on (range
- (cantedraw/tests/macros ->>))
- :compile-at :execute
- (fail (rev-map nil nil))
- (fail (rev-map "a string" "another string" :key-eq "not a function"))
- (true (->> nil (rev-map #'identity) null))
- (let ((res (rev-map #'evenp (range 1 7))))
- (false (null res))
- (is equal 2 (length res))
- (is equal 3 (->> (assoc t res) cdr length))
- (is equal 3 (->> (assoc nil res) cdr length))
- (true (->> (assoc t res) cdr (every #'evenp)))
- (true (->> (assoc nil res) cdr (every #'oddp))))
- (let* ((mod* (lambda (n) (mod n 3)))
- (res (rev-map mod* (range 1 12))))
- (false (null res))
- (is equal 3 (length res))
- (is equal 3 (->> (assoc 0 res) cdr length))
- (is equal 4 (->> (assoc 1 res) cdr length))
- (is equal 4 (->> (assoc 2 res) cdr length))
- (true (->> (assoc 0 res) cdr (every (lambda (x) (= (mod x 3) 0)))))
- (true (->> (assoc 1 res) cdr (every (lambda (x) (= (mod x 3) 1)))))
- (true (->> (assoc 2 res) cdr (every (lambda (x) (= (mod x 3) 2))))))
- (let ((res (rev-map #'identity "lots of letters")))
- (false (null res))
- (is equal 2 (->> (assoc #\l res) cdr length))
- (is equal 3 (->> (assoc #\t res) cdr length))
- (is equal 2 (->> (assoc #\space res) cdr length))
- (is equal 2 (->> (assoc #\s res) cdr length))))
-
-(define-test (function-test remove-at-indices)
- :depends-on (range)
- :compile-at :execute
- (fail (remove-at-indices "a string" "another string"))
- (true (null (remove-at-indices nil nil)))
- (is equal '(1 2 3) (remove-at-indices nil '(1 2 3)))
- (is equal '(2) (remove-at-indices '(0 2) '(1 2 3)))
- (let* ((inp (range 100 200))
- (t1 (remove-at-indices (range 0 100 2) inp))
- (t2 (remove-at-indices (range 1 100 2) inp)))
- (is equal 50 (length t1))
- (is equal 50 (length t2))
- (true (every (lambda (n) (not (member n t2))) t1))
- (true (every (lambda (n) (not (member n t1))) t2)))
- (let* ((indices (list 0 5 6 7 8 9 10))
- (str-lst (remove-at-indices indices "Hello World"))
- (ret (coerce str-lst 'string)))
- (is string= "ello" ret)))