diff --git a/ansi-tests/class-name.lsp b/ansi-tests/class-name.lsp new file mode 100644 index 0000000000000000000000000000000000000000..fca64a2eded6a0031ee2765ad795cc451eced93c --- /dev/null +++ b/ansi-tests/class-name.lsp @@ -0,0 +1,34 @@ +;-*- Mode: Lisp -*- +;;;; Author: Paul Dietz +;;;; Created: Sun Jun 15 12:05:47 2003 +;;;; Contains: Tests of CLASS-NAME + +(in-package :cl-test) + +;;; This is mostly tested elsewhere. + +(deftest class-name.1 + (class-name (find-class 'symbol)) + symbol) + +(defclass class-name-class-01 () (a b c)) + +(defmethod class-name ((x class-name-class-01)) 'silly) + +(deftest class-name.2 + (class-name (make-instance 'class-name-class-01)) + silly) + +;; Tests of (setf class-name) + +(deftest setf-class-name.1 + (typep* #'(setf class-name) 'standard-generic-function) + t) + +(deftest class-name.error.1 + (classify-error (class-name)) + program-error) + +(deftest class-name.error.2 + (classify-error (class-name (find-class 'symbol) nil)) + program-error) diff --git a/ansi-tests/define-method-combination.lsp b/ansi-tests/define-method-combination.lsp new file mode 100644 index 0000000000000000000000000000000000000000..514faff83ac5b47438ceb79e96ad189a2fd3a357 --- /dev/null +++ b/ansi-tests/define-method-combination.lsp @@ -0,0 +1,87 @@ +;-*- Mode: Lisp -*- +;;;; Author: Paul Dietz +;;;; Created: Sun Jun 15 10:49:39 2003 +;;;; Contains: Tests of DEFINE-METHOD-COMBINATION + +(in-package :cl-test) + +(define-method-combination times + :documentation "Multiplicative method combination, version 1" + :operator *) + +(defgeneric dmc-gf-01 (x) (:method-combination times)) + +(defmethod dmc-gf-01 times ((x integer)) 2) +(defmethod dmc-gf-01 times ((x rational)) 3) +(defmethod dmc-gf-01 times ((x real)) 5) +(defmethod dmc-gf-01 times ((x number)) 7) +(defmethod dmc-gf-01 times ((x complex)) 11) + +(deftest define-method-combination-01.1 + (values + (dmc-gf-01 1) + (dmc-gf-01 1/2) + (dmc-gf-01 1.0) + (dmc-gf-01 #c(1 2))) + 210 105 35 77) + +(deftest define-method-combination-01.2 + (handler-case + (eval '(locally (declare (optimize (safety 3))) + (dmc-gf-01 'x))) + (error () :good)) + :good) + +(defgeneric dmc-gf-02 (x) (:method-combination times)) + +(defmethod dmc-gf-02 times ((x integer)) 2) +(defmethod dmc-gf-02 :around ((x rational)) (1- (call-next-method))) +(defmethod dmc-gf-02 times ((x real)) 3) +(defmethod dmc-gf-02 times ((x number)) 5) +(defmethod dmc-gf-02 :around ((x (eql 1.0s0))) 1) + +(deftest define-method-combination-02.1 + (values + (dmc-gf-02 1) + (dmc-gf-02 1/3) + (dmc-gf-02 1.0s0) + (dmc-gf-02 13.0) + (dmc-gf-02 #c(1 2))) + 29 14 1 15 5) + +(defgeneric dmc-gf-03 (x) (:method-combination times)) + +(deftest define-method-combination-03.1 + (handler-case + (progn + (eval '(defmethod dmc-gf-03 ((x integer)) t)) + :bad) + (error () :good)) + :good) + +(deftest define-method-combination-03.2 + (handler-case + (progn + (eval '(defmethod dmc-gf-03 :before ((x cons)) t)) + :bad) + (error () :good)) + :good) + +(deftest define-method-combination-03.3 + (handler-case + (progn + (eval '(defmethod dmc-gf-03 :after ((x symbol)) t)) + :bad) + (error () :good)) + :good) + + + + + + + + + + + diff --git a/ansi-tests/load-objects.lsp b/ansi-tests/load-objects.lsp index 2a1be1a7d485824e2fcc874db6b97f337040c015..3affa3c491b43331b5ddd6e969631f40d823b12b 100644 --- a/ansi-tests/load-objects.lsp +++ b/ansi-tests/load-objects.lsp @@ -48,6 +48,8 @@ (load "next-method-p.lsp") (load "call-next-method.lsp") (load "compute-applicable-methods.lsp") +(load "define-method-combination.lsp") (load "find-method.lsp") (load "add-method.lsp") (load "unbound-slot.lsp") +(load "class-name.lsp")