1
#! /usr/bin/env sscm -C UTF-8
2
;; -*- buffer-file-coding-system: utf-8 -*-
4
;; Filename : test-eqv.scm
5
;; About : unit tests for eqv?
7
;; Copyright (C) 2006 YAMAMOTO Kengo <yamaken AT bp.iij4u.or.jp>
8
;; Copyright (c) 2007-2008 SigScheme Project <uim-en AT googlegroups.com>
10
;; All rights reserved.
12
;; Redistribution and use in source and binary forms, with or without
13
;; modification, are permitted provided that the following conditions
16
;; 1. Redistributions of source code must retain the above copyright
17
;; notice, this list of conditions and the following disclaimer.
18
;; 2. Redistributions in binary form must reproduce the above copyright
19
;; notice, this list of conditions and the following disclaimer in the
20
;; documentation and/or other materials provided with the distribution.
21
;; 3. Neither the name of authors nor the names of its contributors
22
;; may be used to endorse or promote products derived from this software
23
;; without specific prior written permission.
25
;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
26
;; IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
27
;; THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28
;; PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
29
;; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30
;; EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31
;; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32
;; PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33
;; LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34
;; NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35
;; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37
(require-extension (unittest))
40
(define case-insensitive-symbol? #f)
42
(tn "eqv? invalid form")
43
(assert-error (tn) (lambda () (eqv?)))
44
(assert-error (tn) (lambda () (eqv? #f)))
45
(assert-error (tn) (lambda () (eqv? #f #f #f)))
47
(tn "eqv? different types")
48
(assert-eq? (tn) #f (eqv? 1 #\1))
49
(assert-eq? (tn) #f (eqv? #\1 "1"))
50
(assert-eq? (tn) #f (eqv? #\1 '("1")))
51
(assert-eq? (tn) #f (eqv? '#("1") '("1")))
54
(assert-eq? (tn) #t (eqv? #f #f))
55
(assert-eq? (tn) #f (eqv? #f #t))
56
(assert-eq? (tn) #f (eqv? #t #f))
57
(assert-eq? (tn) #t (eqv? #t #t))
60
(assert-eq? (tn) #t (eqv? '() '()))
61
(if (and (provided? "sigscheme")
62
(provided? "siod-bugs"))
64
(assert-eq? (tn) #t (eqv? #f '()))
65
(assert-eq? (tn) #t (eqv? '() #f)))
67
(assert-eq? (tn) #f (eqv? #f '()))
68
(assert-eq? (tn) #f (eqv? '() #f))))
69
(if (symbol-bound? 'vector?)
71
(assert-eq? (tn) #f (eqv? '() '#()))
72
(assert-eq? (tn) #f (eqv? '#() '()))))
75
(if (provided? "sigscheme")
77
(assert-eq? (tn) #t (eqv? (eof) (eof)))
78
(assert-eq? (tn) #f (eqv? (eof) (undef)))
79
(assert-eq? (tn) #f (eqv? (undef) (eof)))
80
(assert-eq? (tn) #f (eqv? '() (eof)))
81
(assert-eq? (tn) #f (eqv? (eof) '()))
82
(assert-eq? (tn) #f (eqv? #f (eof)))
83
(assert-eq? (tn) #f (eqv? (eof) #f))))
86
(if (provided? "sigscheme")
88
(assert-eq? (tn) #t (eqv? (undef) (undef)))
89
(assert-eq? (tn) #f (eqv? (eof) (undef)))
90
(assert-eq? (tn) #f (eqv? (undef) (eof)))
91
(assert-eq? (tn) #f (eqv? '() (undef)))
92
(assert-eq? (tn) #f (eqv? (undef) '()))
93
(assert-eq? (tn) #f (eqv? #f (undef)))
94
(assert-eq? (tn) #f (eqv? (undef) #f))))
97
(assert-eq? (tn) #t (eqv? 0 0))
98
(assert-eq? (tn) #t (eqv? 1 1))
99
(assert-eq? (tn) #t (eqv? 3 3))
100
(assert-eq? (tn) #t (eqv? -1 -1))
101
(assert-eq? (tn) #t (eqv? -3 -3))
103
(assert-eq? (tn) #f (eqv? 0 1))
104
(assert-eq? (tn) #f (eqv? 1 0))
105
(assert-eq? (tn) #f (eqv? 1 3))
106
(assert-eq? (tn) #f (eqv? 3 1))
107
(assert-eq? (tn) #f (eqv? -1 1))
108
(assert-eq? (tn) #f (eqv? 1 -1))
109
(assert-eq? (tn) #f (eqv? -3 3))
110
(assert-eq? (tn) #f (eqv? 3 -3))
111
(assert-eq? (tn) #f (eqv? -1 -3))
112
(assert-eq? (tn) #f (eqv? -3 -1))
115
(assert-eq? (tn) #t (eqv? 'symbol 'symbol))
116
(assert-eq? (tn) #f (eqv? 'symbol1 'symbol2))
117
(if (and (provided? "sigscheme")
118
(provided? "strict-r5rs")
119
case-insensitive-symbol?)
121
(assert-eq? (tn) #t (eqv? 'symbol 'SYMBOL))
122
(assert-eq? (tn) #t (eqv? 'SYMBOL 'symbol))
123
(assert-eq? (tn) #t (eqv? 'symbol 'Symbol))
124
(assert-eq? (tn) #t (eqv? 'Symbol 'symbol))
125
(assert-eq? (tn) #t (eqv? 'symbol 'syMBoL))
126
(assert-eq? (tn) #t (eqv? 'syMBoL 'symbol)))
128
(assert-eq? (tn) #f (eqv? 'symbol 'SYMBOL))
129
(assert-eq? (tn) #f (eqv? 'SYMBOL 'symbol))
130
(assert-eq? (tn) #f (eqv? 'symbol 'Symbol))
131
(assert-eq? (tn) #f (eqv? 'Symbol 'symbol))
132
(assert-eq? (tn) #f (eqv? 'symbol 'syMBoL))
133
(assert-eq? (tn) #f (eqv? 'syMBoL 'symbol))))
135
(tn "eqv? singlebyte char")
136
(assert-eq? (tn) #t (eqv? #\a #\a))
137
(assert-eq? (tn) #f (eqv? #\a #\b))
138
(assert-eq? (tn) #f (eqv? #\b #\a))
139
(assert-eq? (tn) #t (eqv? #\b #\b))
143
(assert-eq? (tn) #t (eqv? c1 c1))
144
(assert-eq? (tn) #t (eqv? c2 c2)))
146
(tn "eqv? multibyte char")
147
(assert-eq? (tn) #t (eqv? #\あ #\あ))
148
(assert-eq? (tn) #f (eqv? #\あ #\い))
149
(assert-eq? (tn) #f (eqv? #\い #\あ))
150
(assert-eq? (tn) #t (eqv? #\い #\い))
154
(assert-eq? (tn) #t (eqv? c1 c1))
155
(assert-eq? (tn) #t (eqv? c2 c2)))
157
(tn "eqv? singlebyte string")
158
(if (provided? "sigscheme")
160
(assert-eq? (tn) #f (eqv? "" ""))
161
(assert-eq? (tn) #f (eqv? "a" "a"))
162
(assert-eq? (tn) #f (eqv? "b" "b"))
163
(assert-eq? (tn) #f (eqv? "aBc12!" "aBc12!"))))
168
(assert-eq? (tn) #t (eqv? s1 s1))
169
(assert-eq? (tn) #t (eqv? s2 s2))
170
(assert-eq? (tn) #t (eqv? s3 s3))
171
(assert-eq? (tn) #t (eqv? s4 s4)))
172
(assert-eq? (tn) #f (eqv? "" "a"))
173
(assert-eq? (tn) #f (eqv? "a" ""))
174
(assert-eq? (tn) #f (eqv? "a" "b"))
175
(assert-eq? (tn) #f (eqv? "b" "a"))
176
(assert-eq? (tn) #f (eqv? "a" "A"))
177
(assert-eq? (tn) #f (eqv? "A" "a"))
178
(assert-eq? (tn) #f (eqv? "aBc123!" "aBc12!"))
179
(assert-eq? (tn) #f (eqv? "aBc12!" "aBc123!"))
181
(tn "eqv? multibyte string")
182
(if (provided? "sigscheme")
184
(assert-eq? (tn) #f (eqv? "あ" "あ"))
185
(assert-eq? (tn) #f (eqv? "い" "い"))
186
(assert-eq? (tn) #f (eqv? "あ0イう12!" "あ0イう12!"))))
190
(assert-eq? (tn) #t (eqv? s1 s1))
191
(assert-eq? (tn) #t (eqv? s2 s2))
192
(assert-eq? (tn) #t (eqv? s3 s3)))
193
(assert-eq? (tn) #f (eqv? "" "あ"))
194
(assert-eq? (tn) #f (eqv? "あ" ""))
195
(assert-eq? (tn) #f (eqv? "あ" "い"))
196
(assert-eq? (tn) #f (eqv? "い" "あ"))
197
(assert-eq? (tn) #f (eqv? "あ" "ア"))
198
(assert-eq? (tn) #f (eqv? "ア" "あ"))
199
(assert-eq? (tn) #f (eqv? "あ0イうぇ12!" "あ0イう12!"))
200
(assert-eq? (tn) #f (eqv? "あ0イう12!" "あ0イうぇ12!"))
202
(tn "eqv? procedure")
203
(assert-eq? (tn) #t (eqv? + +))
204
(assert-eq? (tn) #f (eqv? + -))
205
(assert-eq? (tn) #f (eqv? - +))
206
(assert-eq? (tn) #t (eqv? - -))
208
(assert-eq? (tn) #t (eqv? + plus))
209
(assert-eq? (tn) #t (eqv? plus +))
210
(assert-eq? (tn) #t (eqv? plus plus)))
213
(assert-error (tn) (lambda () (eqv? if if)))
214
(assert-error (tn) (lambda () (eqv? if set!)))
215
(assert-error (tn) (lambda () (eqv? set! if)))
216
(assert-error (tn) (lambda () (eqv? set! set!)))
217
;; (define syntax if) is an invalid form
220
(if (symbol-bound? 'let-syntax)
221
(let-syntax ((macro1 (syntax-rules ()
222
((_) 'macro1-expanded)))
223
(macro2 (syntax-rules ()
224
((_) 'macro2-expanded))))
225
;; syntactic keyword as value
226
(assert-error (tn) (lambda () (eqv? macro1 macro1)))
227
(assert-error (tn) (lambda () (eqv? macro2 macro1)))
228
(assert-error (tn) (lambda () (eqv? macro1 macro2)))
229
(assert-error (tn) (lambda () (eqv? macro2 macro2)))))
232
(let ((closure (lambda () #t)))
233
(assert-eq? (tn) #t (eqv? closure closure))
234
(if (provided? "sigscheme")
236
(assert-eq? (tn) #f (eqv? closure (lambda () #t)))
237
(assert-eq? (tn) #f (eqv? (lambda () #t) closure))
238
(assert-eq? (tn) #f (eqv? (lambda () #t) (lambda () #t))))))
240
(tn "eqv? stateful closure")
241
(let ((stateful (lambda ()
244
(set! state (+ state 1))
246
(assert-eq? (tn) #t (eqv? stateful stateful))
247
(assert-eq? (tn) #f (eqv? (stateful) (stateful))))
249
(let ((may-be-optimized-out (lambda ()
252
(set! state (+ state 1))
254
(assert-eq? (tn) #t (eqv? may-be-optimized-out may-be-optimized-out))
255
(if (provided? "sigscheme")
256
(assert-eq? (tn) #f (eqv? (may-be-optimized-out) (may-be-optimized-out)))))
258
(letrec ((may-be-unified1 (lambda ()
259
(if (eqv? may-be-unified1
263
(may-be-unified2 (lambda ()
264
(if (eqv? may-be-unified1
268
(if (provided? "sigscheme")
270
(assert-eq? (tn) #f (eqv? may-be-unified1 may-be-unified2))
271
(assert-eq? (tn) #f (eqv? (may-be-unified1) (may-be-unified2))))
273
;; other implementations may pass this
274
;;(assert-eq? (tn) #t (eqv? may-be-unified1 may-be-unified2))
275
;;(assert-eq? (tn) #t (eqv? (may-be-unified1) (may-be-unified2)))
278
(tn "eqv? continuation")
279
(call-with-current-continuation
281
(call-with-current-continuation
283
(assert-eq? (tn) #t (eqv? k1 k1))
284
(assert-eq? (tn) #f (eqv? k1 k2))
285
(assert-eq? (tn) #f (eqv? k2 k1))
286
(assert-eq? (tn) #t (eqv? k2 k2))
288
(assert-eq? (tn) #t (eqv? cont cont))
289
(assert-eq? (tn) #t (eqv? cont k1))
290
(assert-eq? (tn) #t (eqv? k1 cont))
291
(assert-eq? (tn) #f (eqv? cont k2))
292
(assert-eq? (tn) #f (eqv? k2 cont)))))))
295
(assert-eq? (tn) #t (eqv? (current-output-port) (current-output-port)))
296
(assert-eq? (tn) #f (eqv? (current-input-port) (current-output-port)))
297
(assert-eq? (tn) #f (eqv? (current-output-port) (current-input-port)))
298
(assert-eq? (tn) #t (eqv? (current-input-port) (current-input-port)))
299
(let ((port (current-input-port)))
300
(assert-eq? (tn) #t (eqv? port port))
301
(assert-eq? (tn) #t (eqv? (current-input-port) port))
302
(assert-eq? (tn) #t (eqv? port (current-input-port)))
303
(assert-eq? (tn) #f (eqv? (current-output-port) port))
304
(assert-eq? (tn) #f (eqv? port (current-output-port))))
307
(if (provided? "sigscheme")
309
(assert-eq? (tn) #f (eqv? '(#t . #t) '(#t . #t)))
310
(assert-eq? (tn) #f (eqv? '(#f . #t) '(#f . #t)))
311
(assert-eq? (tn) #f (eqv? '(#t . #f) '(#t . #f)))
312
(assert-eq? (tn) #f (eqv? '(#f . #t) '(#t . #f)))
313
(assert-eq? (tn) #f (eqv? '(#\a . #\a) '(#\a . #\a)))
314
(assert-eq? (tn) #f (eqv? '(#\a . #\b) '(#\a . #\b)))
315
(assert-eq? (tn) #f (eqv? '(#\b . #\a) '(#\b . #\a)))
316
(assert-eq? (tn) #f (eqv? '(#\a . #\b) '(#\b . #\a)))
317
(assert-eq? (tn) #f (eqv? '("a" . "a") '("a" . "a")))
318
(assert-eq? (tn) #f (eqv? '("a" . "b") '("a" . "b")))
319
(assert-eq? (tn) #f (eqv? '("b" . "a") '("b" . "a")))
320
(assert-eq? (tn) #f (eqv? '("a" . "b") '("b" . "a")))))
322
(assert-eq? (tn) #f (eqv? (cons #t #t) (cons #t #t)))
323
(assert-eq? (tn) #f (eqv? (cons #f #t) (cons #f #t)))
324
(assert-eq? (tn) #f (eqv? (cons #t #f) (cons #t #f)))
325
(assert-eq? (tn) #f (eqv? (cons #f #t) (cons #t #f)))
326
(assert-eq? (tn) #f (eqv? (cons #\a #\a) (cons #\a #\a)))
327
(assert-eq? (tn) #f (eqv? (cons #\a #\b) (cons #\a #\b)))
328
(assert-eq? (tn) #f (eqv? (cons #\b #\a) (cons #\b #\a)))
329
(assert-eq? (tn) #f (eqv? (cons #\a #\b) (cons #\b #\a)))
330
(assert-eq? (tn) #f (eqv? (cons "a" "a") (cons "a" "a")))
331
(assert-eq? (tn) #f (eqv? (cons "a" "b") (cons "a" "b")))
332
(assert-eq? (tn) #f (eqv? (cons "b" "a") (cons "b" "a")))
333
(assert-eq? (tn) #f (eqv? (cons "a" "b") (cons "b" "a")))
336
(if (provided? "sigscheme")
338
(assert-eq? (tn) #f (eqv? '(#f) '(#f)))
339
(assert-eq? (tn) #f (eqv? '(#f) '(#t)))
340
(assert-eq? (tn) #f (eqv? '(#t) '(#f)))
341
(assert-eq? (tn) #f (eqv? '(#t) '(#t)))
342
(assert-eq? (tn) #f (eqv? '((#f)) '((#f))))
343
(assert-eq? (tn) #f (eqv? '((#f)) '((#t))))
344
(assert-eq? (tn) #f (eqv? '((#t)) '((#f))))
345
(assert-eq? (tn) #f (eqv? '((#t)) '((#t))))
346
(assert-eq? (tn) #f (eqv? '(1) '(1)))
347
(assert-eq? (tn) #f (eqv? '(1) '(0)))
348
(assert-eq? (tn) #f (eqv? '(1 3 5 0 13)
350
(assert-eq? (tn) #f (eqv? '(1 3 2 0 13)
352
(assert-eq? (tn) #f (eqv? '(1 3 (5 0 13))
354
(assert-eq? (tn) #f (eqv? '(1 3 (2 0 13))
356
(assert-eq? (tn) #f (eqv? '((1)) '((1))))
357
(assert-eq? (tn) #f (eqv? '((1)) '((0))))
358
(assert-eq? (tn) #f (eqv? '((1) (3) (5) (0) (13))
359
'((1) (3) (5) (0) (13))))
360
(assert-eq? (tn) #f (eqv? '((1) (3) (2) (0) (13))
361
'((1) (3) (5) (0) (13))))
362
(assert-eq? (tn) #f (eqv? '(#\a) '(#\a)))
363
(assert-eq? (tn) #f (eqv? '(#\a) '(#\b)))
364
(assert-eq? (tn) #f (eqv? '(#\b) '(#\a)))
365
(assert-eq? (tn) #f (eqv? '((#\a)) '((#\a))))
366
(assert-eq? (tn) #f (eqv? '((#\a)) '((#\b))))
367
(assert-eq? (tn) #f (eqv? '((#\b)) '((#\a))))))
369
(assert-eq? (tn) #f (eqv? (list #f) (list #f)))
370
(assert-eq? (tn) #f (eqv? (list #f) (list #t)))
371
(assert-eq? (tn) #f (eqv? (list #t) (list #f)))
372
(assert-eq? (tn) #f (eqv? (list #t) (list #t)))
373
(assert-eq? (tn) #f (eqv? (list (list #f)) (list (list #f))))
374
(assert-eq? (tn) #f (eqv? (list (list #f)) (list (list #t))))
375
(assert-eq? (tn) #f (eqv? (list (list #t)) (list (list #f))))
376
(assert-eq? (tn) #f (eqv? (list (list #t)) (list (list #t))))
377
(assert-eq? (tn) #f (eqv? (list 1) (list 1)))
378
(assert-eq? (tn) #f (eqv? (list 1) (list 0)))
379
(assert-eq? (tn) #f (eqv? (list 1 3 5 0 13)
381
(assert-eq? (tn) #f (eqv? (list 1 3 2 0 13)
383
(assert-eq? (tn) #f (eqv? (list 1 3 (list 5 0 13))
384
(list 1 3 (list 5 0 13))))
385
(assert-eq? (tn) #f (eqv? (list 1 3 (list 2 0 13))
386
(list 1 3 (list 5 0 13))))
387
(assert-eq? (tn) #f (eqv? (list (list 1)) (list (list 1))))
388
(assert-eq? (tn) #f (eqv? (list (list 1)) (list (list 0))))
389
(assert-eq? (tn) #f (eqv? (list (list 1) (list 3) (list 5) (list 0) (list 13))
390
(list (list 1) (list 3) (list 5) (list 0) (list 13))))
391
(assert-eq? (tn) #f (eqv? (list (list 1) (list 3) (list 2) (list 0) (list 13))
392
(list (list 1) (list 3) (list 5) (list 0) (list 13))))
393
(assert-eq? (tn) #f (eqv? (list #\a) (list #\a)))
394
(assert-eq? (tn) #f (eqv? (list #\a) (list #\b)))
395
(assert-eq? (tn) #f (eqv? (list #\b) (list #\a)))
396
(assert-eq? (tn) #f (eqv? (list (list #\a)) (list (list #\a))))
397
(assert-eq? (tn) #f (eqv? (list (list #\a)) (list (list #\b))))
398
(assert-eq? (tn) #f (eqv? (list (list #\b)) (list (list #\a))))
400
(if (provided? "sigscheme")
402
(assert-eq? (tn) #f (eqv? '("") '("")))
403
(assert-eq? (tn) #f (eqv? '(("")) '((""))))
404
(assert-eq? (tn) #f (eqv? '("aBc12!")
406
(assert-eq? (tn) #f (eqv? '("あ0イう12!")
408
(assert-eq? (tn) #f (eqv? '("a" "" "aB1" ("3c" "d") "a")
409
'("a" "" "aB1" ("3c" "d") "a")))
410
(assert-eq? (tn) #f (eqv? '(("aBc12!"))
412
(assert-eq? (tn) #f (eqv? '(("あ0イう12!"))
415
(assert-eq? (tn) #f (eqv? (list "") (list "")))
416
(assert-eq? (tn) #f (eqv? (list (list "")) (list (list ""))))
417
(assert-eq? (tn) #f (eqv? (list "aBc12!")
419
(assert-eq? (tn) #f (eqv? (list "あ0イう12!")
421
(assert-eq? (tn) #f (eqv? (list "a" "" "aB1" (list "3c" "d") "a")
422
(list "a" "" "aB1" (list "3c" "d") "a")))
423
(assert-eq? (tn) #f (eqv? (list (list "aBc12!"))
424
(list (list "aBc12!"))))
425
(assert-eq? (tn) #f (eqv? (list (list "あ0イう12!"))
426
(list (list "あ0イう12!"))))
428
(if (provided? "sigscheme")
430
(assert-eq? (tn) #f (eqv? '("aBc123!")
432
(assert-eq? (tn) #f (eqv? '("あ0イぅ12!")
434
(assert-eq? (tn) #f (eqv? '("a" "" "aB1" ("3c" "e") "a")
435
'("a" "" "aB1" ("3c" "d") "a")))
436
(assert-eq? (tn) #f (eqv? '(("aBc123!"))
438
(assert-eq? (tn) #f (eqv? '(("あ0イぅ12!"))
441
(assert-eq? (tn) #f (eqv? (list "aBc123!")
443
(assert-eq? (tn) #f (eqv? (list "あ0イぅ12!")
445
(assert-eq? (tn) #f (eqv? (list "a" "" "aB1" (list "3c" "e") "a")
446
(list "a" "" "aB1" (list "3c" "d") "a")))
447
(assert-eq? (tn) #f (eqv? (list (list "aBc123!"))
448
(list (list "aBc12!"))))
449
(assert-eq? (tn) #f (eqv? (list (list "あ0イぅ12!"))
450
(list (list "あ0イう12!"))))
452
(if (provided? "sigscheme")
455
(eqv? '(0 #\a "" #("vE" -1 (#\?)) 23 + "aBc" (-1 #\b ("Ls")) #t)
456
'(0 #\a "" #("vE" -1 (#\?)) 23 + "aBc" (-1 #\b ("Ls")) #t)))
458
(eqv? '(0 #\a "" #("vE" -1 (#\?)) 23 + "aBc" (-1 #\b ("Ls")) #t)
459
'(0 #\a "" #("vE" -1 (#\?)) 23 + "aBc" (-1 #\b ("L")) #t)))
461
(eqv? '(0 #\a "" #("vE" -1 (#\?)) 23 + "aBc" (-1 #\b ("Ls")) #t)
462
'(0 #\a "" ("vE" -1 (#\?)) 23 + "aBc" (-1 #\b ("Ls")) #t)))
464
(eqv? '(0 #\a "" #("vE" -1 (#\?)) 23 + "aBc" (-1 #\b ("Ls")) #t)
465
'(0 #\a "" #("vE" -1 (#\?)) 23 + "aBc" #t)))
467
(eqv? '(0 #\a "" #("vE" -1 (#\?)) 23 + "aBc" #t)
468
'(0 #\a "" #("vE" -1 (#\?)) 23 + "aBc" (-1 #\b ("Ls")) #t)))))
471
(eqv? (list 0 #\a "" (vector "vE" -1 '(#\?)) 23 + "aBc" (list -1 #\b '("Ls")) #t)
472
(list 0 #\a "" (vector "vE" -1 '(#\?)) 23 + "aBc" (list -1 #\b '("Ls")) #t)))
474
(eqv? (list 0 #\a "" (vector "vE" -1 '(#\?)) 23 + "aBc" (list -1 #\b '("Ls")) #t)
475
(list 0 #\a "" (vector "vE" -1 '(#\?)) 23 + "aBc" (list -1 #\b '("L")) #t)))
477
(eqv? (list 0 #\a "" (vector "vE" -1 '(#\?)) 23 + "aBc" (list -1 #\b '("Ls")) #t)
478
(list 0 #\a "" (list "vE" -1 '(#\?)) 23 + "aBc" (list -1 #\b '("Ls")) #t)))
480
(eqv? (list 0 #\a "" (vector "vE" -1 '(#\?)) 23 + "aBc" (list -1 #\b '("Ls")) #t)
481
(list 0 #\a "" (vector "vE" -1 '(#\?)) 23 + "aBc" #t)))
483
(eqv? (list 0 #\a "" (vector "vE" -1 '(#\?)) 23 + "aBc" #t)
484
(list 0 #\a "" (vector "vE" -1 '(#\?)) 23 + "aBc" (list -1 #\b '("Ls")) #t)))
486
(tn "eqv? empty vector")
487
(if (provided? "sigscheme")
488
(assert-eq? (tn) #f (eqv? '#() '#())))
489
(assert-eq? (tn) #f (eqv? (vector) (vector)))
493
(assert-eq? (tn) #t (eqv? v1 v1))
494
(assert-eq? (tn) #t (eqv? v2 v2))
495
(assert-eq? (tn) #f (eqv? v1 v2)))
498
(if (provided? "sigscheme")
500
(assert-eq? (tn) #f (eqv? '#(#f) '#(#f)))
501
(assert-eq? (tn) #f (eqv? '#(#f) '#(#t)))
502
(assert-eq? (tn) #f (eqv? '#(#t) '#(#f)))
503
(assert-eq? (tn) #f (eqv? '#(#t) '#(#t)))
504
(assert-eq? (tn) #f (eqv? '#(#(#f)) '#(#(#f))))
505
(assert-eq? (tn) #f (eqv? '#(#(#f)) '#(#(#t))))
506
(assert-eq? (tn) #f (eqv? '#(#(#t)) '#(#(#f))))
507
(assert-eq? (tn) #f (eqv? '#(#(#t)) '#(#(#t))))
508
(assert-eq? (tn) #f (eqv? '#(1) '#(1)))
509
(assert-eq? (tn) #f (eqv? '#(1) '#(0)))
510
(assert-eq? (tn) #f (eqv? '#(1 3 5 0 13)
512
(assert-eq? (tn) #f (eqv? '#(1 3 2 0 13)
514
(assert-eq? (tn) #f (eqv? '#(1 3 #(5 0 13))
516
(assert-eq? (tn) #f (eqv? '#(1 3 #(2 0 13))
518
(assert-eq? (tn) #f (eqv? '#(#(1)) '#(#(1))))
519
(assert-eq? (tn) #f (eqv? '#(#(1)) '#(#(0))))
520
(assert-eq? (tn) #f (eqv? '#(#(1) #(3) #(5) #(0) #(13))
521
'#(#(1) #(3) #(5) #(0) #(13))))
522
(assert-eq? (tn) #f (eqv? '#(#(1) #(3) #(2) #(0) #(13))
523
'#(#(1) #(3) #(5) #(0) #(13))))
524
(assert-eq? (tn) #f (eqv? '#(#\a) '#(#\a)))
525
(assert-eq? (tn) #f (eqv? '#(#\a) '#(#\b)))
526
(assert-eq? (tn) #f (eqv? '#(#\b) '#(#\a)))
527
(assert-eq? (tn) #f (eqv? '#(#(#\a)) '#(#(#\a))))
528
(assert-eq? (tn) #f (eqv? '#(#(#\a)) '#(#(#\b))))
529
(assert-eq? (tn) #f (eqv? '#(#(#\b)) '#(#(#\a))))))
531
(assert-eq? (tn) #f (eqv? (vector #f) (vector #f)))
532
(assert-eq? (tn) #f (eqv? (vector #f) (vector #t)))
533
(assert-eq? (tn) #f (eqv? (vector #t) (vector #f)))
534
(assert-eq? (tn) #f (eqv? (vector #t) (vector #t)))
535
(assert-eq? (tn) #f (eqv? (vector (vector #f)) (vector (vector #f))))
536
(assert-eq? (tn) #f (eqv? (vector (vector #f)) (vector (vector #t))))
537
(assert-eq? (tn) #f (eqv? (vector (vector #t)) (vector (vector #f))))
538
(assert-eq? (tn) #f (eqv? (vector (vector #t)) (vector (vector #t))))
539
(assert-eq? (tn) #f (eqv? (vector 1) (vector 1)))
540
(assert-eq? (tn) #f (eqv? (vector 1) (vector 0)))
541
(assert-eq? (tn) #f (eqv? (vector 1 3 5 0 13)
542
(vector 1 3 5 0 13)))
543
(assert-eq? (tn) #f (eqv? (vector 1 3 2 0 13)
544
(vector 1 3 5 0 13)))
545
(assert-eq? (tn) #f (eqv? (vector 1 3 (vector 5 0 13))
546
(vector 1 3 (vector 5 0 13))))
547
(assert-eq? (tn) #f (eqv? (vector 1 3 (vector 2 0 13))
548
(vector 1 3 (vector 5 0 13))))
549
(assert-eq? (tn) #f (eqv? (vector (vector 1)) (vector (vector 1))))
550
(assert-eq? (tn) #f (eqv? (vector (vector 1)) (vector (vector 0))))
551
(assert-eq? (tn) #f (eqv? (vector (vector 1) (vector 3) (vector 5) (vector 0) (vector 13))
552
(vector (vector 1) (vector 3) (vector 5) (vector 0) (vector 13))))
553
(assert-eq? (tn) #f (eqv? (vector (vector 1) (vector 3) (vector 2) (vector 0) (vector 13))
554
(vector (vector 1) (vector 3) (vector 5) (vector 0) (vector 13))))
555
(assert-eq? (tn) #f (eqv? (vector #\a) (vector #\a)))
556
(assert-eq? (tn) #f (eqv? (vector #\a) (vector #\b)))
557
(assert-eq? (tn) #f (eqv? (vector #\b) (vector #\a)))
558
(assert-eq? (tn) #f (eqv? (vector (vector #\a)) (vector (vector #\a))))
559
(assert-eq? (tn) #f (eqv? (vector (vector #\a)) (vector (vector #\b))))
560
(assert-eq? (tn) #f (eqv? (vector (vector #\b)) (vector (vector #\a))))
562
(if (provided? "sigscheme")
564
(assert-eq? (tn) #f (eqv? '#("") '#("")))
565
(assert-eq? (tn) #f (eqv? '#(#("")) '#(#(""))))
566
(assert-eq? (tn) #f (eqv? '#("aBc12!")
568
(assert-eq? (tn) #f (eqv? '#("あ0イう12!")
570
(assert-eq? (tn) #f (eqv? '#("a" "" "aB1" #("3c" "d") "a")
571
'#("a" "" "aB1" #("3c" "d") "a")))
572
(assert-eq? (tn) #f (eqv? '#(#("aBc12!"))
574
(assert-eq? (tn) #f (eqv? '#(#("あ0イう12!"))
577
(assert-eq? (tn) #f (eqv? (vector "") (vector "")))
578
(assert-eq? (tn) #f (eqv? (vector (vector "")) (vector (vector ""))))
579
(assert-eq? (tn) #f (eqv? (vector "aBc12!")
581
(assert-eq? (tn) #f (eqv? (vector "あ0イう12!")
583
(assert-eq? (tn) #f (eqv? (vector "a" "" "aB1" (vector "3c" "d") "a")
584
(vector "a" "" "aB1" (vector "3c" "d") "a")))
585
(assert-eq? (tn) #f (eqv? (vector (vector "aBc12!"))
586
(vector (vector "aBc12!"))))
587
(assert-eq? (tn) #f (eqv? (vector (vector "あ0イう12!"))
588
(vector (vector "あ0イう12!"))))
590
(if (provided? "sigscheme")
592
(assert-eq? (tn) #f (eqv? '#("aBc123!")
594
(assert-eq? (tn) #f (eqv? '#("あ0イぅ12!")
596
(assert-eq? (tn) #f (eqv? '#("a" "" "aB1" #("3c" "e") "a")
597
'#("a" "" "aB1" #("3c" "d") "a")))
598
(assert-eq? (tn) #f (eqv? '#(#("aBc123!"))
600
(assert-eq? (tn) #f (eqv? '#(#("あ0イぅ12!"))
603
(assert-eq? (tn) #f (eqv? (vector "aBc123!")
605
(assert-eq? (tn) #f (eqv? (vector "あ0イぅ12!")
607
(assert-eq? (tn) #f (eqv? (vector "a" "" "aB1" (vector "3c" "e") "a")
608
(vector "a" "" "aB1" (vector "3c" "d") "a")))
609
(assert-eq? (tn) #f (eqv? (vector (vector "aBc123!"))
610
(vector (vector "aBc12!"))))
611
(assert-eq? (tn) #f (eqv? (vector (vector "あ0イぅ12!"))
612
(vector (vector "あ0イう12!"))))
614
(if (provided? "sigscheme")
617
(eqv? '#(0 #\a "" #("vE" -1 (#\?)) 23 + "aBc" (-1 #\b ("Ls")) #t)
618
'#(0 #\a "" #("vE" -1 (#\?)) 23 + "aBc" (-1 #\b ("Ls")) #t)))
620
(eqv? '#(0 #\a "" #("vE" -1 (#\?)) 23 + "aBc" (-1 #\b ("Ls")) #t)
621
'#(0 #\a "" #("vE" -1 (#\?)) 23 + "aBc" (-1 #\b ("L")) #t)))
623
(eqv? '#(0 #\a "" #("vE" -1 (#\?)) 23 + "aBc" (-1 #\b ("Ls")) #t)
624
'#(0 #\a "" ("vE" -1 (#\?)) 23 + "aBc" (-1 #\b ("Ls")) #t)))
626
(eqv? '#(0 #\a "" #("vE" -1 (#\?)) 23 + "aBc" (-1 #\b ("Ls")) #t)
627
'#(0 #\a "" #("vE" -1 (#\?)) 23 + "aBc" #t)))
629
(eqv? '#(0 #\a "" #("vE" -1 (#\?)) 23 + "aBc" #t)
630
'#(0 #\a "" #("vE" -1 (#\?)) 23 + "aBc" (-1 #\b ("Ls")) #t)))))
633
(eqv? (vector 0 #\a "" (vector "vE" -1 '(#\?)) 23 + "aBc" (vector -1 #\b '("Ls")) #t)
634
(vector 0 #\a "" (vector "vE" -1 '(#\?)) 23 + "aBc" (vector -1 #\b '("Ls")) #t)))
636
(eqv? (vector 0 #\a "" (vector "vE" -1 '(#\?)) 23 + "aBc" (vector -1 #\b '("Ls")) #t)
637
(vector 0 #\a "" (vector "vE" -1 '(#\?)) 23 + "aBc" (vector -1 #\b '("L")) #t)))
639
(eqv? (vector 0 #\a "" (vector "vE" -1 '(#\?)) 23 + "aBc" (vector -1 #\b '("Ls")) #t)
640
(vector 0 #\a "" (list "vE" -1 '(#\?)) 23 + "aBc" (vector -1 #\b '("Ls")) #t)))
642
(eqv? (vector 0 #\a "" (vector "vE" -1 '(#\?)) 23 + "aBc" (vector -1 #\b '("Ls")) #t)
643
(vector 0 #\a "" (vector "vE" -1 '(#\?)) 23 + "aBc" #t)))
645
(eqv? (vector 0 #\a "" (vector "vE" -1 '(#\?)) 23 + "aBc" #t)
646
(vector 0 #\a "" (vector "vE" -1 '(#\?)) 23 + "aBc" (vector -1 #\b '("Ls")) #t)))