From c2a6f84384e51edd64182661511ede1a63dc757b Mon Sep 17 00:00:00 2001 From: pfdietz <pfdietz@localhost> Date: Thu, 9 Jun 2005 12:41:56 +0000 Subject: [PATCH] Some omitted tests for DEFMETHOD --- ansi-tests/defmethod.lsp | 121 ++++++++++++++++++++++++++++++++++++ ansi-tests/load-objects.lsp | 2 + 2 files changed, 123 insertions(+) create mode 100644 ansi-tests/defmethod.lsp diff --git a/ansi-tests/defmethod.lsp b/ansi-tests/defmethod.lsp new file mode 100644 index 00000000..e1103a1b --- /dev/null +++ b/ansi-tests/defmethod.lsp @@ -0,0 +1,121 @@ +;-*- Mode: Lisp -*- +;;;; Author: Paul Dietz +;;;; Created: Thu Jun 9 07:02:53 2005 +;;;; Contains: Separate tests for DEFMETHOD + +(in-package :cl-test) + +(deftest defmethod.1 + (let ((sym (gensym))) + (values + (typep* (eval `(defmethod ,sym (x) (list x))) 'standard-method) + (typep* (fdefinition sym) 'standard-generic-function) + (funcall sym 1))) + t t (1)) + +(deftest defmethod.2 + (let* ((sym (gensym)) + (method + (eval `(defmethod ,sym ((x integer)) (list x))))) + (values + (typep* method 'standard-method) + (typep* (fdefinition sym) 'standard-generic-function) + (funcall sym 1))) + t t (1)) + +(deftest defmethod.3 + (let* ((sym (gensym)) + (method + (eval `(let ((x 0)) (defmethod ,sym ((x (eql (incf x)))) (list x)))))) + (values + (typep* method 'standard-method) + (typep* (fdefinition sym) 'standard-generic-function) + (funcall sym 1) + (funcall sym 1))) + t t (1) (1)) + + +;;; Error cases + +;;; Lambda liss not congruent + +(deftest defmethod.error.1 + (let ((sym (gensym))) + (eval `(defgeneric ,sym (x y))) + (eval `(signals-error (defmethod ,sym ((x t)) x) error))) + t) + +(deftest defmethod.error.2 + (let ((sym (gensym))) + (eval `(defgeneric ,sym (x y))) + (eval `(signals-error (defmethod ,sym ((x t) (y t) (z t)) (list x y z)) error))) + t) + +(deftest defmethod.error.3 + (let ((sym (gensym))) + (eval `(defgeneric ,sym (x y &optional z))) + (eval `(signals-error (defmethod ,sym ((x t) (y t) (z t)) (list x y z)) error))) + t) + +(deftest defmethod.error.4 + (let ((sym (gensym))) + (eval `(defgeneric ,sym (x y &optional z))) + (eval `(signals-error (defmethod ,sym ((x t) (y t) &optional) (list x y)) error))) + t) + +(deftest defmethod.error.5 + (let ((sym (gensym))) + (eval `(defgeneric ,sym (x y &optional z))) + (eval `(signals-error (defmethod ,sym ((x t) (y t) &optional z w) (list x y z w)) error))) + t) + +(deftest defmethod.error.6 + (let ((sym (gensym))) + (eval `(defgeneric ,sym (x &rest z))) + (eval `(signals-error (defmethod ,sym ((x t)) (list x)) error))) + t) + +(deftest defmethod.error.7 + (let ((sym (gensym))) + (eval `(defgeneric ,sym (x))) + (eval `(signals-error (defmethod ,sym ((x t) &rest z) (list x z)) error))) + t) + +(deftest defmethod.error.8 + (let ((sym (gensym))) + (eval `(defgeneric ,sym (x &key z))) + (eval `(signals-error (defmethod ,sym ((x t)) (list x)) error))) + t) + +(deftest defmethod.error.9 + (let ((sym (gensym))) + (eval `(defgeneric ,sym (x))) + (eval `(signals-error (defmethod ,sym ((x t) &key z) (list x z)) error))) + t) + +(deftest defmethod.error.10 + (let ((sym (gensym))) + (eval `(defgeneric ,sym (x &key z))) + (eval `(signals-error (defmethod ,sym ((x t) &key) x) error))) + t) + +(deftest defmethod.error.11 + (let ((sym (gensym))) + (eval `(defgeneric ,sym (x &key))) + (eval `(signals-error (defmethod ,sym ((x t)) x) error))) + t) + +(deftest defmethod.error.12 + (let ((sym (gensym))) + (eval `(defgeneric ,sym (x))) + (eval `(signals-error (defmethod ,sym ((x t) &key) x) error))) + t) + + + + + + + + + diff --git a/ansi-tests/load-objects.lsp b/ansi-tests/load-objects.lsp index 7a0034b6..a73586bb 100644 --- a/ansi-tests/load-objects.lsp +++ b/ansi-tests/load-objects.lsp @@ -54,3 +54,5 @@ (load "class-name.lsp") (load "class-of.lsp") (load "unbound-slot.lsp") +(load "defmethod.lsp") + -- GitLab