X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Ftype.before-xc.lisp;h=90d8f1df8a9771db63fbd2a22442b571e3af3159;hb=2034cb134af58c5998f4e305673af6e2c75bc179;hp=2ae293774f2363973fd0db438f1a30dc931db968;hpb=83b88ebcc07cda4daec275fa851664495a840445;p=sbcl.git diff --git a/tests/type.before-xc.lisp b/tests/type.before-xc.lisp index 2ae2937..90d8f1d 100644 --- a/tests/type.before-xc.lisp +++ b/tests/type.before-xc.lisp @@ -128,14 +128,11 @@ (assert-secondnil (sb-xc:subtypep t '(satisfies foo))) (assert-secondnil (sb-xc:subtypep t '(and (satisfies foo) (satisfies bar)))) (assert-secondnil (sb-xc:subtypep t '(or (satisfies foo) (satisfies bar)))) - ;; FIXME: Enable these tests when bug 84 is fixed. - #| (assert-secondnil (sb-xc:subtypep '(satisfies foo) nil)) (assert-secondnil (sb-xc:subtypep '(and (satisfies foo) (satisfies bar)) nil)) (assert-secondnil (sb-xc:subtypep '(or (satisfies foo) (satisfies bar)) - nil)) - |#) + nil))) ;;; tests of 2-value quantifieroids FOO/TYPE (macrolet ((2= (v1 v2 expr2) @@ -182,6 +179,9 @@ (assert (null (type-intersection2 (specifier-type 'symbol) (specifier-type '(satisfies foo))))) (assert (intersection-type-p (specifier-type '(and symbol (satisfies foo))))) +(assert (ctypep :x86 (specifier-type '(satisfies keywordp)))) +(assert (type= (specifier-type '(member :x86)) + (specifier-type '(and (member :x86) (satisfies keywordp))))) (let* ((type1 (specifier-type '(member :x86))) (type2 (specifier-type '(or keyword null))) (isect (type-intersection type1 type2))) @@ -190,9 +190,6 @@ (assert (type= isect (type-intersection type2 type1 type2))) (assert (type= isect (type-intersection type1 type1 type2 type1))) (assert (type= isect (type-intersection type1 type2 type1 type2)))) -;;; FIXME: As of sbcl-0.6.11.19, the system doesn't know how to do the -;;; type simplifications which would let these tests work. (bug 89) -#| (let* ((type1 (specifier-type 'keyword)) (type2 (specifier-type '(or keyword null))) (isect (type-intersection type1 type2))) @@ -201,6 +198,22 @@ (assert (type= isect (type-intersection type2 type1 type2))) (assert (type= isect (type-intersection type1 type1 type2 type1))) (assert (type= isect (type-intersection type1 type2 type1 type2)))) -|# +(assert (csubtypep (specifier-type '(or (single-float -1.0 1.0) + (single-float 0.1))) + (specifier-type '(or (real -1 7) + (single-float 0.1) + (single-float -1.0 1.0))))) +(assert (not (csubtypep (specifier-type '(or (real -1 7) + (single-float 0.1) + (single-float -1.0 1.0))) + (specifier-type '(or (single-float -1.0 1.0) + (single-float 0.1)))))) + +(assert (sb-xc:typep #\, 'character)) +(assert (sb-xc:typep #\@ 'character)) + +(assert (type= (type-intersection (specifier-type '(member #\a #\c #\e)) + (specifier-type '(member #\b #\c #\f))) + (specifier-type '(member #\c)))) (/show "done with tests/type.before-xc.lisp")