tests.lisp - clic - Clic is an command line interactive client for gopher written in Common LISP
(HTM) git clone git://bitreich.org/clic/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/clic/
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Tags
(DIR) README
(DIR) LICENSE
---
tests.lisp (3078B)
---
1 (in-package :cl-user)
2
3 (defpackage :alexandria2-tests
4 (:use :cl :alexandria-2 #+sbcl :sb-rt #-sbcl :rtest)
5 (:import-from #+sbcl :sb-rt #-sbcl :rtest
6 #:*compile-tests* #:*expected-failures*))
7
8 (in-package :alexandria2-tests)
9
10 (deftest delete-from-plist*.middle
11 (let ((input (list 'a 1 'b 2 'c 3 'd 4 'd 5)))
12 (multiple-value-list (delete-from-plist* input 'b 'c)))
13 ((a 1 d 4 d 5)
14 ((c . 3) (b . 2))))
15
16 (deftest delete-from-plist*.start
17 (let ((input (list 'a 1 'b 2 'c 3 'd 4 'd 5)))
18 (multiple-value-list (delete-from-plist* input 'a 'c)))
19 ((b 2 d 4 d 5)
20 ((c . 3) (a . 1))))
21
22
23 ;; Control Flow tests
24
25 (deftest line-up-first.no-form
26 (values
27 (equal (macroexpand '(line-up-first 5))
28 5)
29 (equal (macroexpand '(line-up-first (+ 1 2)))
30 '(+ 1 2)))
31 t
32 t)
33
34 (deftest line-up-first.function-names-are-threaded
35 (values
36 (equal (macroexpand '(line-up-first 5 -))
37 '(- 5))
38 (equal (macroexpand '(line-up-first (+ 1 2) -))
39 '(- (+ 1 2))))
40 t
41 t)
42
43 (deftest line-up-first.list-promotion
44 (macroexpand '(line-up-first
45 5
46 (+ 20)
47 (/ 25)
48 -
49 (+ 40)))
50 (+ (- (/ (+ 5 20) 25)) 40)
51 t)
52
53 (deftest line-up-first.multiple-args
54 (macroexpand '(line-up-first
55 "this-is-a-string"
56 (subseq 0 4)))
57 (subseq "this-is-a-string" 0 4)
58 t)
59
60 (deftest line-up-first.several-examples
61 (values
62 (equal (line-up-first (+ 40 2)) 42)
63 (equal (line-up-first
64 5
65 (+ 20)
66 (/ 25)
67 -
68 (+ 40)) 39)
69 (equal (line-up-first
70 "this-is-a-string"
71 (subseq 4 5)
72 (string-trim "--------good"))
73 "good"))
74 t
75 t
76 t)
77
78 ;; Thread last tests
79
80 (deftest line-up-last.no-forms
81 (values
82 (equal (macroexpand '(line-up-last 5)) 5)
83 (equal (macroexpand '(line-up-last (+ 1 2))) '(+ 1 2)))
84 t
85 t)
86
87 (deftest line-up-last.function-names-are-threaded
88 (values (equal (macroexpand
89 '(line-up-last 5
90 -))
91 '(- 5))
92 (equal (macroexpand
93 '(line-up-last (+ 1 2)
94 -))
95 '(- (+ 1 2))))
96 t
97 t)
98
99 (deftest line-up-last.lisp-promotion
100 (macroexpand '(line-up-last
101 5
102 (+ 20)
103 (/ 25)
104 -
105 (+ 40)))
106 (+ 40 (- (/ 25 (+ 20 5))))
107 t)
108
109 (deftest line-up-last.several-examples
110 (values (equal (line-up-last (+ 40 2)) 42)
111 (equal (line-up-last
112 5
113 (+ 20)
114 (/ 25)
115 -
116 (+ 40))
117 39)
118 (equal (line-up-last
119 (list 1 -2 3 -4 5)
120 (mapcar #'abs)
121 (reduce #'+)
122 (format nil "abs sum is: ~D"))
123 "abs sum is: 15"))
124 t
125 t
126 t)