source: trunk/source/tests/ansi-tests/string-comparisons.lsp @ 8991

Last change on this file since 8991 was 8991, checked in by gz, 12 years ago

Check in the gcl ansi test suite (original, in preparation for making local changes)

File size: 26.5 KB
Line 
1;-*- Mode:     Lisp -*-
2;;;; Author:   Paul Dietz
3;;;; Created:  Fri Oct  4 06:32:41 2002
4;;;; Contains: Tests of string comparison functions
5
6(in-package :cl-test)
7
8(compile-and-load "string-aux.lsp")
9
10(deftest string=.1
11  (not (string= "abc" (copy-seq "abc")))
12  nil)
13
14(deftest string=.2
15  (string= "A" "a")
16  nil)
17
18(deftest string=.3
19  (not (string= #\a "a"))
20  nil)
21
22(deftest string=.4
23  (not (string= '|abc| (copy-seq "abc")))
24  nil)
25
26(deftest string=.5
27  (not (string= (copy-seq "abc") '#:|abc|))
28  nil)
29
30;;; Test that it doesn't stop at null characters
31(deftest string=.6
32  (let ((s1 (copy-seq "abc"))
33        (s2 (copy-seq "abd"))
34        (c (or (code-char 0) #\a)))
35    (setf (char s1 1) c)
36    (setf (char s2 1) c)
37    (values (length s1) (length s2) (string= s1 s2)))
38  3 3 nil)
39
40(deftest string=.7
41  (loop for i from 0 to 3
42        collect (not (string= "abc" "abd" :start1 0 :end1 i :end2 i)))
43  (nil nil nil t))
44
45(deftest string=.8
46  (loop for i from 0 to 3
47        collect (not (string= "abc" "ab" :end1 i)))
48  (t t nil t))
49
50(deftest string=.9
51  (loop for i from 0 to 3
52        collect (not (string= "abc" "abd" :start2 0 :end2 i :end1 i)))
53  (nil nil nil t))
54
55(deftest string=.10
56  (loop for i from 0 to 3
57        collect (not (string= "ab" "abc" :end2 i)))
58  (t t nil t))
59
60(deftest string=.11
61  (loop for i from 0 to 3
62        collect (not (string= "xyab" "ab" :start1 i)))
63  (t t nil t))
64
65(deftest string=.12
66  (loop for i from 0 to 3
67        collect (not (string= "ab" "xyab" :start2 i)))
68  (t t nil t))
69
70(deftest string=.13
71  (loop for i from 0 to 3
72        collect (not (string= "xyab" "ab" :start1 i :end1 nil)))
73  (t t nil t))
74
75(deftest string=.14
76  (loop for i from 0 to 3
77        collect (not (string= "ab" "xyab" :start2 i :end2 nil)))
78  (t t nil t))
79
80;;; Keyword argument processing
81
82(deftest string-comparison.allow-other-keys.1
83  (loop for fn in '(string= string<= string>= string/= string< string>
84                    string-equal string-not-greaterp string-not-lessp
85                    string-not-equal string-lessp string-greaterp)
86        for expected in '(nil 0 nil 0 0 nil nil 0 nil 0 0 nil)
87        for result = (funcall fn "a" "b" :allow-other-keys t :foo nil)
88        unless (eql result expected)
89        collect (list fn expected result))
90  nil)
91
92(deftest string-comparison.allow-other-keys.2
93  (loop for fn in '(string= string<= string>= string/= string< string>
94                    string-equal string-not-greaterp string-not-lessp
95                    string-not-equal string-lessp string-greaterp)
96        for expected in '(nil nil 0 0 nil 0 nil nil 0 0 nil 0)
97        for result = (funcall fn "c" "b" :allow-other-keys t
98                              :allow-other-keys nil :foo 1)
99        unless (eql result expected)
100        collect (list fn expected result))
101  nil)
102
103(deftest string-comparison.allow-other-keys.3
104  (loop for fn in '(string= string<= string>= string/= string< string>
105                    string-equal string-not-greaterp string-not-lessp
106                    string-not-equal string-lessp string-greaterp)
107        for expected in '(nil 0 nil 0 0 nil nil 0 nil 0 0 nil)
108        for result = (funcall fn "a" "b" :allow-other-keys nil)
109        unless (eql result expected)
110        collect (list fn expected result))
111  nil)
112
113
114;;; Order of evaluation
115
116(deftest string=.order.1
117  (let ((i 0) x y)
118    (values
119     (string= (progn (setf x (incf i)) "abc")
120              (progn (setf y (incf i)) "abd"))
121     i x y))
122  nil 2 1 2)
123
124(deftest string=.order.2
125  (let ((i 0) a b c d e f)
126    (values
127     (string= (progn (setf a (incf i)) "abc")
128              (progn (setf b (incf i)) "abd")
129              :start1 (progn (setf c (incf i)) 0)
130              :start2 (progn (setf d (incf i)) 0)
131              :end1 (progn (setf e (incf i)) nil)
132              :end2 (progn (setf f (incf i)) nil)
133              )
134     i a b c d e f))
135  nil 6 1 2 3 4 5 6)
136
137(deftest string=.order.3
138  (let ((i 0) a b c d e f)
139    (values
140     (string= (progn (setf a (incf i)) "abc")
141              (progn (setf b (incf i)) "abd")
142              :end2 (progn (setf c (incf i)) nil)
143              :end1 (progn (setf d (incf i)) nil)
144              :start2 (progn (setf e (incf i)) 0)
145              :start1 (progn (setf f (incf i)) 0)
146              )
147     i a b c d e f))
148  nil 6 1 2 3 4 5 6)
149
150(deftest string<=.order.1
151  (let ((i 0) x y)
152    (values
153     (string<= (progn (setf x (incf i)) "abf")
154               (progn (setf y (incf i)) "abd"))
155     i x y))
156  nil 2 1 2)
157
158(deftest string<=.order.2
159  (let ((i 0) a b c d e f)
160    (values
161     (string<= (progn (setf a (incf i)) "abf")
162               (progn (setf b (incf i)) "abd")
163               :start1 (progn (setf c (incf i)) 0)
164               :start2 (progn (setf d (incf i)) 0)
165               :end1 (progn (setf e (incf i)) nil)
166               :end2 (progn (setf f (incf i)) nil)
167               )
168     i a b c d e f))
169  nil 6 1 2 3 4 5 6)
170
171(deftest string<=.order.3
172  (let ((i 0) a b c d e f)
173    (values
174     (string<= (progn (setf a (incf i)) "abf")
175               (progn (setf b (incf i)) "abd")
176               :end2 (progn (setf c (incf i)) nil)
177               :end1 (progn (setf d (incf i)) nil)
178               :start2 (progn (setf e (incf i)) 0)
179               :start1 (progn (setf f (incf i)) 0)
180               )
181     i a b c d e f))
182  nil 6 1 2 3 4 5 6)
183
184(deftest string<.order.1
185  (let ((i 0) x y)
186    (values
187     (string< (progn (setf x (incf i)) "abf")
188              (progn (setf y (incf i)) "abd"))
189     i x y))
190  nil 2 1 2)
191
192(deftest string<.order.2
193  (let ((i 0) a b c d e f)
194    (values
195     (string< (progn (setf a (incf i)) "abf")
196              (progn (setf b (incf i)) "abd")
197              :start1 (progn (setf c (incf i)) 0)
198              :start2 (progn (setf d (incf i)) 0)
199              :end1 (progn (setf e (incf i)) nil)
200              :end2 (progn (setf f (incf i)) nil)
201              )
202     i a b c d e f))
203  nil 6 1 2 3 4 5 6)
204
205(deftest string<.order.3
206  (let ((i 0) a b c d e f)
207    (values
208     (string< (progn (setf a (incf i)) "abf")
209              (progn (setf b (incf i)) "abd")
210              :end2 (progn (setf c (incf i)) nil)
211              :end1 (progn (setf d (incf i)) nil)
212              :start2 (progn (setf e (incf i)) 0)
213              :start1 (progn (setf f (incf i)) 0)
214              )
215     i a b c d e f))
216  nil 6 1 2 3 4 5 6)
217
218
219(deftest string/=.order.1
220  (let ((i 0) x y)
221    (values
222     (string/= (progn (setf x (incf i)) "abc")
223               (progn (setf y (incf i)) "abc"))
224     i x y))
225  nil 2 1 2)
226
227(deftest string/=.order.2
228  (let ((i 0) a b c d e f)
229    (values
230     (string/= (progn (setf a (incf i)) "abc")
231               (progn (setf b (incf i)) "abc")
232               :start1 (progn (setf c (incf i)) 0)
233               :start2 (progn (setf d (incf i)) 0)
234               :end1 (progn (setf e (incf i)) nil)
235               :end2 (progn (setf f (incf i)) nil)
236               )
237     i a b c d e f))
238  nil 6 1 2 3 4 5 6)
239
240(deftest string/=.order.3
241  (let ((i 0) a b c d e f)
242    (values
243     (string/= (progn (setf a (incf i)) "abc")
244               (progn (setf b (incf i)) "abc")
245               :end2 (progn (setf c (incf i)) nil)
246               :end1 (progn (setf d (incf i)) nil)
247               :start2 (progn (setf e (incf i)) 0)
248               :start1 (progn (setf f (incf i)) 0)
249               )
250     i a b c d e f))
251  nil 6 1 2 3 4 5 6)
252
253(deftest string>=.order.1
254  (let ((i 0) x y)
255    (values
256     (string<= (progn (setf x (incf i)) "abf")
257               (progn (setf y (incf i)) "abd"))
258     i x y))
259  nil 2 1 2)
260
261(deftest string>=.order.2
262  (let ((i 0) a b c d e f)
263    (values
264     (string>= (progn (setf a (incf i)) "abc")
265               (progn (setf b (incf i)) "abd")
266               :start1 (progn (setf c (incf i)) 0)
267               :start2 (progn (setf d (incf i)) 0)
268               :end1 (progn (setf e (incf i)) nil)
269               :end2 (progn (setf f (incf i)) nil)
270               )
271     i a b c d e f))
272  nil 6 1 2 3 4 5 6)
273
274(deftest string>=.order.3
275  (let ((i 0) a b c d e f)
276    (values
277     (string>= (progn (setf a (incf i)) "abc")
278               (progn (setf b (incf i)) "abd")
279               :end2 (progn (setf c (incf i)) nil)
280               :end1 (progn (setf d (incf i)) nil)
281               :start2 (progn (setf e (incf i)) 0)
282               :start1 (progn (setf f (incf i)) 0)
283               )
284     i a b c d e f))
285  nil 6 1 2 3 4 5 6)
286
287(deftest string>.order.1
288  (let ((i 0) x y)
289    (values
290     (string> (progn (setf x (incf i)) "abc")
291              (progn (setf y (incf i)) "abd"))
292     i x y))
293  nil 2 1 2)
294
295(deftest string>.order.2
296  (let ((i 0) a b c d e f)
297    (values
298     (string> (progn (setf a (incf i)) "abc")
299              (progn (setf b (incf i)) "abd")
300              :start1 (progn (setf c (incf i)) 0)
301              :start2 (progn (setf d (incf i)) 0)
302              :end1 (progn (setf e (incf i)) nil)
303              :end2 (progn (setf f (incf i)) nil)
304              )
305     i a b c d e f))
306  nil 6 1 2 3 4 5 6)
307
308(deftest string>.order.3
309  (let ((i 0) a b c d e f)
310    (values
311     (string> (progn (setf a (incf i)) "abc")
312              (progn (setf b (incf i)) "abd")
313              :end2 (progn (setf c (incf i)) nil)
314              :end1 (progn (setf d (incf i)) nil)
315              :start2 (progn (setf e (incf i)) 0)
316              :start1 (progn (setf f (incf i)) 0)
317              )
318     i a b c d e f))
319  nil 6 1 2 3 4 5 6)
320
321
322(deftest string-equal.order.1
323  (let ((i 0) x y)
324    (values
325     (string-equal (progn (setf x (incf i)) "abc")
326              (progn (setf y (incf i)) "abd"))
327     i x y))
328  nil 2 1 2)
329
330(deftest string-equal.order.2
331  (let ((i 0) a b c d e f)
332    (values
333     (string-equal (progn (setf a (incf i)) "abc")
334              (progn (setf b (incf i)) "abd")
335              :start1 (progn (setf c (incf i)) 0)
336              :start2 (progn (setf d (incf i)) 0)
337              :end1 (progn (setf e (incf i)) nil)
338              :end2 (progn (setf f (incf i)) nil)
339              )
340     i a b c d e f))
341  nil 6 1 2 3 4 5 6)
342
343(deftest string-equal.order.3
344  (let ((i 0) a b c d e f)
345    (values
346     (string-equal (progn (setf a (incf i)) "abc")
347              (progn (setf b (incf i)) "abd")
348              :end2 (progn (setf c (incf i)) nil)
349              :end1 (progn (setf d (incf i)) nil)
350              :start2 (progn (setf e (incf i)) 0)
351              :start1 (progn (setf f (incf i)) 0)
352              )
353     i a b c d e f))
354  nil 6 1 2 3 4 5 6)
355
356(deftest string-not-greaterp.order.1
357  (let ((i 0) x y)
358    (values
359     (string-not-greaterp (progn (setf x (incf i)) "abf")
360                       (progn (setf y (incf i)) "abd"))
361     i x y))
362  nil 2 1 2)
363
364(deftest string-not-greaterp.order.2
365  (let ((i 0) a b c d e f)
366    (values
367     (string-not-greaterp (progn (setf a (incf i)) "abf")
368               (progn (setf b (incf i)) "abd")
369               :start1 (progn (setf c (incf i)) 0)
370               :start2 (progn (setf d (incf i)) 0)
371               :end1 (progn (setf e (incf i)) nil)
372               :end2 (progn (setf f (incf i)) nil)
373               )
374     i a b c d e f))
375  nil 6 1 2 3 4 5 6)
376
377(deftest string-not-greaterp.order.3
378  (let ((i 0) a b c d e f)
379    (values
380     (string-not-greaterp (progn (setf a (incf i)) "abf")
381               (progn (setf b (incf i)) "abd")
382               :end2 (progn (setf c (incf i)) nil)
383               :end1 (progn (setf d (incf i)) nil)
384               :start2 (progn (setf e (incf i)) 0)
385               :start1 (progn (setf f (incf i)) 0)
386               )
387     i a b c d e f))
388  nil 6 1 2 3 4 5 6)
389
390(deftest string-lessp.order.1
391  (let ((i 0) x y)
392    (values
393     (string-lessp (progn (setf x (incf i)) "abf")
394              (progn (setf y (incf i)) "abd"))
395     i x y))
396  nil 2 1 2)
397
398(deftest string-lessp.order.2
399  (let ((i 0) a b c d e f)
400    (values
401     (string-lessp (progn (setf a (incf i)) "abf")
402              (progn (setf b (incf i)) "abd")
403              :start1 (progn (setf c (incf i)) 0)
404              :start2 (progn (setf d (incf i)) 0)
405              :end1 (progn (setf e (incf i)) nil)
406              :end2 (progn (setf f (incf i)) nil)
407              )
408     i a b c d e f))
409  nil 6 1 2 3 4 5 6)
410
411(deftest string-lessp.order.3
412  (let ((i 0) a b c d e f)
413    (values
414     (string-lessp (progn (setf a (incf i)) "abf")
415              (progn (setf b (incf i)) "abd")
416              :end2 (progn (setf c (incf i)) nil)
417              :end1 (progn (setf d (incf i)) nil)
418              :start2 (progn (setf e (incf i)) 0)
419              :start1 (progn (setf f (incf i)) 0)
420              )
421     i a b c d e f))
422  nil 6 1 2 3 4 5 6)
423
424
425(deftest string-not-equal.order.1
426  (let ((i 0) x y)
427    (values
428     (string-not-equal (progn (setf x (incf i)) "abc")
429               (progn (setf y (incf i)) "abc"))
430     i x y))
431  nil 2 1 2)
432
433(deftest string-not-equal.order.2
434  (let ((i 0) a b c d e f)
435    (values
436     (string-not-equal (progn (setf a (incf i)) "abc")
437               (progn (setf b (incf i)) "abc")
438               :start1 (progn (setf c (incf i)) 0)
439               :start2 (progn (setf d (incf i)) 0)
440               :end1 (progn (setf e (incf i)) nil)
441               :end2 (progn (setf f (incf i)) nil)
442               )
443     i a b c d e f))
444  nil 6 1 2 3 4 5 6)
445
446(deftest string-not-equal.order.3
447  (let ((i 0) a b c d e f)
448    (values
449     (string-not-equal (progn (setf a (incf i)) "abc")
450               (progn (setf b (incf i)) "abc")
451               :end2 (progn (setf c (incf i)) nil)
452               :end1 (progn (setf d (incf i)) nil)
453               :start2 (progn (setf e (incf i)) 0)
454               :start1 (progn (setf f (incf i)) 0)
455               )
456     i a b c d e f))
457  nil 6 1 2 3 4 5 6)
458
459(deftest string-not-lessp.order.1
460  (let ((i 0) x y)
461    (values
462     (string-not-lessp (progn (setf x (incf i)) "abc")
463                       (progn (setf y (incf i)) "abd"))
464     i x y))
465  nil 2 1 2)
466
467(deftest string-not-lessp.order.2
468  (let ((i 0) a b c d e f)
469    (values
470     (string-not-lessp (progn (setf a (incf i)) "abc")
471               (progn (setf b (incf i)) "abd")
472               :start1 (progn (setf c (incf i)) 0)
473               :start2 (progn (setf d (incf i)) 0)
474               :end1 (progn (setf e (incf i)) nil)
475               :end2 (progn (setf f (incf i)) nil)
476               )
477     i a b c d e f))
478  nil 6 1 2 3 4 5 6)
479
480(deftest string-not-lessp.order.3
481  (let ((i 0) a b c d e f)
482    (values
483     (string-not-lessp (progn (setf a (incf i)) "abc")
484               (progn (setf b (incf i)) "abd")
485               :end2 (progn (setf c (incf i)) nil)
486               :end1 (progn (setf d (incf i)) nil)
487               :start2 (progn (setf e (incf i)) 0)
488               :start1 (progn (setf f (incf i)) 0)
489               )
490     i a b c d e f))
491  nil 6 1 2 3 4 5 6)
492
493(deftest string-greaterp.order.1
494  (let ((i 0) x y)
495    (values
496     (string-greaterp (progn (setf x (incf i)) "abc")
497              (progn (setf y (incf i)) "abd"))
498     i x y))
499  nil 2 1 2)
500
501(deftest string-greaterp.order.2
502  (let ((i 0) a b c d e f)
503    (values
504     (string-greaterp (progn (setf a (incf i)) "abc")
505              (progn (setf b (incf i)) "abd")
506              :start1 (progn (setf c (incf i)) 0)
507              :start2 (progn (setf d (incf i)) 0)
508              :end1 (progn (setf e (incf i)) nil)
509              :end2 (progn (setf f (incf i)) nil)
510              )
511     i a b c d e f))
512  nil 6 1 2 3 4 5 6)
513
514(deftest string-greaterp.order.3
515  (let ((i 0) a b c d e f)
516    (values
517     (string-greaterp (progn (setf a (incf i)) "abc")
518              (progn (setf b (incf i)) "abd")
519              :end2 (progn (setf c (incf i)) nil)
520              :end1 (progn (setf d (incf i)) nil)
521              :start2 (progn (setf e (incf i)) 0)
522              :start1 (progn (setf f (incf i)) 0)
523              )
524     i a b c d e f))
525  nil 6 1 2 3 4 5 6)
526
527
528;;; Random tests (of all the string comparson functions)
529
530(deftest random-string-comparison-tests
531  (loop for cmp in '(= /= < > <= >=)
532        append
533        (loop for case in '(nil t)
534              collect
535              (list cmp case
536                    (random-string-compare-test 10 cmp case 1000))))
537  ((= nil 0) (= t 0) (/= nil 0) (/= t 0) (< nil 0) (< t 0)
538   (> nil 0) (> t 0) (<= nil 0) (<= t 0) (>= nil 0) (>= t 0)))
539
540;;; Tests on nil arrays
541
542(deftest string=.nil-array.1
543  :notes (:nil-vectors-are-strings)
544  (let ((s1 (make-array '(0) :element-type nil)))
545    (values
546     (notnot (string= s1 s1))
547     (notnot (string= s1 (make-array '(0) :element-type nil)))
548     (notnot (string= s1 (make-array '(0) :element-type 'base-char)))
549     (notnot (string= s1 ""))
550     (notnot (string= "" s1))
551     (string= s1 "a")
552     (string= "a" s1)))
553  t t t t t nil nil)
554
555(deftest string/=.nil-array.1
556  :notes (:nil-vectors-are-strings)
557  (let ((s1 (make-array '(0) :element-type nil)))
558    (values
559     (string/= s1 s1)
560     (string/= s1 (make-array '(0) :element-type nil))
561     (string/= s1 (make-array '(0) :element-type 'base-char))
562     (string/= s1 "")
563     (string/= "" s1)
564     (string/= s1 "a")
565     (string/= "a" s1)))
566   nil nil nil nil nil 0 0)
567
568(deftest string<.nil-array.1
569  :notes (:nil-vectors-are-strings)
570  (let ((s1 (make-array '(0) :element-type nil)))
571    (values
572     (string< s1 s1)
573     (string< s1 (make-array '(0) :element-type nil))
574     (string< s1 (make-array '(0) :element-type 'base-char))
575     (string< s1 "")
576     (string< "" s1)
577     (string< s1 "a")
578     (string< "a" s1)))
579  nil nil nil nil nil 0 nil)
580
581(deftest string<=.nil-array.1
582  :notes (:nil-vectors-are-strings)
583  (let ((s1 (make-array '(0) :element-type nil)))
584    (values
585     (string<= s1 s1)
586     (string<= s1 (make-array '(0) :element-type nil))
587     (string<= s1 (make-array '(0) :element-type 'base-char))
588     (string<= s1 "")
589     (string<= "" s1)
590     (string<= s1 "a")
591     (string<= "a" s1)))
592  0 0 0 0 0 0 nil)
593
594(deftest string>.nil-array.1
595  :notes (:nil-vectors-are-strings)
596  (let ((s1 (make-array '(0) :element-type nil)))
597    (values
598     (string> s1 s1)
599     (string> s1 (make-array '(0) :element-type nil))
600     (string> s1 (make-array '(0) :element-type 'base-char))
601     (string> s1 "")
602     (string> "" s1)
603     (string> s1 "a")
604     (string> "a" s1)))
605  nil nil nil nil nil nil 0)
606
607(deftest string>=.nil-array.1
608  :notes (:nil-vectors-are-strings)
609  (let ((s1 (make-array '(0) :element-type nil)))
610    (values
611     (string>= s1 s1)
612     (string>= s1 (make-array '(0) :element-type nil))
613     (string>= s1 (make-array '(0) :element-type 'base-char))
614     (string>= s1 "")
615     (string>= "" s1)
616     (string>= s1 "a")
617     (string>= "a" s1)))
618  0 0 0 0 0 nil 0)
619
620(deftest string-equal.nil-array.1
621  :notes (:nil-vectors-are-strings)
622  (let ((s1 (make-array '(0) :element-type nil)))
623    (values
624     (notnot (string-equal s1 s1))
625     (notnot (string-equal s1 (make-array '(0) :element-type nil)))
626     (notnot (string-equal s1 (make-array '(0) :element-type 'base-char)))
627     (notnot (string-equal s1 ""))
628     (notnot (string-equal "" s1))
629     (string-equal s1 "a")
630     (string-equal "a" s1)))
631  t t t t t nil nil)
632
633(deftest string-not-equal.nil-array.1
634  :notes (:nil-vectors-are-strings)
635  (let ((s1 (make-array '(0) :element-type nil)))
636    (values
637     (string-not-equal s1 s1)
638     (string-not-equal s1 (make-array '(0) :element-type nil))
639     (string-not-equal s1 (make-array '(0) :element-type 'base-char))
640     (string-not-equal s1 "")
641     (string-not-equal "" s1)
642     (string-not-equal s1 "a")
643     (string-not-equal "a" s1)))
644   nil nil nil nil nil 0 0)
645
646(deftest string-lessp.nil-array.1
647  :notes (:nil-vectors-are-strings)
648  (let ((s1 (make-array '(0) :element-type nil)))
649    (values
650     (string-lessp s1 s1)
651     (string-lessp s1 (make-array '(0) :element-type nil))
652     (string-lessp s1 (make-array '(0) :element-type 'base-char))
653     (string-lessp s1 "")
654     (string-lessp "" s1)
655     (string-lessp s1 "a")
656     (string-lessp "a" s1)))
657  nil nil nil nil nil 0 nil)
658
659(deftest string-not-greaterp.nil-array.1
660  :notes (:nil-vectors-are-strings)
661  (let ((s1 (make-array '(0) :element-type nil)))
662    (values
663     (string-not-greaterp s1 s1)
664     (string-not-greaterp s1 (make-array '(0) :element-type nil))
665     (string-not-greaterp s1 (make-array '(0) :element-type 'base-char))
666     (string-not-greaterp s1 "")
667     (string-not-greaterp "" s1)
668     (string-not-greaterp s1 "a")
669     (string-not-greaterp "a" s1)))
670  0 0 0 0 0 0 nil)
671
672(deftest string-greaterp.nil-array.1
673  :notes (:nil-vectors-are-strings)
674  (let ((s1 (make-array '(0) :element-type nil)))
675    (values
676     (string-greaterp s1 s1)
677     (string-greaterp s1 (make-array '(0) :element-type nil))
678     (string-greaterp s1 (make-array '(0) :element-type 'base-char))
679     (string-greaterp s1 "")
680     (string-greaterp "" s1)
681     (string-greaterp s1 "a")
682     (string-greaterp "a" s1)))
683  nil nil nil nil nil nil 0)
684
685(deftest string-not-lessp.nil-array.1
686  :notes (:nil-vectors-are-strings)
687  (let ((s1 (make-array '(0) :element-type nil)))
688    (values
689     (string-not-lessp s1 s1)
690     (string-not-lessp s1 (make-array '(0) :element-type nil))
691     (string-not-lessp s1 (make-array '(0) :element-type 'base-char))
692     (string-not-lessp s1 "")
693     (string-not-lessp "" s1)
694     (string-not-lessp s1 "a")
695     (string-not-lessp "a" s1)))
696  0 0 0 0 0 nil 0)
697
698;;; Error cases
699
700(deftest string=.error.1
701  (signals-error (string=) program-error)
702  t)
703
704(deftest string=.error.2
705  (signals-error (string= "") program-error)
706  t)
707
708(deftest string=.error.3
709  (signals-error (string= "a" "b" nil nil) program-error)
710  t)
711
712(deftest string=.error.4
713  (signals-error (string= "a" "b" :start1) program-error)
714  t)
715
716(deftest string=.error.5
717  (signals-error (string= "a" "b" 1 nil) program-error)
718  t)
719
720(deftest string=.error.6
721  (signals-error (string= "a" "b" :allow-other-keys nil
722                          :allow-other-keys t :foo 'bar)
723                 program-error)
724  t)
725
726(deftest string/=.error.1
727  (signals-error (string/=) program-error)
728  t)
729
730(deftest string/=.error.2
731  (signals-error (string/= "") program-error)
732  t)
733
734(deftest string/=.error.3
735  (signals-error (string/= "a" "b" nil nil) program-error)
736  t)
737
738(deftest string/=.error.4
739  (signals-error (string/= "a" "b" :start1) program-error)
740  t)
741
742(deftest string/=.error.5
743  (signals-error (string/= "a" "b" 1 nil) program-error)
744  t)
745
746(deftest string/=.error.6
747  (signals-error (string/= "a" "b" :allow-other-keys nil
748                          :allow-other-keys t :foo 'bar)
749                 program-error)
750  t)
751
752
753(deftest string<.error.1
754  (signals-error (string<) program-error)
755  t)
756
757(deftest string<.error.2
758  (signals-error (string< "") program-error)
759  t)
760
761(deftest string<.error.3
762  (signals-error (string< "a" "b" nil nil) program-error)
763  t)
764
765(deftest string<.error.4
766  (signals-error (string< "a" "b" :start1) program-error)
767  t)
768
769(deftest string<.error.5
770  (signals-error (string< "a" "b" 1 nil) program-error)
771  t)
772
773(deftest string<.error.6
774  (signals-error (string< "a" "b" :allow-other-keys nil
775                          :allow-other-keys t :foo 'bar)
776                 program-error)
777  t)
778
779
780(deftest string<=.error.1
781  (signals-error (string<=) program-error)
782  t)
783
784(deftest string<=.error.2
785  (signals-error (string<= "") program-error)
786  t)
787
788(deftest string<=.error.3
789  (signals-error (string<= "a" "b" nil nil) program-error)
790  t)
791
792(deftest string<=.error.4
793  (signals-error (string<= "a" "b" :start1) program-error)
794  t)
795
796(deftest string<=.error.5
797  (signals-error (string<= "a" "b" 1 nil) program-error)
798  t)
799
800(deftest string<=.error.6
801  (signals-error (string<= "a" "b" :allow-other-keys nil
802                          :allow-other-keys t :foo 'bar)
803                 program-error)
804  t)
805
806
807(deftest string>.error.1
808  (signals-error (string>) program-error)
809  t)
810
811(deftest string>.error.2
812  (signals-error (string> "") program-error)
813  t)
814
815(deftest string>.error.3
816  (signals-error (string> "a" "b" nil nil) program-error)
817  t)
818
819(deftest string>.error.4
820  (signals-error (string> "a" "b" :start1) program-error)
821  t)
822
823(deftest string>.error.5
824  (signals-error (string> "a" "b" 1 nil) program-error)
825  t)
826
827(deftest string>.error.6
828  (signals-error (string> "a" "b" :allow-other-keys nil
829                          :allow-other-keys t :foo 'bar)
830                 program-error)
831  t)
832
833
834(deftest string>=.error.1
835  (signals-error (string>=) program-error)
836  t)
837
838(deftest string>=.error.2
839  (signals-error (string>= "") program-error)
840  t)
841
842(deftest string>=.error.3
843  (signals-error (string>= "a" "b" nil nil) program-error)
844  t)
845
846(deftest string>=.error.4
847  (signals-error (string>= "a" "b" :start1) program-error)
848  t)
849
850(deftest string>=.error.5
851  (signals-error (string>= "a" "b" 1 nil) program-error)
852  t)
853
854(deftest string>=.error.6
855  (signals-error (string>= "a" "b" :allow-other-keys nil
856                          :allow-other-keys t :foo 'bar)
857                 program-error)
858  t)
859
860
861(deftest string-equal.error.1
862  (signals-error (string-equal) program-error)
863  t)
864
865(deftest string-equal.error.2
866  (signals-error (string-equal "") program-error)
867  t)
868
869(deftest string-equal.error.3
870  (signals-error (string-equal "a" "b" nil nil) program-error)
871  t)
872
873(deftest string-equal.error.4
874  (signals-error (string-equal "a" "b" :start1) program-error)
875  t)
876
877(deftest string-equal.error.5
878  (signals-error (string-equal "a" "b" 1 nil) program-error)
879  t)
880
881(deftest string-equal.error.6
882  (signals-error (string-equal "a" "b" :allow-other-keys nil
883                          :allow-other-keys t :foo 'bar)
884                 program-error)
885  t)
886
887(deftest string-not-equal.error.1
888  (signals-error (string-not-equal) program-error)
889  t)
890
891(deftest string-not-equal.error.2
892  (signals-error (string-not-equal "") program-error)
893  t)
894
895(deftest string-not-equal.error.3
896  (signals-error (string-not-equal "a" "b" nil nil) program-error)
897  t)
898
899(deftest string-not-equal.error.4
900  (signals-error (string-not-equal "a" "b" :start1) program-error)
901  t)
902
903(deftest string-not-equal.error.5
904  (signals-error (string-not-equal "a" "b" 1 nil) program-error)
905  t)
906
907(deftest string-not-equal.error.6
908  (signals-error (string-not-equal "a" "b" :allow-other-keys nil
909                          :allow-other-keys t :foo 'bar)
910                 program-error)
911  t)
912
913(deftest string-lessp.error.1
914  (signals-error (string-lessp) program-error)
915  t)
916
917(deftest string-lessp.error.2
918  (signals-error (string-lessp "") program-error)
919  t)
920
921(deftest string-lessp.error.3
922  (signals-error (string-lessp "a" "b" nil nil) program-error)
923  t)
924
925(deftest string-lessp.error.4
926  (signals-error (string-lessp "a" "b" :start1) program-error)
927  t)
928
929(deftest string-lessp.error.5
930  (signals-error (string-lessp "a" "b" 1 nil) program-error)
931  t)
932
933(deftest string-lessp.error.6
934  (signals-error (string-lessp "a" "b" :allow-other-keys nil
935                          :allow-other-keys t :foo 'bar)
936                 program-error)
937  t)
938
939(deftest string-greaterp.error.1
940  (signals-error (string-greaterp) program-error)
941  t)
942
943(deftest string-greaterp.error.2
944  (signals-error (string-greaterp "") program-error)
945  t)
946
947(deftest string-greaterp.error.3
948  (signals-error (string-greaterp "a" "b" nil nil) program-error)
949  t)
950
951(deftest string-greaterp.error.4
952  (signals-error (string-greaterp "a" "b" :start1) program-error)
953  t)
954
955(deftest string-greaterp.error.5
956  (signals-error (string-greaterp "a" "b" 1 nil) program-error)
957  t)
958
959(deftest string-greaterp.error.6
960  (signals-error (string-greaterp "a" "b" :allow-other-keys nil
961                          :allow-other-keys t :foo 'bar)
962                 program-error)
963  t)
964
965(deftest string-not-lessp.error.1
966  (signals-error (string-not-lessp) program-error)
967  t)
968
969(deftest string-not-lessp.error.2
970  (signals-error (string-not-lessp "") program-error)
971  t)
972
973(deftest string-not-lessp.error.3
974  (signals-error (string-not-lessp "a" "b" nil nil) program-error)
975  t)
976
977(deftest string-not-lessp.error.4
978  (signals-error (string-not-lessp "a" "b" :start1) program-error)
979  t)
980
981(deftest string-not-lessp.error.5
982  (signals-error (string-not-lessp "a" "b" 1 nil) program-error)
983  t)
984
985(deftest string-not-lessp.error.6
986  (signals-error (string-not-lessp "a" "b" :allow-other-keys nil
987                          :allow-other-keys t :foo 'bar)
988                 program-error)
989  t)
990
991(deftest string-not-greaterp.error.1
992  (signals-error (string-not-greaterp) program-error)
993  t)
994
995(deftest string-not-greaterp.error.2
996  (signals-error (string-not-greaterp "") program-error)
997  t)
998
999(deftest string-not-greaterp.error.3
1000  (signals-error (string-not-greaterp "a" "b" nil nil) program-error)
1001  t)
1002
1003(deftest string-not-greaterp.error.4
1004  (signals-error (string-not-greaterp "a" "b" :start1) program-error)
1005  t)
1006
1007(deftest string-not-greaterp.error.5
1008  (signals-error (string-not-greaterp "a" "b" 1 nil) program-error)
1009  t)
1010
1011(deftest string-not-greaterp.error.6
1012  (signals-error (string-not-greaterp "a" "b" :allow-other-keys nil
1013                          :allow-other-keys t :foo 'bar)
1014                 program-error)
1015  t)
Note: See TracBrowser for help on using the repository browser.