source: trunk/source/tests/ansi-tests/subtypep-rational.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: 4.2 KB
Line 
1;-*- Mode:     Lisp -*-
2;;;; Author:   Paul Dietz
3;;;; Created:  Sat Feb 15 11:56:19 2003
4;;;; Contains: Tests for subtype relationships on rational types
5
6(in-package :cl-test)
7
8(compile-and-load "types-aux.lsp")
9
10;;; SUBTYPEP on rational types
11
12(deftest subtypep.rational.1
13  (loop for tp1 in '((rational 10) (rational 10 *)
14                     (rational 10 20)
15                     (rational (10) 20)
16                     (rational 10 (20))
17                     (rational (10) (20))
18                     (rational 10 1000000000000000)
19                     (rational (10)) (rational (10) *))
20        append
21        (loop for tp2 in '(rational (rational) (rational *)
22                           (rational * *) (rational 10) (rational 10 *)
23                           (rational 0) (rational 0 *)
24                           (rational 19/2) (rational 19/2 *)
25                           (rational -1000000000000000)
26                           real (real) (real *)
27                           (real * *) (real 10) (real 10 *)
28                           (real 0) (real 0 *)
29                           (real 19/2) (real 19/2 *)
30                           (real -1000000000000000))
31              unless (equal (multiple-value-list
32                             (subtypep* tp1 tp2))
33                            '(t t))
34              collect (list tp1 tp2)))
35  nil)
36
37(deftest subtypep.rational.2
38  (loop for tp1 in '((rational * 10)
39                     (rational 0 10)
40                     (rational 0 (10))
41                     (rational (0) 10)
42                     (rational (0) (10))
43                     (rational -1000000000000000 10)
44                     (rational * (10)))
45        append
46        (loop for tp2 in '(rational (rational) (rational *)
47                           (rational * *) (rational * 10)
48                           (rational * 21/2)
49                           (rational * 1000000000000000)
50                           real (real) (real *)
51                           (real * *) (real * 10)
52                           (real * 21/2)
53                           (real * 1000000000000000))
54              unless (equal (multiple-value-list
55                             (subtypep* tp1 tp2))
56                            '(t t))
57              collect (list tp1 tp2)))
58  nil)
59
60(deftest subtypep.rational.3
61  (loop for tp1 in '((rational 10) (rational 10 *)
62                     (rational 10 20)
63                     (rational 10 (21))
64                     (rational 10 1000000000000000))
65        append
66        (loop for tp2 in '((rational 11) (rational 11 *)
67                           (rational (10)) (rational (10) *)
68                           (integer 10) (integer 10 *)
69                           (real 11)
70                           (real (10))
71                           (real 11 *)
72                           (real (10) *)
73                           (rational * (20))
74                           (rational * 19)
75                           (real * (20))
76                           (real * 19))
77              unless (equal (multiple-value-list
78                             (subtypep* tp1 tp2))
79                            '(nil t))
80              collect (list tp1 tp2)))
81  nil)
82
83(deftest subtypep.rational.4
84  (loop for tp1 in '((rational * 10)
85                     (rational 0 10)
86                     (rational (0) 10)
87                     (rational -1000000000000000 10))
88        append
89        (loop for tp2 in '((rational * 9)
90                           (rational * (10))
91                           (integer * 10)
92                           (real * 9)
93                           (real * (10)))
94              unless (equal (multiple-value-list
95                             (subtypep* tp1 tp2))
96                            '(nil t))
97              collect (list tp1 tp2)))
98  nil)
99
100(deftest subtypep.rational.5
101  (check-equivalence
102   '(or (rational 0 0) (rational (0)))
103   '(rational 0))
104  nil)
105
106(deftest subtypep.rational.6
107  (check-equivalence
108   '(and (rational 0 10) (rational 5 15))
109   '(rational 5 10))
110  nil)
111
112(deftest subtypep.rational.7
113  (check-equivalence
114   '(and (rational (0) 10) (rational 5 15))
115   '(rational 5 10))
116  nil)
117
118(deftest subtypep.rational.8
119  (check-equivalence
120   '(and (rational 0 (10)) (rational 5 15))
121   '(rational 5 (10)))
122  nil)
123
124(deftest subtypep.rational.9
125  (check-equivalence
126   '(and (rational (0) (10)) (rational 5 15))
127   '(rational 5 (10)))
128  nil)
129
130(deftest subtypep.rational.10
131  (check-equivalence
132   '(and (rational 0 10) (rational (5) 15))
133   '(rational (5) 10))
134  nil)
135
136(deftest subtypep.rational.11
137  (check-equivalence
138   '(and (rational 0 (10)) (rational (5) 15))
139   '(rational (5) (10)))
140  nil)
141
142(deftest subtypep.rational.12
143  (check-equivalence
144   '(and integer (rational 0 10) (not (rational (0) (10))))
145   '(member 0 10))
146  nil)
147
148(deftest subtypep.rational.13
149  (check-equivalence '(and integer (rational -1/2 1/2))
150                     '(integer 0 0))
151  nil)
152
153(deftest subtypep.rational.14
154  (check-equivalence '(and integer (rational -1/2 1/2))
155                     '(eql 0))
156  nil)
157
158(deftest subtypep.rational.15
159  (check-equivalence '(and integer (rational (-1/2) 1/2))
160                     '(integer 0 0))
161  nil)
162
163(deftest subtypep.rational.16
164  (check-equivalence '(and integer (rational (-1/2) (1/2)))
165                     '(integer 0 0))
166  nil)
167
168(deftest subtypep.rational.17
169  (check-all-subtypep '(not (rational -1/2 1/2)) '(not (integer 0 0)))
170  nil)
171
172(deftest subtypep.rational.18
173  (check-all-subtypep '(not (rational -1/2 1/2)) '(not (eql 0)))
174  nil)
175
Note: See TracBrowser for help on using the repository browser.