diff --git a/ansi-tests/gclload2.lsp b/ansi-tests/gclload2.lsp index efc58ff6791f810e462dd3c1e5d9f57bc85a91f4..83f76a70c7ff0d4406467779c681e0828386abef 100644 --- a/ansi-tests/gclload2.lsp +++ b/ansi-tests/gclload2.lsp @@ -34,6 +34,9 @@ (load "packages.lsp") +;;; Tests of numbers (section 12) +(load "load-numbers.lsp") + ;;; Tests of sequences (load "load-sequences.lsp") diff --git a/ansi-tests/load-numbers.lsp b/ansi-tests/load-numbers.lsp new file mode 100644 index 0000000000000000000000000000000000000000..9654710c5ec6eb4239df5c6521255249154a866d --- /dev/null +++ b/ansi-tests/load-numbers.lsp @@ -0,0 +1,11 @@ +;-*- Mode: Lisp -*- +;;;; Author: Paul Dietz +;;;; Created: Mon Apr 7 07:16:44 2003 +;;;; Contains: Forms to load files containing tests of number concepts + +(in-package :cl-test) + +(compile-and-load "numbers-aux.lsp") +(load "number-comparison.lsp") + + diff --git a/ansi-tests/number-comparison.lsp b/ansi-tests/number-comparison.lsp new file mode 100644 index 0000000000000000000000000000000000000000..40d49c1a1cda4f6ebc7379711aa8f9218dbdf007 --- /dev/null +++ b/ansi-tests/number-comparison.lsp @@ -0,0 +1,104 @@ +;-*- Mode: Lisp -*- +;;;; Author: Paul Dietz +;;;; Created: Mon Apr 7 07:17:42 2003 +;;;; Contains: Tests of =, /=, <, <=, >, >= + +(in-package :cl-test) + +;;; Errors tests on comparison functions + +(deftest =.error.1 + (classify-error (=)) + program-error) + +(deftest /=.error.1 + (classify-error (/=)) + program-error) + +(deftest <.error.1 + (classify-error (<)) + program-error) + +(deftest <=.error.1 + (classify-error (<=)) + program-error) + +(deftest >.error.1 + (classify-error (>)) + program-error) + +(deftest >=.error.1 + (classify-error (>=)) + program-error) + +;;; Tests of = + +(deftest =.1 + (loop for x in *numbers* + unless (= x) + collect x) + nil) + +(deftest =.2 + (loop for x in *numbers* + unless (= x x) + collect x) + nil) + +(deftest =.3 + (loop for x in *numbers* + unless (= x x x) + collect x) + nil) + +(deftest =.4 + (=.4-fn) + nil) + +(deftest =.5 + (loop for i from 1 to 10000 + for i2 = (1+ i) + never (or (= i i2) (= i2 i))) + t) + +(deftest =.6 + (loop for i from 5 to 10000 by 17 + for j from 2 to i by 19 + for r = (/ i j) + unless (and (not (= r (1+ r))) + (not (= r 0)) + (not (= r (- r))) + (= r r)) + collect r) + nil) + +(deftest =.7 + (let ((args nil)) + (loop for i from 1 to (min 256 call-arguments-limit) + do (push 17 args) + always (apply #'= args))) + t) + +(deftest =.8 + (loop for i from 2 to (min 256 call-arguments-limit) + for args = (append (make-list (1- i) :initial-element 7) + (list 23)) + when (apply #'= args) + collect args) + nil) + +(deftest =.9 + (=t 0 0.0) + t) + +(deftest =.10 + (=t 0 #c(0 0)) + t) + +(deftest =.11 + (=t 1 #c(1.0 0.0)) + t) + +(deftest =.12 + (=t -0.0 0.0) + t) diff --git a/ansi-tests/numbers-aux.lsp b/ansi-tests/numbers-aux.lsp new file mode 100644 index 0000000000000000000000000000000000000000..39d5329ec1e6cb416ce7a260eda70ea5d11deb56 --- /dev/null +++ b/ansi-tests/numbers-aux.lsp @@ -0,0 +1,13 @@ +;-*- Mode: Lisp -*- +;;;; Author: Paul Dietz +;;;; Created: Mon Apr 7 07:24:43 2003 +;;;; Contains: Auxiliary functions for number tests + +(in-package :cl-test) + +(defun =.4-fn () + (loop for x in *numbers* + append + (loop for y in *numbers* + unless (if (= x y) (= y x) (not (= y x))) + collect (list x y))))