changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate lisp/lib/cli/tests/pkg.lisp

changeset 689: 2e7d93b892a5
parent: 517c65b51e6b
author: Richard Westhaver <ellis@rwest.io>
date: Tue, 01 Oct 2024 22:29:08 -0400
permissions: -rw-r--r--
description: cli shell tests init
688
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1
 ;;; cli/tests.lisp --- CLI Tests
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
2
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
3
 ;;
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
4
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
5
 ;;; Code:
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
6
 (defpackage :cli/tests
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
7
   (:use :cl :std :rt :cli :cli/shell :cli/progress :cli/spark :cli/repl :cli/ansi :cli/prompt :cli/clap :cli/tools/sbcl :dat/sxp))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
8
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
9
 (in-package :cli/tests)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
10
 (defsuite :cli)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
11
 (in-suite :cli)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
12
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
13
 ;; TODO: needs to be compiled outside scope of test - contender for
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
14
 ;; fixture API
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
15
 (defprompt tpfoo :prompt "testing:")
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
16
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
17
 (deftest cli-prompt (:skip t)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
18
   "Test CLI prompts"
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
19
   (defvar tcoll nil)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
20
   (defvar thist nil)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
21
   (let ((*standard-input* (make-string-input-stream 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
22
 			   (format nil "~A~%~A~%~%" "foobar" "foobar"))))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
23
     ;; prompts 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
24
     (is (string= (tpfoo-prompt) "foobar"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
25
     (is (string= "foobar"
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
26
                  (completing-read "nothing: " tcoll :history thist :default "foobar")))))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
27
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
28
 (deftest progress ()
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
29
   (flet ((%step () (cli/progress::update 1)))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
30
     (let ((*progress-bar-enabled* t)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
31
           (n 100))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
32
       (with-progress-bar (n "TEST: # of steps = ~a" n)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
33
         (dotimes (i n) (%step))))))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
34
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
35
 (deftest spark ()
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
36
   (is (string= 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
37
        (spark '(1 5 22 13 5))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
38
        "▁▂█▅▂"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
39
   (is (string= 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
40
        (spark '(5.5 20))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
41
        "▁█"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
42
   (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
43
        (spark '(1 2 3 4 100 5 10 20 50 300))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
44
        "▁▁▁▁▃▁▁▁▂█"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
45
   (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
46
        (spark '(1 50 100))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
47
        "▁▄█"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
48
   (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
49
        (spark '(2 4 8))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
50
        "▁▃█"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
51
   (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
52
        (spark '(1 2 3 4 5))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
53
        "▁▂▄▆█"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
54
   (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
55
        (spark '(0 30 55 80 33 150))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
56
        "▁▂▃▄▂█"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
57
   ;; null
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
58
   (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
59
        (spark '())
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
60
        ""))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
61
   ;; singleton
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
62
   (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
63
        (spark '(42))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
64
        "▁"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
65
   ;; constant
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
66
   (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
67
        (spark '(42 42))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
68
        "▁▁"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
69
   ;; min/max
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
70
   (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
71
        (spark '(0 30 55 80 33 150) :min -100)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
72
        "▃▄▅▆▄█"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
73
   (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
74
        (spark '(0 30 55 80 33 150) :max 50)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
75
        "▁▅██▅█"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
76
   (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
77
        (spark '(0 30 55 80 33 150) :min 30 :max 80)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
78
        "▁▁▄█▁█"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
79
   ;; double-float, minus
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
80
   (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
81
        (spark '(1.000000000005d0 0.000000000005d0 1.0d0))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
82
        "█▁▇"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
83
   (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
84
        (spark '(-1 0 -1))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
85
        "▁█▁"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
86
   (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
87
        (spark '(-1.000000000005d0 0.000000000005d0 -1.0d0))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
88
        "▁█▁"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
89
   ;; *ticks*
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
90
   (let ((ternary '(-1 0 1 -1 1 0 0 -1 1 1 0)))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
91
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
92
          (spark ternary)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
93
          "▁▄█▁█▄▄▁██▄"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
94
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
95
          (let ((*ticks* #(#\_ #\- #\¯)))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
96
            (spark ternary))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
97
          "_-¯_¯--_¯¯-"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
98
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
99
          (let ((*ticks* #(#\▄ #\⎯ #\▀)))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
100
            (spark ternary))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
101
          "▄⎯▀▄▀⎯⎯▄▀▀⎯"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
102
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
103
          (let ((*ticks* #(#\E #\O)))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
104
            (spark '(4 8 15 22 42) :key (lambda (n) (mod n 2))))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
105
          "EEOEE")))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
106
   ;; key
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
107
   (flet ((range (start end) (loop for i from start below end collect i))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
108
          (fib (n) (loop for x = 0 then y
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
109
                         and y = 1 then (+ x y)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
110
                         repeat n
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
111
                         finally (return x)))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
112
          (fac (n) (labels ((rec (n acc) (if (<= n 1) acc (rec (1- n) (* n acc)))))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
113
                     (rec n 1))))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
114
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
115
          (spark (range 0 51)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
116
                 :key (lambda (x) (sin (* x pi 1/4))))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
117
          "▄▆█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
118
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
119
          (spark (range 0 51)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
120
                 :key (lambda (x) (cos (* x pi 1/4))))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
121
          "█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█▆▄"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
122
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
123
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
124
          (spark (range 0 51)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
125
                 :key (lambda (x) (abs (cis (* x pi 1/4)))))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
126
          "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
127
     
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
128
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
129
          (spark (range 0 51)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
130
                 :key (lambda (x) (float (phase (cis (* x pi 1/4))) 1.0)))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
131
          "▄▅▆▇█▁▁▂▄▅▆▇█▁▁▂▄▅▆▇█▁▁▂▄▅▆▇█▁▁▂▄▅▆▇█▁▁▂▄▅▆▇█▁▁▂▄▅▆"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
132
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
133
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
134
          (spark (range 1 7) :key #'log)   
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
135
          "▁▃▅▆▇█"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
136
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
137
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
138
          (spark (range 1 7) :key #'sqrt)  
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
139
          "▁▃▄▅▆█"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
140
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
141
          (spark (range 1 7))              
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
142
          "▁▂▃▅▆█"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
143
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
144
          (spark (range 1 7) :key #'fib)   
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
145
          "▁▁▂▃▅█"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
146
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
147
          (spark (range 1 7) :key #'exp)   
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
148
          "▁▁▁▁▃█"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
149
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
150
          (spark (range 1 7) :key #'fac)   
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
151
          "▁▁▁▁▂█"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
152
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
153
          (spark (range 1 7) :key #'isqrt) 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
154
          "▁▁▁███"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
155
     ;; misc
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
156
     (flet ((lbits (n) (spark (map 'list #'digit-char-p (write-to-string n :base 2)))))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
157
       (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
158
            (lbits 42) 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
159
            "█▁█▁█▁"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
160
       (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
161
            (lbits 43) 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
162
            "█▁█▁██"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
163
       (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
164
            (lbits 44) 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
165
            "█▁██▁▁"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
166
       (is (string= 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
167
            (lbits 45) 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
168
            "█▁██▁█")))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
169
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
170
     ;; VSPARK
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
171
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
172
          (vspark '())
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
173
          ""))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
174
     ;; singleton
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
175
     (is (string= 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
176
          (vspark '(1))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
177
          "
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
178
 1                      1.5                       2
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
179
 ˫-----------------------+------------------------˧
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
180
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
181
 "))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
182
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
183
     ;; constant
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
184
     (is (string= 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
185
          (vspark '(1 1))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
186
          "
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
187
 1                      1.5                       2
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
188
 ˫-----------------------+------------------------˧
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
189
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
190
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
191
 "))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
192
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
193
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
194
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
195
          (vspark '(0 30 55 80 33 150))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
196
          "
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
197
 0                      75                      150
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
198
 ˫-----------------------+------------------------˧
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
199
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
200
 ██████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
201
 ██████████████████▍
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
202
 ██████████████████████████▋
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
203
 ███████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
204
 ██████████████████████████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
205
 "))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
206
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
207
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
208
     ;; min, max
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
209
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
210
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
211
          (vspark '(0 30 55 80 33 150) :min -100)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
212
          "
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
213
 -100                    25                     150
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
214
 ˫-----------------------+------------------------˧
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
215
 ████████████████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
216
 ██████████████████████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
217
 ███████████████████████████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
218
 ████████████████████████████████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
219
 ██████████████████████████▋
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
220
 ██████████████████████████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
221
 "))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
222
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
223
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
224
          (vspark '(0 30 55 80 33 150) :max 50)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
225
          "
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
226
 0                      25                       50
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
227
 ˫-----------------------+------------------------˧
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
228
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
229
 ██████████████████████████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
230
 ██████████████████████████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
231
 ██████████████████████████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
232
 █████████████████████████████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
233
 ██████████████████████████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
234
 "))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
235
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
236
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
237
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
238
          (vspark '(0 30 55 80 33 150) :min 30 :max 80)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
239
          "
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
240
 30                      55                      80
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
241
 ˫-----------------------+------------------------˧
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
242
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
243
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
244
 █████████████████████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
245
 ██████████████████████████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
246
 ███▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
247
 ██████████████████████████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
248
 "))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
249
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
250
     ;; labels
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
251
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
252
          (vspark '(1 0 .5) :labels '("on" "off" "unknown")
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
253
                            :size 1
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
254
                            :scale? nil)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
255
          "
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
256
      on █
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
257
     off ▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
258
 unknown ▌
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
259
 "))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
260
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
261
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
262
          (vspark '(1 0 .5) :labels '("on" "off")
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
263
                            :size 1
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
264
                            :scale? nil)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
265
          "
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
266
  on █
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
267
 off ▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
268
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
269
 "))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
270
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
271
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
272
          (vspark '(1 0) :labels '("on" "off" "unknown")
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
273
                         :size 1
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
274
                         :scale? nil)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
275
          "
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
276
  on █
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
277
 off ▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
278
 "))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
279
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
280
     ;; key
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
281
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
282
          (vspark '(0 1 2 3 4 5 6 7 8) :key (lambda (x) (sin (* x pi 1/4))))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
283
          "
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
284
 -1.0                    0.0                    1.0
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
285
 ˫-----------------------+------------------------˧
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
286
 █████████████████████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
287
 ██████████████████████████████████████████▋
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
288
 ██████████████████████████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
289
 ██████████████████████████████████████████▋
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
290
 █████████████████████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
291
 ███████▍
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
292
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
293
 ███████▍
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
294
 ████████████████████████▉
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
295
 "))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
296
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
297
     ;; size
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
298
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
299
          (vspark '(0 1 2 3 4 5 6 7 8) :key (lambda (x) (sin (* x pi 1/4)))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
300
                                       :size 10)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
301
          "
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
302
 -1.0   1.0
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
303
 ˫--------˧
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
304
 █████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
305
 ████████▌
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
306
 ██████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
307
 ████████▌
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
308
 █████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
309
 █▌
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
310
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
311
 █▌
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
312
 ████▉
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
313
 "))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
314
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
315
     ;; scale (mid-point)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
316
     (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
317
          (vspark '(0 1 2 3 4 5 6 7 8) :key (lambda (x) (sin (* x pi 1/4)))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
318
                                       :size 20)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
319
          "
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
320
 -1.0     0.0     1.0
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
321
 ˫--------+---------˧
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
322
 ██████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
323
 █████████████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
324
 ████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
325
 █████████████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
326
 ██████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
327
 ██▉
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
328
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
329
 ██▉
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
330
 █████████▉
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
331
 "))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
332
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
333
     (let ((life-expectancies '(("Africa" 56)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
334
                                ("Americans" 76)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
335
                                ("South-East Asia" 67)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
336
                                ("Europe" 76)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
337
                                ("Eastern Mediterranean" 68)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
338
                                ("Western Pacific" 76)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
339
                                ("Global" 70))))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
340
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
341
       (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
342
            (vspark life-expectancies :key #'second)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
343
            "
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
344
 56                      66                      76
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
345
 ˫-----------------------+------------------------˧
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
346
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
347
 ██████████████████████████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
348
 ███████████████████████████▌
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
349
 ██████████████████████████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
350
 ██████████████████████████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
351
 ██████████████████████████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
352
 ███████████████████████████████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
353
 "))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
354
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
355
       ;; newline?
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
356
       (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
357
            (vspark life-expectancies :key #'second :scale? nil :newline? nil)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
358
            "▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
359
 ██████████████████████████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
360
 ███████████████████████████▌
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
361
 ██████████████████████████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
362
 ██████████████████████████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
363
 ██████████████████████████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
364
 ███████████████████████████████████▏"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
365
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
366
       ;; scale?
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
367
       (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
368
            (vspark life-expectancies :key #'second :scale? nil)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
369
            "
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
370
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
371
 ██████████████████████████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
372
 ███████████████████████████▌
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
373
 ██████████████████████████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
374
 ██████████████████████████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
375
 ██████████████████████████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
376
 ███████████████████████████████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
377
 "))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
378
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
379
       ;; labels
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
380
       (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
381
            (vspark life-expectancies
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
382
                    :key   #'second
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
383
                    :labels (mapcar #'first life-expectancies))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
384
            "
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
385
                       56           66           76
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
386
                       ˫------------+-------------˧
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
387
                Africa ▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
388
             Americans ████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
389
       South-East Asia ███████████████▍
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
390
                Europe ████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
391
 Eastern Mediterranean ████████████████▊
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
392
       Western Pacific ████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
393
                Global ███████████████████▋
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
394
 "))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
395
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
396
       ;; title
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
397
       (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
398
            (vspark life-expectancies
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
399
                    :min 50 :max 80
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
400
                    :key    #'second
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
401
                    :labels (mapcar #'first life-expectancies)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
402
                    :title "Life Expectancy")
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
403
            "
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
404
                  Life Expectancy                  
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
405
                       50           65           80
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
406
                       ˫------------+-------------˧
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
407
                Africa █████▋
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
408
             Americans ████████████████████████▎
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
409
       South-East Asia ███████████████▉
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
410
                Europe ████████████████████████▎
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
411
 Eastern Mediterranean ████████████████▊
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
412
       Western Pacific ████████████████████████▎
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
413
                Global ██████████████████▋
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
414
 "))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
415
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
416
       (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
417
            (spark (range 0 15) :key #'fib)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
418
            "▁▁▁▁▁▁▁▁▁▁▂▂▃▅█"))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
419
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
420
       (is (string=
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
421
            (vspark (range 0 15) :key #'fib)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
422
            "
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
423
 0                    188.5                     377
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
424
 ˫-----------------------+------------------------˧
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
425
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
426
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
427
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
428
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
429
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
430
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
431
 █▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
432
 █▊
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
433
 ██▊
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
434
 ████▌
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
435
 ███████▍
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
436
 ███████████▊
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
437
 ███████████████████▏
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
438
 ██████████████████████████████▉
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
439
 ██████████████████████████████████████████████████
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
440
 ")))))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
441
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
442
 (deftest repl ())
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
443
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
444
 (deftest env ()
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
445
   (ld-library-path-list)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
446
   (is (exec-path-list))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
447
   (is (find-exe "sbcl")))
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
448
 
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
449
 (deftest sbcl-tools ()
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
450
   (with-sbcl (:noinform t :quit t)
517c65b51e6b clap tests
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
451
     (print 1)))