diff --git a/ansi-tests/gclload2.lsp b/ansi-tests/gclload2.lsp index 10e0f85eacc8bfcb45cdc4e3b3f028be55c4ab2d..70bf291c05b5f60c780a8e04f5b99590418ecabc 100644 --- a/ansi-tests/gclload2.lsp +++ b/ansi-tests/gclload2.lsp @@ -256,6 +256,7 @@ (load "subtypep-integer.lsp") (load "subtypep-float.lsp") (load "subtypep-rational.lsp") +(load "subtypep-real.lsp") (load "subtypep-cons.lsp") (load "subtypep-member.lsp") (load "subtypep-eql.lsp") diff --git a/ansi-tests/subtypep-cons.lsp b/ansi-tests/subtypep-cons.lsp index 04cf9c97634803f7c60edf9f3f388befbfea5abd..b5063e832ea513d7baf4161d2db979f78397cc45 100644 --- a/ansi-tests/subtypep-cons.lsp +++ b/ansi-tests/subtypep-cons.lsp @@ -47,3 +47,18 @@ (cons * (not symbol)))) nil) +(deftest subtypep.cons.6 + (check-equivalence + '(or (cons integer symbol) (cons integer integer) + (cons symbol integer) (cons symbol symbol)) + '(cons (or integer symbol) (or integer symbol))) + nil) + +(deftest subtypep.cons.7 + (check-equivalence + '(or (cons (integer 0 8) (integer 5 15)) + (cons (integer 0 7) (integer 0 6)) + (cons (integer 6 15) (integer 0 9)) + (cons (integer 3 15) (integer 4 15))) + '(cons (integer 0 15) (integer 0 15))) + nil) diff --git a/ansi-tests/subtypep-rational.lsp b/ansi-tests/subtypep-rational.lsp index 2685f809d6d549aad21ee66f3f4dbf0ba7bf3218..05aa35a5d0650bd00220a1fdefcbc65c7d009438 100644 --- a/ansi-tests/subtypep-rational.lsp +++ b/ansi-tests/subtypep-rational.lsp @@ -143,9 +143,22 @@ '(member 0 10)) nil) +(deftest subtypep.rational.13 + (check-equivalence '(and integer (rational -1/2 1/2)) + '(integer 0 0)) + nil) +(deftest subtypep.rational.14 + (check-equivalence '(and integer (rational -1/2 1/2)) + '(eql 0)) + nil) +(deftest subtypep.rational.15 + (check-equivalence '(and integer (rational (-1/2) 1/2)) + '(integer 0 0)) + nil) - - - +(deftest subtypep.rational.16 + (check-equivalence '(and integer (rational (-1/2) (1/2))) + '(integer 0 0)) + nil) \ No newline at end of file diff --git a/ansi-tests/subtypep-real.lsp b/ansi-tests/subtypep-real.lsp new file mode 100644 index 0000000000000000000000000000000000000000..16b7ab842a170cb7e1e05c29e202fa7815aca763 --- /dev/null +++ b/ansi-tests/subtypep-real.lsp @@ -0,0 +1,191 @@ +;-*- Mode: Lisp -*- +;;;; Author: Paul Dietz +;;;; Created: Tue Feb 18 18:38:55 2003 +;;;; Contains: Tests of SUBTYPEP on REAL types. + +(in-package :cl-test) + +;;; SUBTYPEP on real types + +(deftest subtypep.real.1 + (loop for tp1 in '((real 10) (real 10 *) + (real 10 20) + (real (10) 20) + (real 10 (20)) + (real (10) (20)) + (real 10 1000000000000000) + (real (10)) (real (10) *)) + append + (loop for tp2 in '(real (real) (real *) + (real * *) (real 10) (real 10 *) + (real 0) (real 0 *) + (real 19/2) (real 19/2 *) + (real 9.5) (real 9.5 *) + (real -1000000000000000)) + unless (equal (multiple-value-list + (subtypep* tp1 tp2)) + '(t t)) + collect (list tp1 tp2))) + nil) + +(deftest subtypep.real.2 + (loop for tp1 in '((real * 10) + (real 0 10) + (real 0 (10)) + (real (0) 10) + (real (0) (10)) + (real -1000000000000000 10) + (real * (10))) + append + (loop for tp2 in '(real (real) (real *) + (real * *) (real * 10) + (real * 21/2) + (real * 10.5) + (real * 1000000000000000)) + unless (equal (multiple-value-list + (subtypep* tp1 tp2)) + '(t t)) + collect (list tp1 tp2))) + nil) + +(deftest subtypep.real.3 + (loop for tp1 in '((real 10) (real 10 *) + (real 10 20) + (real 10 (21)) + (real 10 1000000000000000)) + append + (loop for tp2 in '((real 11) (real 11 *) + (real (10)) (real (10) *) + (integer 10) (integer 10 *) + (real 11) + (real (10)) + (real 11 *) + (real (10) *) + (real * (20)) + (real * 19) + (real * (20)) + (real * 19)) + unless (equal (multiple-value-list + (subtypep* tp1 tp2)) + '(nil t)) + collect (list tp1 tp2))) + nil) + +(deftest subtypep.real.4 + (loop for tp1 in '((real * 10) + (real 0 10) + (real (0) 10) + (real -1000000000000000 10)) + append + (loop for tp2 in '((real * 9) + (real * (10)) + (integer * 10) + (real * 9) + (real * (10))) + unless (equal (multiple-value-list + (subtypep* tp1 tp2)) + '(nil t)) + collect (list tp1 tp2))) + nil) + +(deftest subtypep.real.5 + (check-equivalence + '(or (eql 0) (real (0))) + '(real 0)) + nil) + +(deftest subtypep.real.6 + (check-equivalence + '(and (real 0 10) (real 5 15)) + '(real 5 10)) + nil) + +(deftest subtypep.real.7 + (check-equivalence + '(and (real (0) 10) (real 5 15)) + '(real 5 10)) + nil) + +(deftest subtypep.real.8 + (check-equivalence + '(and (real 0 (10)) (real 5 15)) + '(real 5 (10))) + nil) + +(deftest subtypep.real.9 + (check-equivalence + '(and (real (0) (10)) (real 5 15)) + '(real 5 (10))) + nil) + +(deftest subtypep.real.10 + (check-equivalence + '(and (real 0 10) (real (5) 15)) + '(real (5) 10)) + nil) + +(deftest subtypep.real.11 + (check-equivalence + '(and (real 0 (10)) (real (5) 15)) + '(real (5) (10))) + nil) + +(deftest subtypep.real.12 + (check-equivalence + '(and (real 0 10) (not (real (0) (10)))) + '(member 0 10)) + nil) + +(deftest subtypep.real.13 + (check-equivalence '(and integer (real -1/2 1/2)) + '(integer 0 0)) + nil) + +(deftest subtypep.real.14 + (check-equivalence '(and integer (real -1/2 1/2)) + '(eql 0)) + nil) + +(deftest subtypep.real.15 + (check-equivalence '(and integer (real (-1/2) 1/2)) + '(integer 0 0)) + nil) + +(deftest subtypep.real.16 + (check-equivalence '(and integer (real (-1/2) (1/2))) + '(integer 0 0)) + nil) + +(deftest subtypep.real.17 + (check-equivalence '(real 0 10) '(real 0.0 10.0)) + nil) + +(deftest subtypep.real.18 + (check-equivalence '(and rational (real 0 10)) + '(rational 0 10)) + nil) + +(deftest subtypep.real.19 + (check-equivalence '(and rational (real 0 (10))) + '(rational 0 (10))) + nil) + +(deftest subtypep.real.20 + (check-equivalence '(and rational (real (0) (10))) + '(rational (0) (10))) + nil) + +(deftest subtypep.real.21 + (check-equivalence '(and rational (real 1/2 7/3)) + '(rational 1/2 7/3)) + nil) + +(deftest subtypep.real.22 + (check-equivalence '(and rational (real (1/11) (8/37))) + '(rational (1/11) (8/37))) + nil) + + + + +