nydp 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -34,6 +34,14 @@
34
34
  (map (fn (x) (* x x)) '(1 2 3))
35
35
  (1 4 9))
36
36
 
37
+ ("applies the function to a singleton argument"
38
+ (map (fn (x) (* x x)) 19)
39
+ 361)
40
+
41
+ ("preserves dotted lists"
42
+ (map (fn (x) (* x x)) '(1 2 3 4 . 5))
43
+ (1 4 9 16 . 25))
44
+
37
45
  ("maps a string join function over a list of strings"
38
46
  (test-foo "x" "y")
39
47
  ("a0 w0 x w0 y" "a0 w1 x w1 y" "a0 w2 x w2 y" "a0 w3 x w3 y"))
@@ -0,0 +1,57 @@
1
+ (examples-for intersperse
2
+ ("returns nil for nothing"
3
+ (intersperse 42)
4
+ nil)
5
+
6
+ ("returns nil for nil"
7
+ (intersperse 42 nil)
8
+ nil)
9
+
10
+ ("returns a singleton thing"
11
+ (intersperse 42 'a)
12
+ a)
13
+
14
+ ("returns a singleton list"
15
+ (intersperse 42 '(a))
16
+ (a))
17
+
18
+ ("returns list with argument between each element"
19
+ (intersperse 42 '(a b))
20
+ (a 42 b))
21
+
22
+ ("returns longer list with argument between each element"
23
+ (intersperse 42 '(a b c d e))
24
+ (a 42 b 42 c 42 d 42 e))
25
+
26
+ ("returns list with non-atomic argument between each element"
27
+ (intersperse '(+ +) '(a b c))
28
+ (a (+ +) b (+ +) c))
29
+
30
+ ("returns improper list with argument between each element"
31
+ (intersperse 'oo '(a b c . d))
32
+ (a oo b oo c oo . d)))
33
+
34
+ (examples-for intersperse-splicing
35
+ ("returns nil for nothing"
36
+ (intersperse-splicing 42)
37
+ nil)
38
+
39
+ ("returns nil for nil"
40
+ (intersperse-splicing 42 nil)
41
+ nil)
42
+
43
+ ("returns a singleton list"
44
+ (intersperse-splicing 42 '((a)))
45
+ (a))
46
+
47
+ ("returns list with argument between each element"
48
+ (intersperse-splicing 42 '((a) (b)))
49
+ (a 42 b))
50
+
51
+ ("returns longer list with argument between each element"
52
+ (intersperse-splicing 42 '((a b) (c d) (e)))
53
+ (a b 42 c d 42 e))
54
+
55
+ ("returns list with non-atomic argument between each element"
56
+ (intersperse-splicing '(+ +) '((a b) (c d) (e f g)))
57
+ (a b (+ +) c d (+ +) e f g)))
@@ -16,8 +16,12 @@
16
16
  (def tst-3-n (a b c . n) "success a: ~a b: ~b c: ~c . n: ~(inspect n)" )
17
17
  (def tst-4 (a b c d) "success a: ~a b: ~b c: ~c d: ~d" )
18
18
  (def tst-4-n (a b c d . n) "success a: ~a b: ~b c: ~c d: ~d . n: ~(inspect n)" )
19
- (def tst-5 (a b c d e) "success a: ~a b: ~b c: ~c d: ~d e: ~e" )
20
- (def tst-5-n (a b c d e . n) "success a: ~a b: ~b c: ~c d: ~d e: ~e . n: ~(inspect n)" )
19
+ (def tst-5 (a b c d e) "success a: ~a b: ~b c: ~c d: ~d e: ~e" )
20
+ (def tst-5-n (a b c d e . n) "success a: ~a b: ~b c: ~c d: ~d e: ~e . n: ~(inspect n)" )
21
+ (def tst-6 (a b c d e f) "success a: ~a b: ~b c: ~c d: ~d e: ~e f: ~f" )
22
+ (def tst-6-n (a b c d e f . n) "success a: ~a b: ~b c: ~c d: ~d e: ~e f: ~f . n: ~(inspect n)" )
23
+ (def tst-7 (a b c d e f g) "success a: ~a b: ~b c: ~c d: ~d e: ~e f: ~f g: ~g" )
24
+ (def tst-7-n (a b c d e f g . n) "success a: ~a b: ~b c: ~c d: ~d e: ~e f: ~f g: ~g . n: ~(inspect n)" )
21
25
 
22
26
  (register-test
23
27
  '(suite "Invocation Tests"
@@ -94,12 +98,14 @@
94
98
  ("five args" (tst-4 1 2 3 4 5) "success a: 1 b: 2 c: 3 d: 4" ))
95
99
 
96
100
  (suite "four params and rest param"
97
- ("no args" (tst-4-n) "success a: b: c: d: . n: nil" )
98
- ("one arg" (tst-4-n 1) "success a: 1 b: c: d: . n: nil" )
99
- ("two args" (tst-4-n 1 2) "success a: 1 b: 2 c: d: . n: nil" )
100
- ("three args" (tst-4-n 1 2 3) "success a: 1 b: 2 c: 3 d: . n: nil" )
101
- ("four args" (tst-4-n 1 2 3 4) "success a: 1 b: 2 c: 3 d: 4 . n: nil" )
102
- ("five args" (tst-4-n 1 2 3 4 5) "success a: 1 b: 2 c: 3 d: 4 . n: (5)" ))
101
+ ("no args" (tst-4-n) "success a: b: c: d: . n: nil" )
102
+ ("one arg" (tst-4-n 1) "success a: 1 b: c: d: . n: nil" )
103
+ ("two args" (tst-4-n 1 2) "success a: 1 b: 2 c: d: . n: nil" )
104
+ ("three args" (tst-4-n 1 2 3) "success a: 1 b: 2 c: 3 d: . n: nil" )
105
+ ("four args" (tst-4-n 1 2 3 4) "success a: 1 b: 2 c: 3 d: 4 . n: nil" )
106
+ ("five args" (tst-4-n 1 2 3 4 5) "success a: 1 b: 2 c: 3 d: 4 . n: (5)" )
107
+ ("six args" (tst-4-n 1 2 3 4 5 6) "success a: 1 b: 2 c: 3 d: 4 . n: (5 6)" )
108
+ ("seven args" (tst-4-n 1 2 3 4 5 6 7) "success a: 1 b: 2 c: 3 d: 4 . n: (5 6 7)" ))
103
109
 
104
110
  (suite "five params"
105
111
  ("no args" (tst-5) "success a: b: c: d: e: " )
@@ -107,7 +113,9 @@
107
113
  ("two args" (tst-5 1 2) "success a: 1 b: 2 c: d: e: " )
108
114
  ("three args" (tst-5 1 2 3) "success a: 1 b: 2 c: 3 d: e: " )
109
115
  ("four args" (tst-5 1 2 3 4) "success a: 1 b: 2 c: 3 d: 4 e: " )
110
- ("five args" (tst-5 1 2 3 4 5) "success a: 1 b: 2 c: 3 d: 4 e: 5" ))
116
+ ("five args" (tst-5 1 2 3 4 5) "success a: 1 b: 2 c: 3 d: 4 e: 5" )
117
+ ("six args" (tst-5 1 2 3 4 5 6) "success a: 1 b: 2 c: 3 d: 4 e: 5" )
118
+ ("seven args" (tst-5 1 2 3 4 5 6 7) "success a: 1 b: 2 c: 3 d: 4 e: 5" ))
111
119
 
112
120
  (suite "five params and rest param"
113
121
  ("no args" (tst-5-n) "success a: b: c: d: e: . n: nil" )
@@ -115,5 +123,47 @@
115
123
  ("two args" (tst-5-n 1 2) "success a: 1 b: 2 c: d: e: . n: nil" )
116
124
  ("three args" (tst-5-n 1 2 3) "success a: 1 b: 2 c: 3 d: e: . n: nil" )
117
125
  ("four args" (tst-5-n 1 2 3 4) "success a: 1 b: 2 c: 3 d: 4 e: . n: nil" )
118
- ("five args" (tst-5-n 1 2 3 4 5) "success a: 1 b: 2 c: 3 d: 4 e: 5 . n: nil" ))
126
+ ("five args" (tst-5-n 1 2 3 4 5) "success a: 1 b: 2 c: 3 d: 4 e: 5 . n: nil" )
127
+ ("six args" (tst-5-n 1 2 3 4 5 6) "success a: 1 b: 2 c: 3 d: 4 e: 5 . n: (6)" )
128
+ ("seven args" (tst-5-n 1 2 3 4 5 6 7) "success a: 1 b: 2 c: 3 d: 4 e: 5 . n: (6 7)" ))
129
+
130
+ (suite "six params"
131
+ ("no args" (tst-6) "success a: b: c: d: e: f: " )
132
+ ("one arg" (tst-6 1) "success a: 1 b: c: d: e: f: " )
133
+ ("two args" (tst-6 1 2) "success a: 1 b: 2 c: d: e: f: " )
134
+ ("three args" (tst-6 1 2 3) "success a: 1 b: 2 c: 3 d: e: f: " )
135
+ ("four args" (tst-6 1 2 3 4) "success a: 1 b: 2 c: 3 d: 4 e: f: " )
136
+ ("five args" (tst-6 1 2 3 4 5) "success a: 1 b: 2 c: 3 d: 4 e: 5 f: " )
137
+ ("six args" (tst-6 1 2 3 4 5 6) "success a: 1 b: 2 c: 3 d: 4 e: 5 f: 6" )
138
+ ("seven args" (tst-6 1 2 3 4 5 6 7) "success a: 1 b: 2 c: 3 d: 4 e: 5 f: 6" ))
139
+
140
+ (suite "six params and rest param"
141
+ ("no args" (tst-6-n) "success a: b: c: d: e: f: . n: nil" )
142
+ ("one arg" (tst-6-n 1) "success a: 1 b: c: d: e: f: . n: nil" )
143
+ ("two args" (tst-6-n 1 2) "success a: 1 b: 2 c: d: e: f: . n: nil" )
144
+ ("three args" (tst-6-n 1 2 3) "success a: 1 b: 2 c: 3 d: e: f: . n: nil" )
145
+ ("four args" (tst-6-n 1 2 3 4) "success a: 1 b: 2 c: 3 d: 4 e: f: . n: nil" )
146
+ ("five args" (tst-6-n 1 2 3 4 5) "success a: 1 b: 2 c: 3 d: 4 e: 5 f: . n: nil" )
147
+ ("six args" (tst-6-n 1 2 3 4 5 6) "success a: 1 b: 2 c: 3 d: 4 e: 5 f: 6 . n: nil" )
148
+ ("seven args" (tst-6-n 1 2 3 4 5 6 7) "success a: 1 b: 2 c: 3 d: 4 e: 5 f: 6 . n: (7)" ))
149
+
150
+ (suite "seven params"
151
+ ("no args" (tst-7) "success a: b: c: d: e: f: g: " )
152
+ ("one arg" (tst-7 1) "success a: 1 b: c: d: e: f: g: " )
153
+ ("two args" (tst-7 1 2) "success a: 1 b: 2 c: d: e: f: g: " )
154
+ ("three args" (tst-7 1 2 3) "success a: 1 b: 2 c: 3 d: e: f: g: " )
155
+ ("four args" (tst-7 1 2 3 4) "success a: 1 b: 2 c: 3 d: 4 e: f: g: " )
156
+ ("five args" (tst-7 1 2 3 4 5) "success a: 1 b: 2 c: 3 d: 4 e: 5 f: g: " )
157
+ ("six args" (tst-7 1 2 3 4 5 6) "success a: 1 b: 2 c: 3 d: 4 e: 5 f: 6 g: " )
158
+ ("seven args" (tst-7 1 2 3 4 5 6 7) "success a: 1 b: 2 c: 3 d: 4 e: 5 f: 6 g: 7" ))
159
+
160
+ (suite "seven params and rest param"
161
+ ("no args" (tst-7-n) "success a: b: c: d: e: f: g: . n: nil" )
162
+ ("one arg" (tst-7-n 1) "success a: 1 b: c: d: e: f: g: . n: nil" )
163
+ ("two args" (tst-7-n 1 2) "success a: 1 b: 2 c: d: e: f: g: . n: nil" )
164
+ ("three args" (tst-7-n 1 2 3) "success a: 1 b: 2 c: 3 d: e: f: g: . n: nil" )
165
+ ("four args" (tst-7-n 1 2 3 4) "success a: 1 b: 2 c: 3 d: 4 e: f: g: . n: nil" )
166
+ ("five args" (tst-7-n 1 2 3 4 5) "success a: 1 b: 2 c: 3 d: 4 e: 5 f: g: . n: nil" )
167
+ ("six args" (tst-7-n 1 2 3 4 5 6) "success a: 1 b: 2 c: 3 d: 4 e: 5 f: 6 g: . n: nil" )
168
+ ("seven args" (tst-7-n 1 2 3 4 5 6 7) "success a: 1 b: 2 c: 3 d: 4 e: 5 f: 6 g: 7 . n: nil" ))
119
169
  ))
@@ -37,7 +37,7 @@
37
37
  (joinlists '(a b c) '(x y z) '(1 2 3))
38
38
  (a b c x y z 1 2 3))
39
39
 
40
- ("joins three lists without recusing"
40
+ ("joins three lists without recursing"
41
41
  (joinlists '(a b c) '(x (y1 y2 y3) z) '(1 2 (3 3 3)))
42
42
  (a b c x (y1 y2 y3) z 1 2 (3 3 3))))
43
43
 
@@ -119,3 +119,16 @@
119
119
  ("nil for a very improper list"
120
120
  (proper? '(a b . (c . d)))
121
121
  nil))
122
+
123
+ (examples-for list-slices
124
+ ("just the list if small"
125
+ (list-slices '(a b c d e) 12)
126
+ ((a b c d e)))
127
+
128
+ ("exactly three lists"
129
+ (list-slices '(a b c d e f g h i) 3)
130
+ ((a b c) (d e f) (g h i)))
131
+
132
+ ("three lists and an extra big"
133
+ (list-slices '(a b c d e f g h i j k) 3)
134
+ ((a b c) (d e f) (g h i) (j k))))
@@ -1,34 +1,293 @@
1
+ (examples-for pp/breaker
2
+ ("breaks 'if forms"
3
+ (pp/breaker '(if a b c d e))
4
+ ((if a) (b) (c) (d) (e)))
5
+
6
+ ("breaks 'let forms"
7
+ (pp/breaker '(let a b c d))
8
+ ((let a b) (c) (d)))
9
+
10
+ ("breaks 'def forms"
11
+ (pp/breaker '(def yoyo (x y) a b))
12
+ ((def yoyo (x y)) (a) (b))))
13
+
14
+ (examples-for pp/dotify
15
+ ("nothing"
16
+ (pp/dotify nil)
17
+ nil)
18
+
19
+ ("atom"
20
+ (inspect:pp/dotify 'a)
21
+ "a")
22
+
23
+ ("plain list"
24
+ (inspect:pp/dotify '(a b c))
25
+ "(a b c)")
26
+
27
+ ("dotted list"
28
+ (map inspect (pp/dotify '(a b c . d)))
29
+ ("a" "b" "c" "." "d"))
30
+
31
+ ("nested dotted list"
32
+ (inspect:pp/dotify '(def foo (a b c . d)
33
+ (a (fn (x y . z) (d z) ))))
34
+ "(def foo (a b c . d) (a (fn (x y . z) (d z))))"))
35
+
36
+ (examples-for pp/indent
37
+ ("nothing"
38
+ (pp/indent nil (list " "))
39
+ (" "))
40
+
41
+ ("number"
42
+ (pp/indent 22 (list " "))
43
+ (" " " "))
44
+
45
+ ("string"
46
+ (pp/indent "forty-two" (list " "))
47
+ (" " " "))
48
+
49
+ ("symbol"
50
+ (pp/indent 'forty-two (list " "))
51
+ (" " " "))
52
+
53
+ ("list"
54
+ (pp/indent '(fn (x) (blow x)) (list " "))
55
+ (" ")))
56
+
57
+ (examples-for pp/cleanup
58
+ ("empty"
59
+ (pp/cleanup "")
60
+ "")
61
+
62
+ ("atom"
63
+ (pp/cleanup "foo")
64
+ "foo")
65
+
66
+ ("already clean"
67
+ (pp/cleanup "foo\nbar")
68
+ "foo
69
+ bar")
70
+
71
+ ("removes trailing whitespace on each line"
72
+ (pp/cleanup "foo \nbar \ntoto ")
73
+ "foo
74
+ bar
75
+ toto")
76
+
77
+ ("removes trailing whitespace on each line but preserves leading whitespace"
78
+ (pp/cleanup "foo \n bar \n toto ")
79
+ "foo
80
+ bar
81
+ toto"))
82
+
83
+ (examples-for pp/unsyntax
84
+ ("nil"
85
+ (to-string:pp/unsyntax nil)
86
+ "")
87
+
88
+ ("atom"
89
+ (to-string:pp/unsyntax 42)
90
+ "42")
91
+
92
+ ("list"
93
+ (to-string:pp/unsyntax '(for a 1 10 (p 'hello 'world)))
94
+ "(for a 1 10 (p 'hello 'world))")
95
+
96
+ ("list with embedded syntax"
97
+ (to-string:pp/unsyntax '(for (colon-syntax a b) 1 10 ((dot-syntax p q) 'hello 'world)))
98
+ "(for a:b 1 10 (p.q 'hello 'world))")
99
+
100
+ ("percent-syntax"
101
+ (to-string:pp/unsyntax '(percent-syntax this that))
102
+ "this%that")
103
+
104
+ ("prefix percent-syntax"
105
+ (to-string:pp/unsyntax '(percent-syntax || that))
106
+ "%that")
107
+
108
+ ("postfix percent-syntax"
109
+ (to-string:pp/unsyntax '(percent-syntax this ||))
110
+ "this%")
111
+
112
+ ("postfix multiple percent-syntax"
113
+ (to-string:pp/unsyntax '(percent-syntax this that || another))
114
+ "this%that%%another")
115
+
116
+ ("nested syntax"
117
+ (to-string:pp/unsyntax '(percent-syntax this (ampersand-syntax x y) that))
118
+ "this%x&y%that"))
119
+
120
+ (examples-for pp/split-form
121
+ ("first item"
122
+ (pp/split-form '(a b c d) 1)
123
+ ((a) (b) (c) (d)))
124
+
125
+ ("first two items"
126
+ (pp/split-form '(a b c d e) 2)
127
+ ((a b) (c) (d) (e)))
128
+
129
+ ("first three items"
130
+ (pp/split-form '(a b c d e f) 3)
131
+ ((a b c) (d) (e) (f))))
132
+
133
+ (examples-for pp/flatly
134
+ ("nil"
135
+ (pp/flatly nil)
136
+ "nil")
137
+
138
+ ("number"
139
+ (pp/flatly 22)
140
+ "22")
141
+
142
+ ("symbol"
143
+ (pp/flatly 'qwerty)
144
+ "qwerty")
145
+
146
+ ("list"
147
+ (pp/flatly '(a b c d 21 22 23 'quoting) )
148
+ "(a b c d 21 22 23 'quoting)")
149
+
150
+ ("macro example"
151
+ (pp/flatly '(mac johnny (foo bar) `(this ,foo ,@(map twisty bar))))
152
+ "(mac johnny (foo bar) `(this ,foo ,@(map twisty bar)))"))
153
+
1
154
  (examples-for pp
155
+ ("a quote"
156
+ (pp '(quote a))
157
+ "'a")
158
+
159
+ ("unquote"
160
+ (pp '(unquote a))
161
+ ",a")
162
+
163
+ ("unquote-splicing"
164
+ (pp '(unquote-splicing a))
165
+ ",@a")
166
+
167
+ ("quasiquote"
168
+ (pp '(quasiquote a))
169
+ "`a")
170
+
171
+ ("quote unquote"
172
+ (pp '(quote (unquote a)))
173
+ "',a")
174
+
2
175
  ("a macro invocation"
3
176
  (pp '(mac pp/def (name args . body) `(hash-set pp/special-forms ',name (fn ,args ,@body))))
4
- "(mac pp/def (name args body)\n `(hash-set pp/special-forms ',name (fn ,args ,@body)))")
177
+ "(mac pp/def (name args . body)
178
+ `(hash-set pp/special-forms
179
+ ',name
180
+ (fn ,args ,@body)))")
5
181
 
6
182
  ("a 'def invocation"
7
183
  (pp '(def pp (form) (pp/main form 0)))
8
- "(def pp (form)\n (pp/main form 0))")
184
+ "(def pp (form) (pp/main form 0))")
185
+
186
+ ("a longer 'def invocation"
187
+ (pp '(def pp (form)
188
+ (pp/main form 0)
189
+ (pp/again form 1)
190
+ (pp/more (jump:skip form) 2)))
191
+ "(def pp (form)
192
+ (pp/main form 0)
193
+ (pp/again form 1)
194
+ (pp/more (jump:skip form) 2))")
195
+
196
+ ("a 'def with a dotted argument list"
197
+ (pp '(def afun (a b c . others)
198
+ (afun a b c (a (car others) (b (cdr others))))))
199
+ "(def afun (a b c . others)
200
+ (afun a
201
+ b
202
+ c
203
+ (a (car others) (b (cdr others)))))")
9
204
 
10
205
  ("something with a plain string literal"
11
206
  (pp '(def yoohoo (it) (wrangle "foobar" it)))
12
- "(def yoohoo (it)\n (wrangle \"foobar\" it))")
13
-
14
- ("combined with dox system"
15
- (pp:dox-src 'pp/find-breaks)
16
- "(def pp/find-breaks (form)
17
- (if (eq? 'if (car form))
18
- (let if-args (cdr form)
19
- (cons (list 'if (car if-args)) (map list (cdr if-args))))
20
- (or
21
- (pp/find-breaks/mac form)
22
- (list form))))")
207
+ "(def yoohoo (it) (wrangle \"foobar\" it))")
208
+
209
+ ("a 'let form"
210
+ (pp '(let acc nil
211
+ (rfnwith flattenize (x things)
212
+ (if (pair? x)
213
+ (eachr flattenize x)
214
+ (push x acc)))
215
+ acc))
216
+ "(let acc nil
217
+ (rfnwith flattenize (x things)
218
+ (if (pair? x)
219
+ (eachr flattenize x)
220
+ (push x acc)))
221
+ acc)")
222
+
223
+
224
+ ("a real-life example from utils"
225
+ (pp '(def flatten (things)
226
+ (let acc nil
227
+ (rfnwith flattenize (x things)
228
+ (if (pair? x)
229
+ (eachr flattenize x)
230
+ (push x acc)))
231
+ acc)))
232
+ "(def flatten (things)
233
+ (let acc nil
234
+ (rfnwith flattenize (x things)
235
+ (if (pair? x)
236
+ (eachr flattenize x)
237
+ (push x acc)))
238
+ acc))")
239
+
240
+ ("a real-life example from utils"
241
+ (pp '(def list-slices (things slice-size)
242
+ ; slice 'things into a list of lists each with maximum 'slice-size items
243
+ (chapter pagination list-management)
244
+ (if (< (len things) slice-size)
245
+ (cons things nil)
246
+ (cons (firstn slice-size things)
247
+ (list-slices (nthcdr slice-size things)
248
+ slice-size)))))
249
+ "(def list-slices (things slice-size)
250
+ ; slice 'things into a list of lists each with maximum 'slice-size items
251
+ (chapter pagination list-management)
252
+ (if (< (len things) slice-size)
253
+ (cons things nil)
254
+ (cons (firstn slice-size things)
255
+ (list-slices (nthcdr slice-size things)
256
+ slice-size))))")
257
+
258
+ ("a real-life example from test-runner"
259
+ (pp '(def run-all-tests (verbose)
260
+ ; runs all tests that have been registered with 'register-test
261
+ (with (passed 0 failed 0)
262
+ (with (f-pass (fn nil (assign passed (+ 1 passed)))
263
+ f-fail (fn nil (assign failed (+ 1 failed))))
264
+ (run-tests `(suite "all tests" ,@all-tests) f-pass f-fail verbose)
265
+ (p "passed: " passed)
266
+ (p "failed: " failed)
267
+ (/ passed (+ passed failed))))))
268
+ "(def run-all-tests (verbose)
269
+ ; runs all tests that have been registered with 'register-test
270
+ (with (passed 0 failed 0)
271
+ (with (f-pass (fn nil (assign passed (+ 1 passed)))
272
+ f-fail (fn nil (assign failed (+ 1 failed))))
273
+ (run-tests `(suite \"all tests\" ,@all-tests)
274
+ f-pass
275
+ f-fail
276
+ verbose)
277
+ (p \"passed: \" passed)
278
+ (p \"failed: \" failed)
279
+ (/ passed (+ passed failed)))))")
280
+
281
+
23
282
 
24
283
  ("special syntax"
25
284
  (pp '(string-pieces "hello " (bang-syntax || (dot-syntax x y (ampersand-syntax foo bar))) " and welcome to " (prefix-list "%%" (a b c d)) " and friends!"))
26
285
  "\"hello ~~!x.y.foo&bar and welcome to ~~%%(a b c d) and friends!\"")
27
286
 
28
- ("perent-syntax"
287
+ ("percent-syntax"
29
288
  (pp '(percent-syntax || (dot-syntax x y)))
30
289
  "%x.y")
31
290
 
32
291
  ("brace list"
33
292
  (pp '(&x {a 1 b "two" c 'three d ,four e (sub invocation) f {sub brace list} }))
34
- "(&x {a 1 b \"two\" c 'three d ,four e (sub invocation) f {sub brace list}})"))
293
+ "(&x { a 1 b \"two\" c 'three d ,four e (sub invocation) f { sub brace list } })"))