changelog shortlog graph tags branches changeset files file revisions raw help

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

changeset 644: f59072409c7a
parent: f901de70a80e
child: 3e6a17fb5712
author: Richard Westhaver <ellis@rwest.io>
date: Tue, 10 Sep 2024 21:52:14 -0400
permissions: -rw-r--r--
description: revert cli-cmds back to list instead of &rest
580
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 560
diff changeset
1
 ;;; cli/tests.lisp --- CLI Tests
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 560
diff changeset
2
 
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 560
diff changeset
3
 ;;
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 560
diff changeset
4
 
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 560
diff changeset
5
 ;;; Code:
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
6
 (defpackage :cli/tests
643
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
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))
426
3e721a3349a0 completed phase2 of clap migration
Richard Westhaver <ellis@rwest.io>
parents: 405
diff changeset
8
 
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
9
 (in-package :cli/tests)
405
1816f9c53453 work on sk.el
Richard Westhaver <ellis@rwest.io>
parents: 381
diff changeset
10
 (declaim (optimize (debug 3) (safety 3)))
109
a5adbe8640b0 tests, bug fixes, parser init
ellis <ellis@rwest.io>
parents: 96
diff changeset
11
 (defsuite :cli)
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
12
 (in-suite :cli)
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
13
 
230
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
14
 (defun ansi-t01 ()
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
15
   (erase)
381
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
16
     (cursor-position 0 0)
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
17
     (princ "0")
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
18
     (cursor-position 2 2)
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
19
     (princ "1")
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
20
     (cursor-position 5 15)
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
21
     (princ "test")
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
22
     (cursor-position 10 15)
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
23
     (force-output)
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
24
   (with-input-from-string (in (format nil "test~%~%"))
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
25
     (let ((a (read-line in)))
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
26
       (cursor-position 12 15)
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
27
       (princ a)
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
28
       (force-output))))
230
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
29
 
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
30
 (defun ansi-t02 ()
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
31
   (print "normal")
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
32
   (.sgr 1)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
33
   (print "bold")
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
34
   (.sgr 4)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
35
   (print "bold underline")
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
36
   (.sgr 7)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
37
   (print "bold underline reverse")
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
38
   (.sgr 22)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
39
   (print "underline reverse")
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
40
   (.sgr 24)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
41
   (print "reverse")
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
42
   (.sgr 27)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
43
   (print "normal")
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
44
   (.sgr 1 4 7)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
45
   (print "bold underline reverse")
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
46
   (.sgr 0)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
47
   (print "normal")
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
48
   (force-output))
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
49
 
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
50
 (defun ansi-t03 ()
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
51
   "Display the 256 color palette."
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
52
   (clear)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
53
   (loop for i from 0 to 255 do
381
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
54
            (.sgr 48 5 i)
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
55
            (princ #\space))
230
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
56
   (terpri)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
57
   (.sgr 0)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
58
   (loop for i from 0 to 255 do
381
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
59
            (.sgr 38 5 i)
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
60
            (princ "X"))
230
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
61
   (.sgr 0)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
62
   (force-output)
643
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
diff changeset
63
   ;; (sleep 3)
230
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
64
   (.ris)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
65
   (force-output))
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
66
 
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
67
 (defun ansi-t04 ()
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
68
   "Hide and show the cursor."
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
69
   (princ "Cursor visible:")
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
70
   (force-output)
643
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
diff changeset
71
   ;; (sleep 2)
230
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
72
   (terpri)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
73
   (princ "Cursor invisible:")
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
74
   (hide-cursor)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
75
   (force-output)
643
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
diff changeset
76
   ;; (sleep 2)
230
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
77
   (terpri)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
78
   (princ "Cursor visible:")
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
79
   (show-cursor)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
80
   (force-output)
643
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
diff changeset
81
   ;; (sleep 2)
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
diff changeset
82
   )
230
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
83
 
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
84
 (defun ansi-t05 ()
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
85
   "Switch to and back from the alternate screen buffer."
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
86
   (princ "Normal screen buffer. ")
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
87
   (force-output)
643
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
diff changeset
88
   ;; (sleep 2)
230
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
89
   (save-cursor-position)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
90
   (use-alternate-screen-buffer)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
91
   (clear)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
92
   (princ "Alternate screen buffer.")
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
93
   (force-output)
643
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
diff changeset
94
   ;; (sleep 2)
230
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
95
   (use-normal-screen-buffer)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
96
   (restore-cursor-position)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
97
   (princ "Back to Normal screen buffer.")
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
98
   (force-output)
643
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
diff changeset
99
   ;; (sleep 1)
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
diff changeset
100
   )
230
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
101
 
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
102
 (defun ansi-t06 ()
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
103
   "Set individual termios flags to enable raw and disable echo mode.
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
104
 
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
105
 Enabling raw mode allows read-char to return immediately after a key is pressed.
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
106
 
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
107
 In the default cooked mode, the entry has to be confirmed by pressing enter."
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
108
   (set-tty-mode t :ignbrk nil
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
109
                   :brkint nil
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
110
                   :parmrk nil
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
111
                   :istrip nil
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
112
                   :inlcr  nil
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
113
                   :igncr  nil
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
114
                   :icrnl  nil
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
115
                   :ixon   nil
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
116
                   :opost  nil
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
117
                   :echo   nil
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
118
                   :echonl nil
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
119
                   :icanon nil
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
120
                   :isig   nil
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
121
                   :iexten nil
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
122
                   :csize  nil
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
123
                   :parenb nil
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
124
                   :vmin 1
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
125
                   :vtime 0)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
126
   (erase)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
127
   (cursor-position 1 1)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
128
   (force-output)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
129
   (let ((a (read-char)))
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
130
     (cursor-position 10 5)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
131
     (princ a)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
132
     (force-output))
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
133
 
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
134
   (set-tty-mode t :echo t
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
135
                   :brkint t
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
136
                   :ignpar t
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
137
                   :istrip t
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
138
                   :icrnl t
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
139
                   :ixon t
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
140
                   :opost t
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
141
                   :isig t
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
142
                   :icanon t
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
143
                   :veol 0))
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
144
 
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
145
 (defun ansi-t07 ()
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
146
   "Use combination modes that consist of several individual flags.
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
147
 
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
148
 Cooked and raw are opposite modes. Enabling cooked disbles raw and vice versa."
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
149
   (set-tty-mode t :cooked nil)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
150
   (erase)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
151
   (cursor-position 1 1)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
152
   (force-output)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
153
   (let ((a (read-char)))
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
154
     (cursor-position 3 1)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
155
     (princ a)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
156
     (force-output))
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
157
   (set-tty-mode t :raw nil))
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
158
 
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
159
 (defun ansi-t08 ()
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
160
   "Why doesnt calling the stty utility work?"
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
161
   (uiop:run-program "stty raw -echo" :ignore-error-status t)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
162
   (erase)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
163
   (cursor-position 1 1)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
164
   (force-output)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
165
   (let ((a (read-char)))
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
166
     (cursor-position 2 1)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
167
     (princ a)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
168
     (force-output))
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
169
   (uiop:run-program "stty -raw echo" :ignore-error-status t))
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
170
 
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
171
 (defun ansi-t09 ()
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
172
   "Query terminal size with ANSI escape sequences."
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
173
   ;; Put the terminal into raw mode so we can read the "user input"
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
174
   ;; of the reply char by char
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
175
   ;; Turn off the echo or the sequence will be displayed
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
176
   (set-tty-mode t :cooked nil :echo nil)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
177
   (save-cursor-position)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
178
   ;; Go to the bottom right corner of the terminal by attempting
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
179
   ;; to go to some high value of row and column
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
180
   (cursor-position 999 999)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
181
   (let (chars)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
182
     ;; The terminal returns an escape sequence to the standard input
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
183
     (device-status-report)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
184
     (force-output)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
185
     ;; The reply isnt immediately available, the terminal does need
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
186
     ;; some time to answer
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
187
     (sleep 0.1)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
188
     ;; The reply has to be read as if the user typed an escape sequence
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
189
     (loop for i = (read-char-no-hang *standard-input* nil)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
190
           until (null i)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
191
           do (push i chars))
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
192
     ;; Put the terminal back into its initial cooked state
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
193
     (set-tty-mode t :raw nil :echo t)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
194
     (restore-cursor-position)
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
195
     ;; Return the read sequence as a list of characters.
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
196
     (nreverse chars)))
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
197
 
282991a71fe5 fix ansi and add equiv
Richard Westhaver <ellis@rwest.io>
parents: 229
diff changeset
198
 (deftest ansi ()
381
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
199
   (with-input-from-string (in (format nil "~%~%"))
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
200
     (ansi-t01)
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
201
     (ansi-t02)
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
202
     (ansi-t03)
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
203
     (ansi-t04)
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
204
     (ansi-t05)))
116
797d729e14cc added cli/ansi and did some work on ffi/xkb
ellis <ellis@rwest.io>
parents: 110
diff changeset
205
 
381
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
206
 ;; TODO: needs to be compiled outside scope of test - contender for
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
207
 ;; fixture API
405
1816f9c53453 work on sk.el
Richard Westhaver <ellis@rwest.io>
parents: 381
diff changeset
208
 (defprompt tpfoo :prompt "testing:")
381
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
209
 
643
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
diff changeset
210
 (deftest cli-prompt (:skip t)
110
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
211
   "Test CLI prompts"
157
193d1ea7d684 renamed ascii functions - prefixed with . to prevent conflicts with cl symbol ED
ellis <ellis@rwest.io>
parents: 117
diff changeset
212
   (defvar tcoll nil)
193d1ea7d684 renamed ascii functions - prefixed with . to prevent conflicts with cl symbol ED
ellis <ellis@rwest.io>
parents: 117
diff changeset
213
   (defvar thist nil)
110
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
214
   (let ((*standard-input* (make-string-input-stream 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
215
 			   (format nil "~A~%~A~%~%" "foobar" "foobar"))))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
216
     ;; prompts 
110
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
217
     (is (string= (tpfoo-prompt) "foobar"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
218
     (is (string= "foobar"
117
d0b235557fab test fixes, cli refactoring
ellis <ellis@rwest.io>
parents: 116
diff changeset
219
                  (completing-read "nothing: " tcoll :history thist :default "foobar")))))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
220
 
584
35bb0d5ec95e bug fixes, added freedesktop.org.xml rule. more work on prolog/dql - considering lib/lang+forrth..
Richard Westhaver <ellis@rwest.io>
parents: 580
diff changeset
221
 (defparameter *opts* '((:name "foo" :global t :description "bar")
35bb0d5ec95e bug fixes, added freedesktop.org.xml rule. more work on prolog/dql - considering lib/lang+forrth..
Richard Westhaver <ellis@rwest.io>
parents: 580
diff changeset
222
 		       (:name "bar" :description "foo")))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
223
 
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
224
 (defparameter *cmd1* (make-cli :cmd :name "holla" :opts *opts* :description "cmd1 description"))
643
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
diff changeset
225
 (defparameter *cmd2* (make-cli :cmd :name "ayo" :cmds (vector *cmd1*) :opts *opts* :description "cmd1 description"))
644
f59072409c7a revert cli-cmds back to list instead of &rest
Richard Westhaver <ellis@rwest.io>
parents: 643
diff changeset
226
 (defparameter *cmds* (make-cmds (list `(:name "baz" :description "baz" :opts ,*opts*) *cmd1* *cmd2*)))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
227
 
377
49357f8b5e65 xdb fixes (one test still broken), fixed cli main test
Richard Westhaver <ellis@rwest.io>
parents: 289
diff changeset
228
 (defparameter *cli* (make-cli :cli :opts *opts* :cmds *cmds* :description "test cli"))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
229
 
626
cc13027df6fa ulang and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 584
diff changeset
230
 
381
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
231
 (deftest clap-basic ()
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
232
   "test basic CLAP functionality."
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
233
   (let ((cli *cli*))
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
234
     (is (eq (make-shorty "test") #\t))
643
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
diff changeset
235
     (is (equalp (proc-args cli '("-f" "baz" "--bar=fax")) ;; not eql
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
236
 		(make-cli-ast 
381
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
237
 		 (list (make-cli-node 'opt (find-short-opts cli #\f))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
238
 		       (make-cli-node 'cmd (find-cmd cli "baz"))
381
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
239
 		       (make-cli-node 'opt (find-opts cli "bar"))
96
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
240
 		       (make-cli-node 'arg "fax")))))
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
241
     (is (parse-args cli '("--bar" "baz" "-f" "yaks")))
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
242
     (is (stringp
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
243
 	 (with-output-to-string (s)
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
244
 	   (print-version cli s)
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
245
 	   (print-usage cli s)
301fd45bbe73 big refactor of lisp code
ellis <ellis@rwest.io>
parents:
diff changeset
246
 	   (print-help cli s))))
643
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
diff changeset
247
     (is (string= "foobar" (cli/clap:parse-string-opt "foobar")))))
110
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
248
 
560
b9c64be96888 make cli/clap more dynamic
Richard Westhaver <ellis@rwest.io>
parents: 532
diff changeset
249
 (make-opt-parser thing *arg*)
479
ff3b057402d1 light cleanup
Richard Westhaver <ellis@rwest.io>
parents: 462
diff changeset
250
 
381
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
251
 (deftest clap-opts ()
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
252
   "CLAP opt tests."
626
cc13027df6fa ulang and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 584
diff changeset
253
   (is (reduce (lambda (x y) (and x y))
381
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
254
               (loop for k across *cli-opt-kinds* collect (cli-opt-kind-p k))))
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
255
   (is (parse-thing-opt t))
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
256
   (is (null (parse-thing-opt nil))))
386d51cf61ca add ffi/readline, net updates
Richard Westhaver <ellis@rwest.io>
parents: 377
diff changeset
257
 
110
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
258
 (deftest progress ()
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
259
   (flet ((%step () (cli/progress::update 1)))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
260
     (let ((*progress-bar-enabled* t)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
261
           (n 100))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
262
       (with-progress-bar (n "TEST: # of steps = ~a" n)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
263
         (dotimes (i n) (%step))))))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
264
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
265
 (deftest spark ()
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
266
   (is (string= 
426
3e721a3349a0 completed phase2 of clap migration
Richard Westhaver <ellis@rwest.io>
parents: 405
diff changeset
267
        (spark '(1 5 22 13 5))
110
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
268
        "▁▂█▅▂"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
269
   (is (string= 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
270
        (spark '(5.5 20))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
271
        "▁█"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
272
   (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
273
        (spark '(1 2 3 4 100 5 10 20 50 300))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
274
        "▁▁▁▁▃▁▁▁▂█"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
275
   (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
276
        (spark '(1 50 100))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
277
        "▁▄█"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
278
   (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
279
        (spark '(2 4 8))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
280
        "▁▃█"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
281
   (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
282
        (spark '(1 2 3 4 5))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
283
        "▁▂▄▆█"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
284
   (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
285
        (spark '(0 30 55 80 33 150))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
286
        "▁▂▃▄▂█"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
287
   ;; null
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
288
   (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
289
        (spark '())
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
290
        ""))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
291
   ;; singleton
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
292
   (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
293
        (spark '(42))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
294
        "▁"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
295
   ;; constant
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
296
   (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
297
        (spark '(42 42))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
298
        "▁▁"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
299
   ;; min/max
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
300
   (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
301
        (spark '(0 30 55 80 33 150) :min -100)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
302
        "▃▄▅▆▄█"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
303
   (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
304
        (spark '(0 30 55 80 33 150) :max 50)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
305
        "▁▅██▅█"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
306
   (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
307
        (spark '(0 30 55 80 33 150) :min 30 :max 80)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
308
        "▁▁▄█▁█"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
309
   ;; double-float, minus
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
310
   (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
311
        (spark '(1.000000000005d0 0.000000000005d0 1.0d0))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
312
        "█▁▇"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
313
   (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
314
        (spark '(-1 0 -1))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
315
        "▁█▁"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
316
   (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
317
        (spark '(-1.000000000005d0 0.000000000005d0 -1.0d0))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
318
        "▁█▁"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
319
   ;; *ticks*
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
320
   (let ((ternary '(-1 0 1 -1 1 0 0 -1 1 1 0)))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
321
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
322
          (spark ternary)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
323
          "▁▄█▁█▄▄▁██▄"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
324
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
325
          (let ((*ticks* #(#\_ #\- #\¯)))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
326
            (spark ternary))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
327
          "_-¯_¯--_¯¯-"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
328
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
329
          (let ((*ticks* #(#\▄ #\⎯ #\▀)))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
330
            (spark ternary))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
331
          "▄⎯▀▄▀⎯⎯▄▀▀⎯"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
332
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
333
          (let ((*ticks* #(#\E #\O)))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
334
            (spark '(4 8 15 22 42) :key (lambda (n) (mod n 2))))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
335
          "EEOEE")))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
336
   ;; key
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
337
   (flet ((range (start end) (loop for i from start below end collect i))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
338
          (fib (n) (loop for x = 0 then y
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
339
                         and y = 1 then (+ x y)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
340
                         repeat n
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
341
                         finally (return x)))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
342
          (fac (n) (labels ((rec (n acc) (if (<= n 1) acc (rec (1- n) (* n acc)))))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
343
                     (rec n 1))))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
344
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
345
          (spark (range 0 51)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
346
                 :key (lambda (x) (sin (* x pi 1/4))))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
347
          "▄▆█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
348
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
349
          (spark (range 0 51)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
350
                 :key (lambda (x) (cos (* x pi 1/4))))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
351
          "█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█▆▄▂▁▂▄▆█▆▄"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
352
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
353
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
354
          (spark (range 0 51)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
355
                 :key (lambda (x) (abs (cis (* x pi 1/4)))))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
356
          "▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
357
     
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
358
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
359
          (spark (range 0 51)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
360
                 :key (lambda (x) (float (phase (cis (* x pi 1/4))) 1.0)))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
361
          "▄▅▆▇█▁▁▂▄▅▆▇█▁▁▂▄▅▆▇█▁▁▂▄▅▆▇█▁▁▂▄▅▆▇█▁▁▂▄▅▆▇█▁▁▂▄▅▆"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
362
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
363
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
364
          (spark (range 1 7) :key #'log)   
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
365
          "▁▃▅▆▇█"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
366
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
367
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
368
          (spark (range 1 7) :key #'sqrt)  
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
369
          "▁▃▄▅▆█"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
370
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
371
          (spark (range 1 7))              
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
372
          "▁▂▃▅▆█"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
373
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
374
          (spark (range 1 7) :key #'fib)   
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
375
          "▁▁▂▃▅█"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
376
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
377
          (spark (range 1 7) :key #'exp)   
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
378
          "▁▁▁▁▃█"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
379
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
380
          (spark (range 1 7) :key #'fac)   
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
381
          "▁▁▁▁▂█"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
382
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
383
          (spark (range 1 7) :key #'isqrt) 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
384
          "▁▁▁███"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
385
     ;; misc
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
386
     (flet ((lbits (n) (spark (map 'list #'digit-char-p (write-to-string n :base 2)))))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
387
       (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
388
            (lbits 42) 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
389
            "█▁█▁█▁"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
390
       (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
391
            (lbits 43) 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
392
            "█▁█▁██"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
393
       (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
394
            (lbits 44) 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
395
            "█▁██▁▁"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
396
       (is (string= 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
397
            (lbits 45) 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
398
            "█▁██▁█")))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
399
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
400
     ;; VSPARK
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
401
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
402
          (vspark '())
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
403
          ""))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
404
     ;; singleton
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
405
     (is (string= 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
406
          (vspark '(1))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
407
          "
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
408
 1                      1.5                       2
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
409
 ˫-----------------------+------------------------˧
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
410
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
411
 "))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
412
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
413
     ;; constant
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
414
     (is (string= 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
415
          (vspark '(1 1))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
416
          "
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
417
 1                      1.5                       2
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
418
 ˫-----------------------+------------------------˧
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
419
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
420
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
421
 "))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
422
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
423
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
424
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
425
          (vspark '(0 30 55 80 33 150))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
426
          "
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
427
 0                      75                      150
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
428
 ˫-----------------------+------------------------˧
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
429
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
430
 ██████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
431
 ██████████████████▍
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
432
 ██████████████████████████▋
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
433
 ███████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
434
 ██████████████████████████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
435
 "))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
436
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
437
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
438
     ;; min, max
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
439
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
440
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
441
          (vspark '(0 30 55 80 33 150) :min -100)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
442
          "
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
443
 -100                    25                     150
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
444
 ˫-----------------------+------------------------˧
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
445
 ████████████████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
446
 ██████████████████████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
447
 ███████████████████████████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
448
 ████████████████████████████████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
449
 ██████████████████████████▋
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
450
 ██████████████████████████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
451
 "))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
452
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
453
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
454
          (vspark '(0 30 55 80 33 150) :max 50)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
455
          "
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
456
 0                      25                       50
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
457
 ˫-----------------------+------------------------˧
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
458
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
459
 ██████████████████████████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
460
 ██████████████████████████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
461
 ██████████████████████████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
462
 █████████████████████████████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
463
 ██████████████████████████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
464
 "))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
465
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
466
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
467
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
468
          (vspark '(0 30 55 80 33 150) :min 30 :max 80)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
469
          "
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
470
 30                      55                      80
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
471
 ˫-----------------------+------------------------˧
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
472
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
473
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
474
 █████████████████████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
475
 ██████████████████████████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
476
 ███▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
477
 ██████████████████████████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
478
 "))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
479
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
480
     ;; labels
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
481
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
482
          (vspark '(1 0 .5) :labels '("on" "off" "unknown")
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
483
                            :size 1
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
484
                            :scale? nil)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
485
          "
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
486
      on █
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
487
     off ▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
488
 unknown ▌
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
489
 "))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
490
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
491
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
492
          (vspark '(1 0 .5) :labels '("on" "off")
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
493
                            :size 1
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
494
                            :scale? nil)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
495
          "
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
496
  on █
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
497
 off ▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
498
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
499
 "))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
500
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
501
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
502
          (vspark '(1 0) :labels '("on" "off" "unknown")
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
503
                         :size 1
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
504
                         :scale? nil)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
505
          "
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
506
  on █
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
507
 off ▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
508
 "))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
509
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
510
     ;; key
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
511
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
512
          (vspark '(0 1 2 3 4 5 6 7 8) :key (lambda (x) (sin (* x pi 1/4))))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
513
          "
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
514
 -1.0                    0.0                    1.0
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
515
 ˫-----------------------+------------------------˧
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
516
 █████████████████████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
517
 ██████████████████████████████████████████▋
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
518
 ██████████████████████████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
519
 ██████████████████████████████████████████▋
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
520
 █████████████████████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
521
 ███████▍
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
522
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
523
 ███████▍
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
524
 ████████████████████████▉
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
525
 "))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
526
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
527
     ;; size
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
528
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
529
          (vspark '(0 1 2 3 4 5 6 7 8) :key (lambda (x) (sin (* x pi 1/4)))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
530
                                       :size 10)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
531
          "
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
532
 -1.0   1.0
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
533
 ˫--------˧
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
534
 █████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
535
 ████████▌
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
536
 ██████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
537
 ████████▌
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
538
 █████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
539
 █▌
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
540
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
541
 █▌
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
542
 ████▉
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
543
 "))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
544
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
545
     ;; scale (mid-point)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
546
     (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
547
          (vspark '(0 1 2 3 4 5 6 7 8) :key (lambda (x) (sin (* x pi 1/4)))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
548
                                       :size 20)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
549
          "
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
550
 -1.0     0.0     1.0
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
551
 ˫--------+---------˧
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
552
 ██████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
553
 █████████████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
554
 ████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
555
 █████████████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
556
 ██████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
557
 ██▉
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
558
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
559
 ██▉
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
560
 █████████▉
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
561
 "))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
562
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
563
     (let ((life-expectancies '(("Africa" 56)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
564
                                ("Americans" 76)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
565
                                ("South-East Asia" 67)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
566
                                ("Europe" 76)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
567
                                ("Eastern Mediterranean" 68)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
568
                                ("Western Pacific" 76)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
569
                                ("Global" 70))))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
570
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
571
       (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
572
            (vspark life-expectancies :key #'second)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
573
            "
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
574
 56                      66                      76
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
575
 ˫-----------------------+------------------------˧
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
576
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
577
 ██████████████████████████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
578
 ███████████████████████████▌
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
579
 ██████████████████████████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
580
 ██████████████████████████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
581
 ██████████████████████████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
582
 ███████████████████████████████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
583
 "))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
584
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
585
       ;; newline?
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
586
       (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
587
            (vspark life-expectancies :key #'second :scale? nil :newline? nil)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
588
            "▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
589
 ██████████████████████████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
590
 ███████████████████████████▌
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
591
 ██████████████████████████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
592
 ██████████████████████████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
593
 ██████████████████████████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
594
 ███████████████████████████████████▏"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
595
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
596
       ;; scale?
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
597
       (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
598
            (vspark life-expectancies :key #'second :scale? nil)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
599
            "
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
600
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
601
 ██████████████████████████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
602
 ███████████████████████████▌
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
603
 ██████████████████████████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
604
 ██████████████████████████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
605
 ██████████████████████████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
606
 ███████████████████████████████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
607
 "))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
608
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
609
       ;; labels
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
610
       (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
611
            (vspark life-expectancies
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
612
                    :key   #'second
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
613
                    :labels (mapcar #'first life-expectancies))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
614
            "
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
615
                       56           66           76
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
616
                       ˫------------+-------------˧
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
617
                Africa ▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
618
             Americans ████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
619
       South-East Asia ███████████████▍
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
620
                Europe ████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
621
 Eastern Mediterranean ████████████████▊
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
622
       Western Pacific ████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
623
                Global ███████████████████▋
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
624
 "))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
625
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
626
       ;; title
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
627
       (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
628
            (vspark life-expectancies
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
629
                    :min 50 :max 80
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
630
                    :key    #'second
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
631
                    :labels (mapcar #'first life-expectancies)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
632
                    :title "Life Expectancy")
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
633
            "
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
634
                  Life Expectancy                  
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
635
                       50           65           80
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
636
                       ˫------------+-------------˧
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
637
                Africa █████▋
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
638
             Americans ████████████████████████▎
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
639
       South-East Asia ███████████████▉
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
640
                Europe ████████████████████████▎
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
641
 Eastern Mediterranean ████████████████▊
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
642
       Western Pacific ████████████████████████▎
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
643
                Global ██████████████████▋
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
644
 "))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
645
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
646
       (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
647
            (spark (range 0 15) :key #'fib)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
648
            "▁▁▁▁▁▁▁▁▁▁▂▂▃▅█"))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
649
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
650
       (is (string=
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
651
            (vspark (range 0 15) :key #'fib)
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
652
            "
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
653
 0                    188.5                     377
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
654
 ˫-----------------------+------------------------˧
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
655
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
656
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
657
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
658
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
659
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
660
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
661
 █▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
662
 █▊
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
663
 ██▊
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
664
 ████▌
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
665
 ███████▍
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
666
 ███████████▊
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
667
 ███████████████████▏
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
668
 ██████████████████████████████▉
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
669
 ██████████████████████████████████████████████████
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
670
 ")))))
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
671
 
cae8da4b1415 rocksdb macrofication, fixes for RDB (C Strings will be the death of me), removed PWN - quicklisp package conflict, smh.
ellis <ellis@rwest.io>
parents: 109
diff changeset
672
 (deftest repl ())
157
193d1ea7d684 renamed ascii functions - prefixed with . to prevent conflicts with cl symbol ED
ellis <ellis@rwest.io>
parents: 117
diff changeset
673
 
193d1ea7d684 renamed ascii functions - prefixed with . to prevent conflicts with cl symbol ED
ellis <ellis@rwest.io>
parents: 117
diff changeset
674
 (deftest env ()
193d1ea7d684 renamed ascii functions - prefixed with . to prevent conflicts with cl symbol ED
ellis <ellis@rwest.io>
parents: 117
diff changeset
675
   (is (ld-library-path-list))
193d1ea7d684 renamed ascii functions - prefixed with . to prevent conflicts with cl symbol ED
ellis <ellis@rwest.io>
parents: 117
diff changeset
676
   (is (exec-path-list))
193d1ea7d684 renamed ascii functions - prefixed with . to prevent conflicts with cl symbol ED
ellis <ellis@rwest.io>
parents: 117
diff changeset
677
   (is (find-exe "sbcl")))
229
7ca4cdbd52c2 bug fixes
Richard Westhaver <ellis@rwest.io>
parents: 157
diff changeset
678
 
626
cc13027df6fa ulang and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 584
diff changeset
679
 (deftest cli-ast ()
cc13027df6fa ulang and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 584
diff changeset
680
   "Validate the CLI/CLAP/AST parser."
643
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
diff changeset
681
   (with-cli () *cli*
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
diff changeset
682
     (is (string= (cli-opt-name (cli-node-form (car (ast (proc-args *cli* '("--foo" "1"))))))
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
diff changeset
683
                  "foo"))
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
diff changeset
684
     (is (string=
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
diff changeset
685
          (cli-opt-name (cli-node-form (car (ast (proc-args *cli* '("--foo=11"))))))
f901de70a80e opt fixes and test updates
Richard Westhaver <ellis@rwest.io>
parents: 626
diff changeset
686
          "foo"))))
289
c4682fedd73d added krypt lib, will probably add homer too
Richard Westhaver <ellis@rwest.io>
parents: 282
diff changeset
687
 
626
cc13027df6fa ulang and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 584
diff changeset
688
 (defmain (:exit nil :export nil)
cc13027df6fa ulang and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 584
diff changeset
689
   (with-cli () *cli*
cc13027df6fa ulang and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 584
diff changeset
690
     (log:trace! "defmain is OK")
cc13027df6fa ulang and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 584
diff changeset
691
     t))
580
571685ae64f1 queries, cli fixes, dat/csv, emacs org-columns
Richard Westhaver <ellis@rwest.io>
parents: 560
diff changeset
692
 
626
cc13027df6fa ulang and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 584
diff changeset
693
 (deftest clap-main ()
cc13027df6fa ulang and cli updates
Richard Westhaver <ellis@rwest.io>
parents: 584
diff changeset
694
   (is (null (funcall #'main))))
532
f6a340b92274 tests and fixes, added sbcl tools
Richard Westhaver <ellis@rwest.io>
parents: 479
diff changeset
695
 
f6a340b92274 tests and fixes, added sbcl tools
Richard Westhaver <ellis@rwest.io>
parents: 479
diff changeset
696
 (deftest sbcl-tools ()
f6a340b92274 tests and fixes, added sbcl tools
Richard Westhaver <ellis@rwest.io>
parents: 479
diff changeset
697
   (with-sbcl (:noinform t :quit t)
f6a340b92274 tests and fixes, added sbcl tools
Richard Westhaver <ellis@rwest.io>
parents: 479
diff changeset
698
     (print 1)))