1 ;;;;;; Copyright (C) 1992 Bob Kerns <rwk@crl.dec.com>
4 ;;; This program is free software; you can redistribute it and/or modify
5 ;;; it under the terms of the GNU General Public License as published by
6 ;;; the Free Software Foundation; either version 1, or (at your option)
7 ;;; any later version. ;;;
8 ;;; This program is distributed in the hope that it will be useful,
9 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
10 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 ;;; GNU General Public License for more details. ;;;
12 ;;; You should have received a copy of the GNU General Public License
13 ;;; along with this program; if not, write to the Free Software
14 ;;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ;;;
16 ;;; Test suite for morphology rules for edict.el.
17 ;;; To run the tests, load this file, and do m-X edict-perform-tests.
18 ;;; This will create an *EDICT-TESTS* buffer with the results.
23 ;;; This should exist, but doesn't. See edict.install for the
24 ;;; compiler half of this. You should be sure to load the same
25 ;;; hacks into your compiler if you compile this by hand, or you
26 ;;; won't get it byte compiled.
28 (defmacro eval-when (when &rest forms)
29 (and (or (member 'eval when)
30 (member ':execute when))
31 (mapcar (function eval) forms))
32 (and (or (member 'load when)
33 (member ':load-toplevel when))
36 ;;; first, a couple simple tests.
38 (defun edict-test-string (flag string)
39 "Show what strings will be searched for a test string. If given a prefix arg,
40 traces step by step; type Return for each new step."
43 (let ((*edict-expand-string-trace* flag))
44 (message (format "%s" (edict-expand-string string)))))
46 (defun edict-test-rule (rule-name string)
47 (interactive "SRule name:
49 (let ((rule (edict-get-rule rule-name)))
50 (unless rule (error "There is no rule named '%s'" rule-name))
51 (unless (string-match (edict-rule-pattern rule) string)
52 (error "The rule %s does not match '%s'." rule-name string))
53 (apply (edict-rule-function rule) string
54 (edict-rule-additional-args rule))))
56 (eval-when (eval load compile)
58 word ; Word to be tested.
59 should-have ; Expansions that should be found
60 should-not-have ; Expansions that should not be found.
65 (defvar *edict-tests* nil)
67 (defun remove-edict-test (name)
68 (let ((test (get-edict-test name)))
69 (setq *edict-tests* (delq test *edict-tests*))))
71 (defun add-edict-test (test)
72 ;; Preserve the order of the tests.
73 (let* ((name (edict-test-word test))
74 (old (get-edict-test name)))
76 (setf (edict-test-should-have old) (edict-test-should-have test)
77 (edict-test-should-not-have old) (edict-test-should-not-have test)
78 (edict-test-from-syntax-types old)
79 (edict-test-from-syntax-types test)
80 (edict-test-to-syntax-types old)
81 (edict-test-to-syntax-types test))
82 (setq *edict-tests* (append *edict-tests* (list test))))))
84 (defun get-edict-test (name)
86 (setq name (symbol-name name)))
88 (dolist (test *edict-tests*)
89 (if (equal (edict-test-word test) name)
90 (throw 'found-it test)))))
92 (defmacro deftest (case &optional fromto should-have should-not-have not-self)
93 (` (define-edict-test '(, case) '(, (first fromto)) '(, (second fromto))
94 '(, should-have) '(, should-not-have) '(, not-self))))
96 (defun define-edict-test (name from to should-have should-not-have
99 (setq name (symbol-name name)))
101 (setq from (list from)))
105 (setq from '(
\e$@F|K\8l
\e(J)))
106 (let ((f (function (lambda (x)
110 (setq should-have (mapcar f should-have))
111 (setq should-not-have (mapcar f should-not-have))
112 (or not-self (edict-find name should-have)
113 (push name should-have))
114 (add-edict-test (make-edict-test :word name
115 :should-have should-have
116 :should-not-have should-not-have
117 :from-syntax-types from
118 :to-syntax-types to)))
121 ;;; This should be in emacs, but it isn't.
122 ;;; (Borrowed from ilisp.el, where I inherited it accidentally).
124 (defun edict-del (item list &optional test)
125 "Delete ITEM from LIST using TEST comparison and return the result.
126 Default test is equal."
127 (let ((test (or test (function equal)))
131 (while (and element (not done))
132 (if (funcall test item (car element))
136 (rplacd prev (cdr element))
137 (setq list (cdr list))))
139 element (cdr element))))
143 (defun edict-test (test)
144 (if (or (symbolp test) (stringp test))
145 (setq test (get-edict-test test)))
146 ;; Cleaning up the kanji shouldn't break anything;
147 ;; give it a chance to do so if it's buggy.
148 (let* ((name (edict-test-word test))
149 (word (edict-clean-up-kanji name))
150 (from-syntax-types (edict-test-from-syntax-types test))
151 (to-syntax-types (edict-test-to-syntax-types test))
152 (should-have (edict-test-should-have test))
153 (should-not-have (edict-test-should-not-have test)))
154 (let ((expansion (edict-expand-string-syntaxes word () () from-syntax-types))
156 (dolist (sh should-have)
157 (if (edict-find sh expansion)
158 (setq expansion (edict-del sh expansion (function equal)))
160 (princ (format ";%s: did not produce %s\n" name sh))
162 (dolist (case should-not-have)
163 (and (edict-find case expansion)
165 (princ (format ";%s: Should not have %s as expansion.\n"
168 (setq expansion (edict-del sh expansion (function equal))))))
169 (dolist (bad expansion)
170 (princ (format ";%s: Unexpected expansion: %s\n" name bad))
173 (princ (format ";%s: OK\n" name)))
176 (defun edict-perform-tests ()
178 (let ((test-buffer (get-buffer-create "*EDICT-TESTS*"))
181 (set-buffer test-buffer)
182 (set-window-buffer (selected-window) test-buffer)
183 (delete-region (point-min) (point-max))
184 (let ((standard-output test-buffer))
185 (dolist (test *edict-tests*)
186 (let ((msg-point (point)))
187 (cond ((not (edict-test test))
189 (or first-failure (setq first-failure msg-point))))
191 (cond ((= failures 0)
192 (message "Done. All Tests OK."))
194 (message "1 test failed."))
195 (t (message (format "%d tests failed." failures))))
196 (goto-char (or first-failure (point-min)))))
198 (defun edict-run-test (arg)
199 "Execute the test that point is in or before.
200 Print value in minibuffer.
201 With argument, insert value in current buffer after the defun.
202 With argument >= 16 (i.e. c-U c-U), single-step through the expansion process."
207 (*edict-expand-string-trace* (and arg (> (prefix-numeric-value arg) 4))))
209 (let* ((test-form (read (current-buffer)))
210 (test-name (second test-form))
213 (setq test (get-edict-test test-name))
215 (while (looking-at (concat ";" (symbol-name test-name)
216 ": \\(Unexpected expansion: \\|did not produce \\|OK$\\)"))
217 (let ((start (point)))
219 (delete-region start (point))))
220 (let ((standard-output (if arg (current-buffer) standard-output)))
221 (edict-test test)))))
224 ;(global-set-key "\e_" 'edict-run-test)
226 ;;; **** NOTE WELL ****
227 ;;; The proper test results here are not necessarily valid words.
228 ;;; These are words which are MORPHOLOGICALLY correct. That is,
229 ;;; this reverse-chains on the possible rules to produce a given
230 ;;; word, generally only one or two of which would actually be
233 ;;; Also note that these are regression tests. No distinction is being
234 ;;; made between results which are "correct" and results which are
235 ;;; "acceptable". In general, we accept spurious expansions if they
236 ;;; lead to including desirable results in other cases. Modifying the
237 ;;; rule set may either result in eliminating spurious expansions (resulting
238 ;;; in missing expansions from the tests) or adding new spurious expansions.
239 ;;; In case of problems from these tests, the offending test should be single-stepped
240 ;;; (with c-u c-u m-X edict-run-test), and the reasons for the expansion should be
241 ;;; evaluated. If, after careful consideration, the modified result is regarded
242 ;;; as correct, the test should be modified accordingly. Otherwise, the bug should
245 ;;; Be careful. Regression tests are good for considering all the effects of
246 ;;; a change, but they do not themselves determine the correctness of a change.
247 ;;; When the regression tests determine that something has changed, it is up
248 ;;; to YOU to be careful and determine the correct result.
250 (deftest "
\e$@Gc$&
\e(J "
257 \e$@!d!!Gc!t
\e(J#>!
\e$@!*!'
\e(J:
\e$@$&
\e(J "
263 ;;; The basics:
\e$@8^CJF0;l
\e(J
264 (deftest
\e$@Gc$&
\e(J
266 (deftest
\e$@9T$/
\e(J
268 (
\e$@9T$$
\e(J)) ;Looks like it could be an adverb
270 (deftest
\e$@1K$0
\e(J
272 (deftest
\e$@OC$9
\e(J
274 (deftest
\e$@BT$D
\e(J
276 (deftest
\e$@;`$L
\e(J
278 (deftest
\e$@8F$V
\e(J
280 (deftest
\e$@FI$`
\e(J
282 (deftest
\e$@J,$+$k
\e(J
284 (deftest
\e$@@.$k
\e(J
287 (deftest
\e$@@8$-$k
\e(J
289 (deftest
\e$@8+$k
\e(J
293 ;;; These all produce the improbable but possible result of removing only the
294 ;;; masu and adding
\e$@$k
\e(J as if it were a
\e$@0lCJF0;l
\e(J, since the result of that situation
295 ;;; would look the same.
297 (deftest
\e$@Gc$$$^$9
\e(J
299 (
\e$@Gc$&
\e(J
\e$@Gc$$$k
\e(J))
300 (deftest
\e$@CV$-$^$9
\e(J
302 (
\e$@CV$/
\e(J
\e$@CV$-$k
\e(J))
303 ;
\e$@CV$-$^$9
\e(J: OK
304 (deftest
\e$@1K$.$^$9
\e(J
306 (
\e$@1K$0
\e(J
\e$@1K$.$k
\e(J))
307 (deftest
\e$@OC$7$^$9
\e(J
309 (
\e$@OC$9
\e(J
\e$@OC$7$k
\e(J
\e$@OC$9$k
\e(J
\e$@OC
\e(J))
310 (deftest
\e$@;}$A$^$9
\e(J
312 (
\e$@;}$D
\e(J
\e$@;}$A$k
\e(J))
313 (deftest
\e$@;`$K$^$9
\e(J
315 (
\e$@;`$L
\e(J
\e$@;`$K$k
\e(J))
316 (deftest
\e$@8F$S$^$9
\e(J
318 (
\e$@8F$V
\e(J
\e$@8F$S$k
\e(J))
319 (deftest
\e$@FI$_$^$9
\e(J
321 (
\e$@FI$`
\e(J
\e$@FI$_$k
\e(J))
322 (deftest
\e$@J,$+$j$^$9
\e(J
324 (
\e$@J,$+$k
\e(J
\e$@J,$+$j$k
\e(J))
325 (deftest
\e$@@.$j$^$9
\e(J
327 (
\e$@@.$k
\e(J
\e$@@.$j$k
\e(J))
328 (deftest
\e$@@8$-$^$9
\e(J
330 (
\e$@@8$-$k
\e(J
\e$@@8$/
\e(J))
331 ;
\e$@@8$-$^$9
\e(J: OK
332 (deftest
\e$@8+$^$9
\e(J
339 (deftest
\e$@Mh$^$9
\e(J
342 (deftest
\e$@$-$^$9
\e(J
344 (
\e$@$/$k
\e(J
\e$@$-$k
\e(J))
345 (deftest
\e$@$7$^$9
\e(J
347 (
\e$@$9$k
\e(J
\e$@$7$k
\e(J))
349 (deftest
\e$@Gc$$$^$;$s
\e(J
351 (
\e$@Gc$&
\e(J
\e$@Gc$$$k
\e(J))
352 (deftest
\e$@CV$-$^$;$s
\e(J
354 (
\e$@CV$/
\e(J
\e$@CV$-$k
\e(J))
355 ;
\e$@CV$-$^$;$s
\e(J: OK
356 (deftest
\e$@1K$.$^$;$s
\e(J
358 (
\e$@1K$0
\e(J
\e$@1K$.$k
\e(J))
359 (deftest
\e$@OC$7$^$;$s
\e(J
361 (
\e$@OC$9
\e(J
\e$@OC$7$k
\e(J
\e$@OC$9$k
\e(J
\e$@OC
\e(J))
362 (deftest
\e$@;}$A$^$;$s
\e(J
364 (
\e$@;}$D
\e(J
\e$@;}$A$k
\e(J))
365 (deftest
\e$@;`$K$^$;$s
\e(J
367 (
\e$@;`$L
\e(J
\e$@;`$K$k
\e(J))
368 (deftest
\e$@8F$S$^$;$s
\e(J
370 (
\e$@8F$V
\e(J
\e$@8F$S$k
\e(J))
371 (deftest
\e$@FI$_$^$;$s
\e(J
373 (
\e$@FI$`
\e(J
\e$@FI$_$k
\e(J))
374 (deftest
\e$@J,$+$j$^$;$s
\e(J
376 (
\e$@J,$+$k
\e(J
\e$@J,$+$j$k
\e(J))
377 (deftest
\e$@@.$j$^$;$s
\e(J
379 (
\e$@@.$k
\e(J
\e$@@.$j$k
\e(J))
380 (deftest
\e$@@8$-$^$;$s
\e(J
382 (
\e$@@8$-$k
\e(J
\e$@@8$/
\e(J))
383 ;
\e$@@8$-$^$;$s
\e(J: OK
384 (deftest
\e$@8+$^$;$s
\e(J
391 (deftest
\e$@Mh$^$;$s
\e(J
394 (deftest
\e$@$-$^$;$s
\e(J
396 (
\e$@$/$k
\e(J
\e$@$-$k
\e(J))
397 (deftest
\e$@$7$^$;$s
\e(J
399 (
\e$@$9$k
\e(J
\e$@$7$k
\e(J))
404 (deftest
\e$@Gc$C$?
\e(J
406 (
\e$@Gc$&
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J))
407 (deftest
\e$@CV$$$?
\e(J
409 (
\e$@CV$/
\e(J
\e$@CV$$$k
\e(J))
411 (deftest
\e$@9T$C$?
\e(J
412 ();iku is irregular It looks like a
\e$@$k
\e(J/
\e$@$D
\e(J/
\e$@$&
\e(J.
413 (
\e$@9T$/
\e(J
\e$@9T$$
\e(J
\e$@9T$&
\e(J
\e$@9T$D
\e(J
\e$@9T$k
\e(J))
415 (deftest
\e$@OC$7$?
\e(J
417 (
\e$@OC$9
\e(J
\e$@OC$7$k
\e(J
\e$@OC$9$k
\e(J
\e$@OC
\e(J))
419 (deftest
\e$@;}$C$?
\e(J
421 (
\e$@;}$D
\e(J
\e$@;}$&
\e(J
\e$@;}$k
\e(J))
422 (deftest
\e$@;`$s$?
\e(J
423 ();Don't mis-interpret
426 (deftest
\e$@;`$s$@
\e(J
428 (
\e$@;`$L
\e(J
\e$@;`$V
\e(J
\e$@;`$`
\e(J
\e$@;`$s
\e(J))
430 (deftest
\e$@8F$s$@
\e(J
432 (
\e$@8F$V
\e(J
\e$@8F$`
\e(J
\e$@8F$L
\e(J
\e$@8F$s
\e(J))
434 (deftest
\e$@FI$s$@
\e(J
436 (
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J
\e$@FI$s
\e(J))
438 (deftest
\e$@J,$+$C$?
\e(J
440 (
\e$@J,$+$k
\e(J
\e$@J,$$
\e(J
\e$@J,$+$&
\e(J
\e$@J,$+$D
\e(J))
441 ;
\e$@J,$+$C$?
\e(J: OK
442 (deftest
\e$@@.$C$?
\e(J
444 (
\e$@@.$k
\e(J
\e$@@.$&
\e(J
\e$@@.$D
\e(J))
446 (deftest
\e$@@8$-$?
\e(J
448 (
\e$@@8$-$k
\e(J
\e$@@8$/$k
\e(J))
450 (deftest
\e$@8+$?
\e(J
455 ;;; These all also map to
\e$@$D
\e(J, because of the plan imperative form.
456 ;;; This seems surprising, if you're not thinking about it.
458 (deftest
\e$@Gc$C$F
\e(J
460 (
\e$@Gc$&
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$C$F$k
\e(J))
462 (deftest
\e$@CV$$$F
\e(J
464 (
\e$@CV$/
\e(J
\e$@CV$$$k
\e(J
\e$@CV$$$D
\e(J
\e$@CV$$$F$k
\e(J))
466 (deftest
\e$@9T$C$F
\e(J
467 ();iku is irregular It looks like a
\e$@$k
\e(J/
\e$@$D
\e(J/
\e$@$&
\e(J.
468 (
\e$@9T$/
\e(J
\e$@9T$$
\e(J
\e$@9T$&
\e(J
\e$@9T$D
\e(J
\e$@9T$k
\e(J
\e$@9T$C$D
\e(J
\e$@9T$C$F$k
\e(J))
470 (deftest
\e$@OC$7$F
\e(J
472 (
\e$@OC$9
\e(J
\e$@OC$7$k
\e(J
\e$@OC$7$D
\e(J
\e$@OC$9$k
\e(J
\e$@OC
\e(J
\e$@OC$7$F$k
\e(J))
474 (deftest
\e$@;}$C$F
\e(J
476 (
\e$@;}$D
\e(J
\e$@;}$&
\e(J
\e$@;}$k
\e(J
\e$@;}$C$D
\e(J
\e$@;}$C$F$k
\e(J))
478 (deftest
\e$@;`$s$F
\e(J
479 ();Don't mis-interpret
480 (
\e$@;`$s$D
\e(J
\e$@;`$s$F$k
\e(J)
483 (deftest
\e$@;`$s$G
\e(J
485 (
\e$@;`$L
\e(J
\e$@;`$V
\e(J
\e$@;`$`
\e(J))
487 (deftest
\e$@8F$s$G
\e(J
489 (
\e$@8F$V
\e(J
\e$@8F$`
\e(J
\e$@8F$L
\e(J))
491 (deftest
\e$@FI$s$G
\e(J
493 (
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J))
494 (deftest
\e$@J,$+$C$F
\e(J
496 (
\e$@J,$+$k
\e(J
\e$@J,$+$&
\e(J
\e$@J,$+$D
\e(J
\e$@J,$+$C$D
\e(J
\e$@J,$+$C$F$k
\e(J))
497 ;
\e$@J,$+$C$F
\e(J: OK
498 (deftest
\e$@@.$C$F
\e(J
500 (
\e$@@.$k
\e(J
\e$@@.$&
\e(J
\e$@@.$D
\e(J
\e$@@.$C$D
\e(J
\e$@@.$C$F$k
\e(J))
503 (deftest
\e$@@8$-$F
\e(J
505 (
\e$@@8$-$k
\e(J
\e$@@8$-$D
\e(J
\e$@@8$/$k
\e(J
\e$@@8$-$F$k
\e(J))
507 (deftest
\e$@8+$F
\e(J
509 (
\e$@8+$k
\e(J
\e$@8+$D
\e(J
\e$@8+$F$k
\e(J))
514 (deftest
\e$@Gc$($k
\e(J
519 (deftest
\e$@?)$Y$i$l$k
\e(J
521 (
\e$@?)$Y$k
\e(J
\e$@?)$Y$i$k
\e(J
\e$@?)$V
\e(J))
522 ;
\e$@?)$Y$i$l$k
\e(J: OK
524 (deftest
\e$@8F$Y$k
\e(J
530 ;;; These also look like they could be
\e$@0lCJ$I$&$7
\e(J potentials.
532 (deftest
\e$@Gc$o$l$k
\e(J
534 (
\e$@Gc$&
\e(J
\e$@Gc$o$k
\e(J))
535 ;
\e$@Gc$o$l$k
\e(J: OK
537 (deftest
\e$@CV$+$l$k
\e(J
539 (
\e$@CV$/
\e(J
\e$@CV$+$k
\e(J))
540 ;
\e$@CV$+$l$k
\e(J: OK
542 (deftest
\e$@1K$,$l$k
\e(J
544 (
\e$@1K$0
\e(J
\e$@1K$,$k
\e(J))
545 (deftest
\e$@OC$5$l$k
\e(J
547 (
\e$@OC$9
\e(J
\e$@OC$9$k
\e(J
\e$@OC$5$k
\e(J
\e$@OC
\e(J)) ;Because of irregular
\e$@$9$k
\e(J
548 (deftest
\e$@BT$?$l$k
\e(J
550 (
\e$@BT$D
\e(J
\e$@BT$?$k
\e(J))
551 (deftest
\e$@;`$J$l$k
\e(J
553 (
\e$@;`$L
\e(J
\e$@;`$J$k
\e(J))
554 (deftest
\e$@FI$^$l$k
\e(J
556 (
\e$@FI$`
\e(J
\e$@FI$^$k
\e(J))
557 ;
\e$@FI$^$l$k
\e(J: OK
558 (deftest
\e$@8F$P$l$k
\e(J
560 (
\e$@8F$V
\e(J
\e$@8F$P$k
\e(J))
561 (deftest
\e$@8+$i$l$k
\e(J
563 (
\e$@8+$k
\e(J
\e$@8+$i$k
\e(J))
566 (deftest
\e$@Mh$i$l$k
\e(J
568 (
\e$@Mh$k
\e(J
\e$@Mh$i$k
\e(J))
569 (deftest
\e$@$5$l$k
\e(J
571 (
\e$@$9$k
\e(J
\e$@$5$k
\e(J
\e$@$9
\e(J)) ;
\e$@$9
\e(J because of the regular rule.
575 (deftest
\e$@Gc$o$;$k
\e(J
577 (
\e$@Gc$&
\e(J
\e$@Gc$o$9
\e(J))
578 ;
\e$@Gc$o$;$k
\e(J: OK
579 (deftest
\e$@CV$+$;$k
\e(J
581 (
\e$@CV$/
\e(J
\e$@CV$+$9
\e(J))
582 ;
\e$@CV$+$;$k
\e(J: OK
583 (deftest
\e$@1K$,$;$k
\e(J
585 (
\e$@1K$0
\e(J
\e$@1K$,$9
\e(J))
586 ;
\e$@1K$,$;$k
\e(J: OK
587 (deftest
\e$@OC$5$;$k
\e(J
589 (
\e$@OC$k
\e(J
\e$@OC$9
\e(J
\e$@OC$9$k
\e(J
\e$@OC$5$9
\e(J
\e$@OC
\e(J)) ;Because of irregular
\e$@$9$k
\e(J
590 ;
\e$@OC$5$;$k
\e(J: OK
591 (deftest
\e$@BT$?$;$k
\e(J
593 (
\e$@BT$D
\e(J
\e$@BT$?$9
\e(J))
594 ;
\e$@BT$?$;$k
\e(J: OK
595 (deftest
\e$@;`$J$;$k
\e(J
597 (
\e$@;`$L
\e(J
\e$@;`$J$9
\e(J))
598 ;
\e$@;`$J$;$k
\e(J: OK
599 (deftest
\e$@FI$^$;$k
\e(J
601 (
\e$@FI$`
\e(J
\e$@FI$^$9
\e(J))
602 ;
\e$@FI$^$;$k
\e(J: OK
603 (deftest
\e$@8F$P$;$k
\e(J
605 (
\e$@8F$V
\e(J
\e$@8F$P$9
\e(J))
606 ;
\e$@8F$P$;$k
\e(J: OK
607 (deftest
\e$@8+$5$;$k
\e(J
609 (
\e$@8+$k
\e(J
\e$@8+$9
\e(J
\e$@8+$9$k
\e(J
\e$@8+$5$9
\e(J
\e$@8+
\e(J)) ;Because of regular & irregular rules
610 ;
\e$@8+$5$;$k
\e(J: OK
613 (deftest
\e$@Mh$5$;$k
\e(J
615 (
\e$@Mh$k
\e(J
\e$@Mh$9
\e(J
\e$@Mh$9$k
\e(J
\e$@Mh$5$9
\e(J
\e$@Mh
\e(J)) ;because of regular & irregular rules.
616 ;
\e$@Mh$5$;$k
\e(J: OK
617 (deftest
\e$@$5$;$k
\e(J
619 (
\e$@$9$k
\e(J
\e$@$5$9
\e(J
\e$@$9
\e(J)) ;
\e$@$9
\e(J because of the regular rule.
624 (deftest
\e$@Gc$($P
\e(J
627 (deftest
\e$@CV$1$P
\e(J
630 (deftest
\e$@1K$2$P
\e(J
633 (deftest
\e$@OC$;$P
\e(J
636 (deftest
\e$@BT$F$P
\e(J
639 (deftest
\e$@;`$M$P
\e(J
642 (deftest
\e$@FI$a$P
\e(J
645 (deftest
\e$@8F$Y$P
\e(J
648 (deftest
\e$@8+$l$P
\e(J
652 ;;;
\e$@$?$i
\e(J conditional form
654 (deftest
\e$@Gc$C$?$i
\e(J
656 (
\e$@Gc$&
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J))
657 (deftest
\e$@CV$$$?$i
\e(J
659 (
\e$@CV$/
\e(J
\e$@CV$$$k
\e(J))
660 (deftest
\e$@9T$C$?$i
\e(J
661 ();iku is irregular It looks like a
\e$@$k
\e(J/
\e$@$D
\e(J/
\e$@$&
\e(J.
662 (
\e$@9T$/
\e(J
\e$@9T$$
\e(J
\e$@9T$&
\e(J
\e$@9T$D
\e(J
\e$@9T$k
\e(J))
663 (deftest
\e$@OC$7$?$i
\e(J
665 (
\e$@OC$9
\e(J
\e$@OC$7$k
\e(J
\e$@OC$9$k
\e(J
\e$@OC
\e(J))
666 ;
\e$@OC$7$?$i
\e(J: OK
667 (deftest
\e$@;}$C$?$i
\e(J
669 (
\e$@;}$D
\e(J
\e$@;}$&
\e(J
\e$@;}$k
\e(J))
670 (deftest
\e$@;`$s$?$i
\e(J
671 ();Don't mis-interpret
674 (deftest
\e$@;`$s$@$i
\e(J
676 (
\e$@;`$L
\e(J
\e$@;`$V
\e(J
\e$@;`$`
\e(J))
677 (deftest
\e$@8F$s$@$i
\e(J
679 (
\e$@8F$V
\e(J
\e$@8F$`
\e(J
\e$@8F$L
\e(J))
680 (deftest
\e$@FI$s$@$i
\e(J
682 (
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J))
683 (deftest
\e$@J,$+$C$?$i
\e(J
685 (
\e$@J,$+$k
\e(J
\e$@J,$+$&
\e(J
\e$@J,$+$D
\e(J))
686 (deftest
\e$@@.$C$?$i
\e(J
688 (
\e$@@.$k
\e(J
\e$@@.$&
\e(J
\e$@@.$D
\e(J))
690 (deftest
\e$@@8$-$?$i
\e(J
692 (
\e$@@8$-$k
\e(J
\e$@@8$/$k
\e(J))
693 ;
\e$@@8$-$?$i
\e(J: OK
694 (deftest
\e$@8+$?$i
\e(J
700 (deftest
\e$@Gc$o$J$$
\e(J
702 (
\e$@Gc$&
\e(J
\e$@Gc$o$J$$
\e(J
\e$@Gc$o$J$&
\e(J
\e$@Gc$o$J$$$k
\e(J))
703 ;
\e$@Gc$o$J$$
\e(J: OK
704 (deftest
\e$@CV$+$J$$
\e(J
706 (
\e$@CV$/
\e(J
\e$@CV$+$J$$
\e(J
\e$@CV$+$J$&
\e(J
\e$@CV$+$J$$$k
\e(J))
707 ;
\e$@CV$+$J$$
\e(J: OK
708 (deftest
\e$@1K$,$J$$
\e(J
710 (
\e$@1K$0
\e(J
\e$@1K$,$J$$$k
\e(J
\e$@1K$,$J$&
\e(J))
711 ;
\e$@1K$,$J$$
\e(J: OK
712 (deftest
\e$@OC$5$J$$
\e(J
714 (
\e$@OC$9
\e(J
\e$@OC$5$J$$$k
\e(J
\e$@OC$5$J$&
\e(J))
715 ;
\e$@OC$5$J$$
\e(J: OK
716 (deftest
\e$@BT$?$J$$
\e(J
718 (
\e$@BT$D
\e(J
\e$@BT$?$J$$$k
\e(J
\e$@BT$?$J$&
\e(J))
719 ;
\e$@BT$?$J$$
\e(J: OK
720 (deftest
\e$@;`$J$J$$
\e(J
722 (
\e$@;`$L
\e(J
\e$@;`$J$J$$$k
\e(J
\e$@;`$J$J$&
\e(J))
723 ;
\e$@;`$J$J$$
\e(J: OK
724 (deftest
\e$@FI$^$J$$
\e(J
726 (
\e$@FI$`
\e(J
\e$@FI$^$J$$$k
\e(J
\e$@FI$^$J$&
\e(J))
727 ;
\e$@FI$^$J$$
\e(J: OK
728 (deftest
\e$@8F$P$J$$
\e(J
730 (
\e$@8F$V
\e(J
\e$@8F$P$J$$$k
\e(J
\e$@8F$P$J$&
\e(J))
731 ;
\e$@8F$P$J$$
\e(J: OK
732 (deftest
\e$@8+$J$$
\e(J
734 (
\e$@8+$k
\e(J
\e$@8+$J$$$k
\e(J
\e$@8+$J$&
\e(J))
738 (deftest
\e$@Mh$J$$
\e(J
740 (
\e$@Mh$k
\e(J
\e$@Mh$J$$$k
\e(J
\e$@Mh$J$&
\e(J))
742 (deftest
\e$@$7$J$$
\e(J
744 (
\e$@$9$k
\e(J
\e$@$7$k
\e(J
\e$@$7$J$$$k
\e(J
\e$@$7$J$&
\e(J)) ;
\e$@$7$k
\e(J because of regular rules.
746 (deftest
\e$@$J$$
\e(J
748 (
\e$@$"$k
\e(J
\e$@$J$$$k
\e(J
\e$@$J$&
\e(J))
751 ;;;
\e$@$:
\e(J negatives
753 (deftest
\e$@Gc$o$:
\e(J
757 (deftest
\e$@CV$+$:
\e(J
761 (deftest
\e$@1K$,$:
\e(J
765 (deftest
\e$@OC$5$:
\e(J
769 (deftest
\e$@BT$?$:
\e(J
773 (deftest
\e$@;`$J$:
\e(J
777 (deftest
\e$@FI$^$:
\e(J
781 (deftest
\e$@8F$P$:
\e(J
785 (deftest
\e$@8+$:
\e(J
791 (deftest
\e$@Mh$:
\e(J
795 (deftest
\e$@$;$:
\e(J
797 (
\e$@$9$k
\e(J
\e$@$;$k
\e(J)) ;
\e$@$;$k
\e(J because of regular rules.
801 ;;; Plain command form
803 (deftest
\e$@Gc$(
\e(J
805 (
\e$@Gc$&
\e(J
\e$@Gc$($k
\e(J))
807 (deftest
\e$@CV$1
\e(J
809 (
\e$@CV$/
\e(J
\e$@CV$1$k
\e(J))
811 (deftest
\e$@1K$2
\e(J
813 (
\e$@1K$0
\e(J
\e$@1K$2$k
\e(J))
814 (deftest
\e$@OC$;
\e(J
816 (
\e$@OC$9
\e(J
\e$@OC$;$k
\e(J))
817 (deftest
\e$@BT$F
\e(J
819 (
\e$@BT$D
\e(J
\e$@BT$F
\e(J
\e$@BT$k
\e(J
\e$@BT$F$k
\e(J))
821 (deftest
\e$@;`$M
\e(J
823 (
\e$@;`$L
\e(J
\e$@;`$M$k
\e(J))
824 (deftest
\e$@FI$a
\e(J
826 (
\e$@FI$`
\e(J
\e$@FI$a$k
\e(J))
827 (deftest
\e$@8F$Y
\e(J
829 (
\e$@8F$V
\e(J
\e$@8F$Y$k
\e(J))
830 (deftest
\e$@8+$m
\e(J
835 (deftest
\e$@Mh$$
\e(J
837 (
\e$@Mh$k
\e(J
\e$@Mh$$$k
\e(J
\e$@Mh$&
\e(J))
839 (deftest
\e$@$3$$
\e(J
841 (
\e$@$/$k
\e(J
\e$@$3$$$k
\e(J
\e$@$3$&
\e(J))
843 (deftest
\e$@$7$m
\e(J
845 (
\e$@$9$k
\e(J
\e$@$7$k
\e(J)) ;
\e$@$7$k
\e(J because of regular rules.
847 ;;; The plain desideratives
849 (deftest
\e$@Gc$$$?$$
\e(J
851 (
\e$@Gc$&
\e(J
\e$@Gc$$$k
\e(J
\e$@Gc$$$?$$$k
\e(J
\e$@Gc$$$?$&
\e(J))
852 ;
\e$@Gc$$$?$$
\e(J: OK
853 (deftest
\e$@CV$-$?$$
\e(J
855 (
\e$@CV$/
\e(J
\e$@CV$-$k
\e(J
\e$@CV$-$?$$$k
\e(J
\e$@CV$-$?$&
\e(J))
856 ;
\e$@CV$-$?$$
\e(J: OK
857 (deftest
\e$@1K$.$?$$
\e(J
859 (
\e$@1K$0
\e(J
\e$@1K$.$k
\e(J
\e$@1K$.$?$$$k
\e(J
\e$@1K$.$?$&
\e(J))
860 ;
\e$@1K$.$?$$
\e(J: OK
861 (deftest
\e$@OC$7$?$$
\e(J
863 (
\e$@OC$9
\e(J
\e$@OC$7$k
\e(J
\e$@OC$7$?$$$k
\e(J
\e$@OC$7$?$&
\e(J))
864 ;
\e$@OC$7$?$$
\e(J: OK
865 (deftest
\e$@;}$A$?$$
\e(J
867 (
\e$@;}$D
\e(J
\e$@;}$A$k
\e(J
\e$@;}$A$?$$$k
\e(J
\e$@;}$A$?$&
\e(J))
868 ;
\e$@;}$A$?$$
\e(J: OK
869 (deftest
\e$@;`$K$?$$
\e(J
871 (
\e$@;`$L
\e(J
\e$@;`$K$k
\e(J
\e$@;`$K$?$$$k
\e(J
\e$@;`$K$?$&
\e(J))
872 ;
\e$@;`$K$?$$
\e(J: OK
873 (deftest
\e$@8F$S$?$$
\e(J
875 (
\e$@8F$V
\e(J
\e$@8F$S$k
\e(J
\e$@8F$S$?$$$k
\e(J
\e$@8F$S$?$&
\e(J))
876 ;
\e$@8F$S$?$$
\e(J: OK
877 (deftest
\e$@FI$_$?$$
\e(J
879 (
\e$@FI$`
\e(J
\e$@FI$_$k
\e(J
\e$@FI$_$?$$$k
\e(J
\e$@FI$_$?$&
\e(J))
880 ;
\e$@FI$_$?$$
\e(J: OK
881 (deftest
\e$@J,$+$j$?$$
\e(J
883 (
\e$@J,$+$k
\e(J
\e$@J,$+$j$k
\e(J
\e$@J,$+$j$?$$$k
\e(J
\e$@J,$+$j$?$&
\e(J))
884 ;
\e$@J,$+$j$?$$
\e(J: OK
885 (deftest
\e$@@.$j$?$$
\e(J
887 (
\e$@@.$k
\e(J
\e$@@.$j$k
\e(J
\e$@@.$j$?$$$k
\e(J
\e$@@.$j$?$&
\e(J))
888 ;
\e$@@.$j$?$$
\e(J: OK
889 (deftest
\e$@@8$-$?$$
\e(J
891 (
\e$@@8$-$k
\e(J
\e$@@8$/
\e(J
\e$@@8$-$?$$$k
\e(J
\e$@@8$-$?$&
\e(J))
892 ;
\e$@@8$-$?$$
\e(J: OK
893 (deftest
\e$@8+$?$$
\e(J
895 (
\e$@8+$k
\e(J
\e$@8+$?$$$k
\e(J
\e$@8+$?$&
\e(J))
901 (deftest
\e$@Mh$?$$
\e(J
903 (
\e$@Mh$k
\e(J
\e$@Mh$?$$$k
\e(J
\e$@Mh$?$&
\e(J))
905 (deftest
\e$@$-$?$$
\e(J
907 (
\e$@$/$k
\e(J
\e$@$-$k
\e(J
\e$@$-$?$$$k
\e(J
\e$@$-$?$&
\e(J))
909 (deftest
\e$@$7$?$$
\e(J
911 (
\e$@$9$k
\e(J
\e$@$7$k
\e(J
\e$@$7$?$$$k
\e(J
\e$@$7$?$&
\e(J))
914 (deftest
\e$@Gc$$$?$,$k
\e(J
916 (
\e$@Gc$&
\e(J
\e$@Gc$$$k
\e(J))
917 (deftest
\e$@CV$-$?$,$k
\e(J
919 (
\e$@CV$/
\e(J
\e$@CV$$
\e(J
\e$@CV$-$k
\e(J))
920 (deftest
\e$@1K$.$?$,$k
\e(J
922 (
\e$@1K$0
\e(J
\e$@1K$.$k
\e(J))
923 (deftest
\e$@OC$7$?$,$k
\e(J
925 (
\e$@OC$9
\e(J
\e$@OC$7$k
\e(J))
926 (deftest
\e$@;}$A$?$,$k
\e(J
928 (
\e$@;}$D
\e(J
\e$@;}$A$k
\e(J))
929 (deftest
\e$@;`$K$?$,$k
\e(J
931 (
\e$@;`$L
\e(J
\e$@;`$K$k
\e(J))
932 (deftest
\e$@8F$S$?$,$k
\e(J
934 (
\e$@8F$V
\e(J
\e$@8F$S$k
\e(J))
935 (deftest
\e$@FI$_$?$,$k
\e(J
937 (
\e$@FI$`
\e(J
\e$@FI$_$k
\e(J))
938 (deftest
\e$@J,$+$j$?$,$k
\e(J
940 (
\e$@J,$+$k
\e(J
\e$@J,$+$j$k
\e(J))
941 (deftest
\e$@@.$j$?$,$k
\e(J
943 (
\e$@@.$k
\e(J
\e$@@.$j$k
\e(J))
944 (deftest
\e$@@8$-$?$,$k
\e(J
946 (
\e$@@8$-$k
\e(J
\e$@@8$/
\e(J
\e$@@8$$
\e(J)) ; Could be an adverb or adjective.
947 (deftest
\e$@8+$?$,$k
\e(J
954 (deftest
\e$@Mh$?$,$k
\e(J
957 (deftest
\e$@$-$?$,$k
\e(J
959 (
\e$@$/$k
\e(J
\e$@$-$k
\e(J))
960 (deftest
\e$@$7$?$,$k
\e(J
962 (
\e$@$9$k
\e(J
\e$@$7$k
\e(J))
965 ;;; Here's a compound test.
967 (deftest
\e$@9T$-$?$,$C$F$$$^$9
\e(J
969 (
\e$@9T$/
\e(J
\e$@9T$-$?$,$C$F
\e(J
\e$@9T$-$?$,$k
\e(J
\e$@9T$-$?$,$&
\e(J
\e$@9T$-$?$,$D
\e(J
970 \e$@9T$-$?$,$C$D
\e(J
\e$@9T$-$?$,$C$F$$$k
\e(J
\e$@9T$-$?$,$C$F$&
\e(J
\e$@9T$$
\e(J
972 ;
\e$@9T$-$?$,$C$F$$$^$9
\e(J: OK
974 (deftest
\e$@FI$s$G$$$k
\e(J
976 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J))
977 ;
\e$@FI$s$G$$$k
\e(J: OK
978 (deftest
\e$@Gc$C$F$$$k
\e(J
980 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J))
981 ;
\e$@Gc$C$F$$$k
\e(J: OK
983 (deftest
\e$@FI$s$G$$$?
\e(J
985 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J
\e$@FI$s$G$$$k
\e(J
\e$@FI$s$G$/
\e(J))
986 ;
\e$@FI$s$G$$$?
\e(J: OK
987 (deftest
\e$@Gc$C$F$$$?
\e(J
989 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
\e$@Gc$C$F$$$k
\e(J
\e$@Gc$C$F$/
\e(J))
990 ;
\e$@Gc$C$F$$$?
\e(J: OK
992 (deftest
\e$@FI$s$G$$$^$9
\e(J
994 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J
\e$@FI$s$G$$$k
\e(J
\e$@FI$s$G$&
\e(J))
995 ;
\e$@FI$s$G$$$^$9
\e(J: OK
996 (deftest
\e$@Gc$C$F$$$^$9
\e(J
998 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
\e$@Gc$C$F$$$k
\e(J
\e$@Gc$C$F$&
\e(J))
999 ;
\e$@Gc$C$F$$$^$9
\e(J: OK
1001 (deftest
\e$@FI$s$G$"$k
\e(J
1003 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J))
1004 ;
\e$@FI$s$G$"$k
\e(J: OK
1005 (deftest
\e$@Gc$C$F$"$k
\e(J
1007 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J))
1008 ;
\e$@Gc$C$F$"$k
\e(J: OK
1010 (deftest
\e$@FI$s$G$*$/
\e(J
1012 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J
\e$@FI$s$G$*$$
\e(J))
1013 ;
\e$@FI$s$G$*$/
\e(J: OK
1014 (deftest
\e$@Gc$C$F$*$/
\e(J
1016 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
\e$@Gc$C$F$*$$
\e(J))
1017 ;
\e$@Gc$C$F$*$/
\e(J: OK
1019 (deftest
\e$@FI$s$G$_$k
\e(J
1021 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J))
1022 ;
\e$@FI$s$G$_$k
\e(J: OK
1023 (deftest
\e$@Gc$C$F$_$k
\e(J
1025 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J))
1026 ;
\e$@Gc$C$F$_$k
\e(J: OK
1028 (deftest
\e$@FI$s$G$7$^$&
\e(J
1030 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J))
1031 ;
\e$@FI$s$G$7$^$&
\e(J: OK
1032 (deftest
\e$@Gc$C$F$7$^$&
\e(J
1034 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J))
1035 ;
\e$@Gc$C$F$7$^$&
\e(J: OK
1037 (deftest
\e$@FI$s$G$/$@$5$$
\e(J
1039 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J
\e$@FI$s$G$/$@$5$$$k
\e(J
\e$@FI$s$G$/$@$5$&
\e(J))
1040 ;
\e$@FI$s$G$/$@$5$$
\e(J: OK
1041 (deftest
\e$@Gc$C$F$/$@$5$$
\e(J
1043 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
\e$@Gc$C$F$/$@$5$$$k
\e(J
\e$@Gc$C$F$/$@$5$&
\e(J))
1044 ;
\e$@Gc$C$F$/$@$5$$
\e(J: OK
1046 (deftest
\e$@FI$s$G2<$5$$
\e(J
1048 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J
\e$@FI$s$G2<$5$$$k
\e(J
\e$@FI$s$G2<$5$&
\e(J))
1049 ;
\e$@FI$s$G2<$5$$
\e(J: OK
1050 (deftest
\e$@Gc$C$F2<$5$$
\e(J
1052 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
\e$@Gc$C$F2<$5$$$k
\e(J
\e$@Gc$C$F2<$5$&
\e(J))
1053 ;
\e$@Gc$C$F2<$5$$
\e(J: OK
1055 (deftest
\e$@FI$s$G$J$5$$
\e(J
1057 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J
\e$@FI$s$G$J$5$$$k
\e(J
\e$@FI$s$G$J$5$&
\e(J))
1058 ;
\e$@FI$s$G$J$5$$
\e(J: OK
1059 (deftest
\e$@Gc$C$F$J$5$$
\e(J
1061 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
\e$@Gc$C$F$J$5$$$k
\e(J
\e$@Gc$C$F$J$5$&
\e(J))
1062 ;
\e$@Gc$C$F$J$5$$
\e(J: OK
1064 (deftest
\e$@FI$s$G$$$/
\e(J
1066 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J
\e$@FI$s$G$$$$
\e(J))
1067 ;
\e$@FI$s$G$$$/
\e(J: OK
1068 (deftest
\e$@Gc$C$F$$$/
\e(J
1070 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
\e$@Gc$C$F$$$$
\e(J))
1071 ;
\e$@Gc$C$F$$$/
\e(J: OK
1073 (deftest
\e$@FI$s$G$/$k
\e(J
1075 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J))
1076 ;
\e$@FI$s$G$/$k
\e(J: OK
1077 (deftest
\e$@Gc$C$F$/$k
\e(J
1079 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J))
1080 ;
\e$@Gc$C$F$/$k
\e(J: OK
1082 (deftest
\e$@FI$s$G$"$2$k
\e(J
1084 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J
\e$@FI$s$G$"$0
\e(J))
1085 ;
\e$@FI$s$G$"$2$k
\e(J: OK
1086 (deftest
\e$@Gc$C$F$"$2$k
\e(J
1088 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
\e$@Gc$C$F$"$0
\e(J))
1089 ;
\e$@Gc$C$F$"$2$k
\e(J: OK
1091 (deftest
\e$@FI$s$G$d$k
\e(J
1093 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J))
1094 ;
\e$@FI$s$G$d$k
\e(J: OK
1095 (deftest
\e$@Gc$C$F$d$k
\e(J
1097 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J))
1098 ;
\e$@Gc$C$F$d$k
\e(J: OK
1100 (deftest
\e$@FI$s$G$b$i$&
\e(J
1102 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J))
1103 ;
\e$@FI$s$G$b$i$&
\e(J: OK
1104 (deftest
\e$@Gc$C$F$b$i$&
\e(J
1106 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J))
1107 ;
\e$@Gc$C$F$b$i$&
\e(J: OK
1109 (deftest
\e$@FI$s$G$$$?$@$/
\e(J
1111 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J
\e$@FI$s$G$$$?$@$$
\e(J))
1112 ;
\e$@FI$s$G$$$?$@$/
\e(J: OK
1113 (deftest
\e$@Gc$C$F$$$?$@$/
\e(J
1115 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
\e$@Gc$C$F$$$?$@$$
\e(J))
1116 ;
\e$@Gc$C$F$$$?$@$/
\e(J: OK
1118 (deftest
\e$@FI$s$G$/$l$k
\e(J
1120 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J
\e$@FI$s$G$/$k
\e(J))
1121 ;
\e$@FI$s$G$/$l$k
\e(J: OK
1122 (deftest
\e$@Gc$C$F$/$l$k
\e(J
1124 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
\e$@Gc$C$F$/$k
\e(J))
1125 ;
\e$@Gc$C$F$/$l$k
\e(J: OK
1127 (deftest
\e$@FI$s$G$$$?$@$-$^$9
\e(J
1129 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J
\e$@FI$s$G$$$?$@$/
\e(J
\e$@FI$s$G$$$?$@$-$k
\e(J))
1130 ;
\e$@FI$s$G$$$?$@$-$^$9
\e(J: OK
1131 (deftest
\e$@Gc$C$F$$$?$@$-$^$9
\e(J
1133 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
\e$@Gc$C$F$$$?$@$/
\e(J
\e$@Gc$C$F$$$?$@$-$k
\e(J))
1134 ;
\e$@Gc$C$F$$$?$@$-$^$9
\e(J: OK
1136 (deftest
\e$@Gc$C$FD:$-$^$9
\e(J
1138 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
\e$@Gc$C$FD:$/
\e(J
\e$@Gc$C$FD:$-$k
\e(J))
1139 ;
\e$@Gc$C$FD:$-$^$9
\e(J: OK
1141 (deftest
\e$@FI$s$G$/$@$5$$
\e(J
1143 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J
\e$@FI$s$G$/$@$5$&
\e(J
\e$@FI$s$G$/$@$5$$$k
\e(J))
1144 ;
\e$@FI$s$G$/$@$5$$
\e(J: OK
1145 (deftest
\e$@Gc$C$F$/$@$5$$
\e(J
1147 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
\e$@Gc$C$F$/$@$5$&
\e(J
\e$@Gc$C$F$/$@$5$$$k
\e(J))
1148 ;
\e$@Gc$C$F$/$@$5$$
\e(J: OK
1150 (deftest
\e$@FI$s$G>e$2$k
\e(J
1152 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J
\e$@FI$s$G>e$0
\e(J))
1153 ;
\e$@FI$s$G>e$2$k
\e(J: OK
1154 (deftest
\e$@Gc$C$F$"$2$k
\e(J
1156 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
\e$@Gc$C$F$"$0
\e(J))
1157 ;
\e$@Gc$C$F$"$2$k
\e(J: OK
1158 (deftest
\e$@FI$s$G:9$7>e$2$k
\e(J
1160 (
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J
\e$@FI$s$G:9$7>e$0
\e(J))
1161 ;
\e$@FI$s$G:9$7>e$2$k
\e(J: OK
1162 (deftest
\e$@Gc$C$F:9$7>e$2$k
\e(J
1164 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
\e$@Gc$C$F:9$7>e$0
\e(J))
1165 ;
\e$@Gc$C$F:9$7>e$2$k
\e(J: OK
1167 (deftest
\e$@Gc$C$F:9$7$"$2$k
\e(J
1169 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
\e$@Gc$C$F:9$7$"$0
\e(J))
1170 ;
\e$@Gc$C$F:9$7$"$2$k
\e(J: OK
1171 (deftest
\e$@Gc$C$F$5$7$"$2$k
\e(J
1173 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
\e$@Gc$C$F$5$7$"$0
\e(J))
1174 ;
\e$@Gc$C$F$5$7$"$2$k
\e(J: OK
1175 (deftest
\e$@Gc$C$F$5$7>e$2$k
\e(J
1177 (
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
\e$@Gc$C$F$5$7>e$0
\e(J))
1178 ;
\e$@Gc$C$F$5$7>e$2$k
\e(J: OK
1180 (deftest
\e$@FI$`$i$7$$
\e(J
1182 (
\e$@FI$`
\e(J
\e$@FI$`$i$7$&
\e(J
\e$@FI$`$i$7$$$k
\e(J))
1183 ;
\e$@FI$`$i$7$$
\e(J: OK
1185 (deftest
\e$@FI$`$=$&
\e(J
1187 (
\e$@FI$`
\e(J
\e$@FI$`$9
\e(J))
1188 ;
\e$@FI$`$=$&
\e(J: OK
1190 (deftest
\e$@FI$`$h$&
\e(J
1193 ;
\e$@FI$`$h$&
\e(J: OK
1195 (deftest
\e$@FI$`$h$&$@
\e(J
1197 (
\e$@FI$`
\e(J
\e$@FI$`$h$&
\e(J))
1198 ;
\e$@FI$`$h$&$@
\e(J: OK
1200 (deftest
\e$@Gc$*$&
\e(J
1204 (deftest
\e$@CV$3$&
\e(J
1208 (deftest
\e$@1K$4$&
\e(J
1212 (deftest
\e$@OC$=$&
\e(J
1216 (deftest
\e$@BT$H$&
\e(J
1220 (deftest
\e$@;`$N$&
\e(J
1224 (deftest
\e$@FI$b$&
\e(J
1228 (deftest
\e$@8F$\$&
\e(J
1232 (deftest
\e$@8+$h$&
\e(J
1238 (deftest
\e$@Mh$h$&
\e(J
1242 (deftest
\e$@$3$h$&
\e(J
1246 (deftest
\e$@$7$h$&
\e(J
1248 (
\e$@$9$k
\e(J
\e$@$7$k
\e(J)) ;
\e$@$7$k
\e(J due to the regular rules.
1251 (deftest
\e$@FI$s$A$c$&
\e(J
1253 (
\e$@FI$s$G$7$^$&
\e(J
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J))
1254 ;
\e$@FI$s$A$c$&
\e(J: OK
1255 (deftest
\e$@Gc$C$A$c$&
\e(J
1257 (
\e$@Gc$C$F$7$^$&
\e(J
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J))
1258 ;
\e$@Gc$C$A$c$&
\e(J: OK
1260 (deftest
\e$@FI$s$A$c$C$?
\e(J
1262 (
\e$@FI$s$G$7$^$&
\e(J
\e$@FI$s$G
\e(J
\e$@FI$`
\e(J
\e$@FI$L
\e(J
\e$@FI$V
\e(J
1263 \e$@FI$s$A$c$&
\e(J
\e$@FI$s$A$c$k
\e(J
\e$@FI$s$A$c$D
\e(J))
1264 ;
\e$@FI$s$A$c$C$?
\e(J: OK
1266 (deftest
\e$@Gc$C$A$c$C$?
\e(J
1268 (
\e$@Gc$C$F$7$^$&
\e(J
\e$@Gc$C$F
\e(J
\e$@Gc$&
\e(J
\e$@Gc$C$D
\e(J
\e$@Gc$D
\e(J
\e$@Gc$k
\e(J
1269 \e$@Gc$C$A$c$&
\e(J
\e$@Gc$C$A$c$k
\e(J
\e$@Gc$C$A$c$D
\e(J))
1270 ;
\e$@Gc$C$A$c$C$?
\e(J: OK
1272 (deftest
\e$@:o=|$9$k
\e(J
1275 ;
\e$@:o=|$9$k
\e(J: OK
1277 ;;; Honorific prefixes
1279 (deftest
\e$@$*?e
\e(J
1284 (deftest
\e$@$4HS
\e(J
1289 (deftest
\e$@8fHS
\e(J
1296 (deftest
\e$@?7$7$/
\e(J
1301 (deftest
\e$@?7$7$/$F
\e(J
1303 (
\e$@?7$7$$
\e(J
\e$@?7$7$/$D
\e(J
\e$@?7$7$/$F$k
\e(J))
1304 ;
\e$@?7$7$/$F
\e(J: OK
1306 (deftest
\e$@?7$7$+$C$?
\e(J
1308 (
\e$@?7$7$$
\e(J
\e$@?7$7$+$&
\e(J
\e$@?7$7$+$D
\e(J
\e$@?7$7$+$k
\e(J))
1309 ;
\e$@?7$7$+$C$?
\e(J: OK
1311 (deftest
\e$@855$$G$O$"$j$^$;$s
\e(J
1313 (
\e$@855$
\e(J
\e$@855$$G$O$"$k
\e(J
\e$@855$$G$O$"$j$k
\e(J
\e$@855$$@
\e(J
\e$@855$$G$9
\e(J))
1314 ;
\e$@855$$G$O$"$j$^$;$s
\e(J: OK
1316 (deftest
\e$@855$$G$O$J$$
\e(J
1318 (
\e$@855$
\e(J
\e$@855$$G$O$J$$$k
\e(J
\e$@855$$G$O$J$&
\e(J
\e$@855$$@
\e(J))
1319 ;
\e$@855$$G$O$J$$
\e(J: OK
1321 (deftest
\e$@855$$8$c$"$j$^$;$s
\e(J
1323 (
\e$@855$
\e(J
\e$@855$$8$c$"$k
\e(J
\e$@855$$8$c$"$j$k
\e(J
\e$@855$$@
\e(J
\e$@855$$G$9
\e(J))
1324 ;
\e$@855$$8$c$"$j$^$;$s
\e(J: OK
1326 (deftest
\e$@855$$8$c$J$$
\e(J
1328 (
\e$@855$
\e(J
\e$@855$$8$c$J$$$k
\e(J
\e$@855$$8$c$J$&
\e(J
\e$@855$$@
\e(J))
1329 ;
\e$@855$$8$c$J$$
\e(J: OK
1331 (deftest
\e$@?7$7$/$J$/$F
\e(J
1333 (
\e$@?7$7$$
\e(J
\e$@?7$7$/$J$$
\e(J
\e$@?7$7$/$J$/$D
\e(J
\e$@?7$7$/$J$/$F$k
\e(J))
1334 ;
\e$@?7$7$/$J$/$F
\e(J: OK
1336 (deftest
\e$@?7$7$1$l$P
\e(J
1338 (
\e$@?7$7$$
\e(J
\e$@?7$7$/
\e(J
\e$@?7$7$1$k
\e(J))
1339 ;
\e$@?7$7$1$l$P
\e(J: OK
1341 (deftest
\e$@?7$7$/$J$$
\e(J
1343 (
\e$@?7$7$$
\e(J
\e$@?7$7$/$J$&
\e(J
\e$@?7$7$/$J$$$k
\e(J))
1344 ;
\e$@?7$7$/$J$$
\e(J: OK
1346 (deftest
\e$@JY6/Cf
\e(J
1351 (deftest
\e$@7k:'<0
\e(J
1356 (deftest
\e$@K:$l$b$N
\e(J
1358 (
\e$@K:$l
\e(J
\e$@K:$l$k
\e(J
\e$@K:$k
\e(J))
1359 ;
\e$@K:$l$b$N
\e(J: OK
1361 (deftest
\e$@K:$lJ*
\e(J
1363 (
\e$@K:$l
\e(J
\e$@K:$l$k
\e(J
\e$@K:$k
\e(J))
1366 (deftest
\e$@N99T<T
\e(J
1371 (deftest
\e$@4[0w
\e(J
1376 (deftest
\e$@:rF|
\e(J
1381 (deftest
\e$@MhG/
\e(J
1386 (deftest
\e$@A49q
\e(J
1393 (deftest
\e$@$*0{$_$K$J$j$^$9
\e(J
1395 (
\e$@0{$`
\e(J
\e$@$*0{$_$K$J$k
\e(J
\e$@$*0{$_$K$J$j$k
\e(J
\e$@$*0{$_$K$J$j$^$9
\e(J
1396 \e$@0{$_$K$J$j$^$9
\e(J
\e$@0{$_$K$J$k
\e(J
\e$@0{$_$K$J$j$k
\e(J))
1397 ;
\e$@$*0{$_$K$J$j$^$9
\e(J: OK
1399 (deftest
\e$@$*0{$_$K@.$j$^$9
\e(J
1401 (
\e$@0{$`
\e(J
\e$@$*0{$_$K@.$k
\e(J
\e$@$*0{$_$K@.$j$k
\e(J
1402 \e$@0{$_$K@.$j$^$9
\e(J
\e$@0{$_$K@.$k
\e(J
\e$@0{$_$K@.$j$k
\e(J))
1403 ;
\e$@$*0{$_$K@.$j$^$9
\e(J: OK
1405 (deftest
\e$@9T$C$F$-$^$9
\e(J
1407 (
\e$@9T$/
\e(J
\e$@9T$C$F
\e(J
\e$@9T$C$F$/$k
\e(J
\e$@9T$C$F$/
\e(J
\e$@9T$C$F$-$k
\e(J
1408 \e$@9T$&
\e(J
\e$@9T$D
\e(J
\e$@9T$k
\e(J
\e$@9T$$
\e(J
\e$@9T$C$D
\e(J))
1409 ;
\e$@9T$C$F$-$^$9
\e(J: OK
1411 (deftest
\e$@J,3d$7$J$$$h$&
\e(J
1413 (
\e$@J,3d
\e(J
\e$@J,3d$9$k
\e(J
\e$@J,3d$7$k
\e(J
\e$@J,3d$7$J$$
\e(J
\e$@J,3d$7$J$$$k
\e(J
\e$@J,3d$7$J$&
\e(J))
1414 ;
\e$@J,3d$7$J$$$h$&
\e(J: OK
1416 (deftest
\e$@BZ:_$7$F$$$k
\e(J
1418 (
\e$@BZ:_
\e(J
\e$@BZ:_$9$k
\e(J
\e$@BZ:_$7$F
\e(J
\e$@BZ:_$7$D
\e(J
\e$@BZ:_$9
\e(J
\e$@BZ:_$7$k
\e(J))
1419 ;
\e$@BZ:_$7$F$$$k
\e(J: OK
1421 (deftest
\e$@D9$/$J$j$^$9
\e(J
1423 (
\e$@D9$/
\e(J
\e$@D9$$
\e(J
\e$@D9$/$J$k
\e(J
\e$@D9$/$J$j$k
\e(J))
1424 ;
\e$@D9$/$J$j$^$9
\e(J: OK
1426 ;;;
\e$@$3$l$OJ,$+$C$F$$$^$;$s!'
\e(J
1427 ;; > |
\e$@$3$l$G
\e(Jxinfo
\e$@$GF|K\8l$,I=<($G$-$^$9!%
\e(JEmacs
\e$@$N
\e(Jinfo
\e$@$O;H$$$:$i$+$C$?$N$G!$
\e(J
1428 ;; > |xinfo
\e$@$NB8:_$O$H$F$b$"$j$,$?$$$H;W$$$^$9!%
\e(J
1430 ;;
\e$@!V;H$$$:$i$+$C$?!W$H$O2?$G$9$+!#
\e(J
1431 ;;
\e$@"*!V;H$$$:!W$O!"!V;H$o$:!W$G$9$+!#
\e(J
1432 ;;
\e$@"*!V;H$o$J$+$C$?$i!W$G$9$+!#
\e(J
1433 ;;
\e$@$G$O!"!V;H$$$:!W$H!V$i$+$C$?!W$H!V$:$i!W$r
\e(Jedict
\e$@$,$o$+$i$J$C$?!#
\e(J
1434 ;;
\e$@;d$N@h@8$K?R$M$h$&!#
\e(J
1436 (deftest
\e$@>/$J$+$i$:
\e(J
1438 (
\e$@>/$J$$
\e(J
\e$@>/$J$+$k
\e(J
\e$@>/$k
\e(J))
1439 ;
\e$@>/$J$+$i$:
\e(J: OK
1441 ;;; Test the various titles.
1443 (deftest
\e$@a15H<B@h@8
\e(J
1446 ;
\e$@a15H<B@h@8
\e(J: OK
1448 (deftest
\e$@CfB<$5$s
\e(J
1451 ;
\e$@CfB<$5$s
\e(J: OK
1453 (deftest
\e$@5\K\$A$c$s
\e(J
1456 ;
\e$@5\K\$A$c$s
\e(J: OK
1458 (deftest
\e$@NS7/
\e(J
1463 (deftest
\e$@>.Bt$/$s
\e(J
1466 ;
\e$@>.Bt$/$s
\e(J: OK
1468 (deftest
\e$@@1LnMM
\e(J
1473 (deftest
\e$@8E:d$5$^
\e(J
1476 ;
\e$@8E:d$5$^
\e(J: OK
1478 ;;; Test the various number cases.
1480 (deftest
\e$@Fs?M
\e(J
1482 (
\e$@0l?M
\e(J
\e$@?M
\e(J))
1485 (deftest 17
\e$@?M
\e(J
1487 (
\e$@0l?M
\e(J
\e$@?M
\e(J))
1490 (deftest
\e$@#1#7?M
\e(J
1492 (
\e$@0l?M
\e(J
\e$@?M
\e(J))
1495 ;;; This one caused infinite recursion, due to a hole in the
1496 ;;; redundant-expansion checking (things didn't get checked for redundancy
1497 ;;; quite soon enough, so short cycles weren't detected).
1499 (deftest
\e$@=P$F
\e(J
1501 (
\e$@=P$k
\e(J
\e$@=P$F$k
\e(J
\e$@=P$D
\e(J))
1504 ;;; This one caused infinite recursion, due to failure to root certain
1505 ;;; patterns. I've since added checks on the patterns to enforce rootedness.
1507 (deftest
\e$@DL$8$k
\e(J
1512 (deftest
\e$@#2<oN`
\e(J
1514 (
\e$@0l<oN`
\e(J
\e$@<oN`
\e(J))
1517 (deftest
\e$@$"$+$$$8$c$"$j$^$;$s
\e(J
1519 (
\e$@$"$+$$$G$9
\e(J
\e$@$"$+$$$8$c$"$k
\e(J
\e$@$"$+$$$8$c$"$j$k
\e(J
\e$@$"$+$$$@
\e(J
\e$@$"$+$0
\e(J
\e$@$"$+$&
\e(J
\e$@$"$+$$$k
\e(J
\e$@$"$+$$
\e(J))
1520 ;
\e$@$"$+$$$8$c$"$j$^$;$s
\e(J: OK
1522 (deftest
\e$@1+$G$7$g$&
\e(J
1524 (
\e$@1+$G$9
\e(J
\e$@1+$@
\e(J
\e$@1+
\e(J))
1525 ;
\e$@1+$G$7$g$&
\e(J: OK
1527 (deftest
\e$@G-
\e(Js