From 41aecc449dfb519e7daa7d72e4fa3874974fd912 Mon Sep 17 00:00:00 2001 From: pfdietz <pfdietz@localhost> Date: Wed, 11 Feb 2004 12:58:54 +0000 Subject: [PATCH] Added tests for sinh, cosh. --- ansi-tests/cosh.lsp | 98 +++++++++++++++++++++++++++++++++++++ ansi-tests/load-numbers.lsp | 4 ++ ansi-tests/sinh.lsp | 95 +++++++++++++++++++++++++++++++++++ 3 files changed, 197 insertions(+) create mode 100644 ansi-tests/cosh.lsp create mode 100644 ansi-tests/sinh.lsp diff --git a/ansi-tests/cosh.lsp b/ansi-tests/cosh.lsp new file mode 100644 index 00000000..4a67c95f --- /dev/null +++ b/ansi-tests/cosh.lsp @@ -0,0 +1,98 @@ +;-*- Mode: Lisp -*- +;;;; Author: Paul Dietz +;;;; Created: Wed Feb 11 06:54:15 2004 +;;;; Contains: Tests of COSH + +(in-package :cl-test) + +(deftest cosh.1 + (let ((result (cosh 0))) + (or (eqlt result 1) + (eqlt result 1.0))) + t) + +(deftest cosh.2 + (loop for type in '(short-float single-float double-float long-float) + for zero = (coerce 0 type) + for one = (coerce 1 type) + unless (equal (multiple-value-list (cosh zero)) + (list one)) + collect type) + nil) + +(deftest cosh.3 + (loop for type in '(short-float single-float double-float long-float) + for zero = (coerce 0 `(complex ,type)) + for one = (coerce 1 `(complex ,type)) + unless (equal (multiple-value-list (cosh zero)) + (list one)) + collect type) + nil) + +(deftest cosh.4 + (loop for den = (1+ (random 10000)) + for num = (random (* 10 den)) + for x = (/ num den) + for rlist = (multiple-value-list (cosh x)) + for y = (car rlist) + repeat 1000 + unless (and (null (cdr rlist)) + (numberp y)) + collect (list x rlist)) + nil) + +(deftest cosh.5 + (loop for type in '(short-float single-float double-float long-float) + nconc + (loop + for x = (- (random (coerce 20 type)) 10) + for rlist = (multiple-value-list (cosh x)) + for y = (car rlist) + repeat 1000 + unless (and (null (cdr rlist)) + (typep y type)) + collect (list x rlist))) + nil) + +(deftest cosh.6 + (loop for type in '(short-float single-float double-float long-float) + nconc + (loop + for x1 = (- (random (coerce 20 type)) 10) + for x2 = (- (random (coerce 20 type)) 10) + for rlist = (multiple-value-list (cosh (complex x1 x2))) + for y = (car rlist) + repeat 1000 + unless (and (null (cdr rlist)) + (typep y `(complex ,type))) + collect (list x rlist))) + nil) + +;;; FIXME +;;; Add accuracy tests here + +;;; Error tests + +(deftest cosh.error.1 + (signals-error (cosh) program-error) + t) + +(deftest cosh.error.2 + (signals-error (cosh 1.0 1.0) program-error) + t) + +(deftest cosh.error.3 + (loop for x in *mini-universe* + unless (or (numberp x) + (eval `(signals-error (cosh ',x) type-error))) + collect x) + nil) + + + + + + + + + diff --git a/ansi-tests/load-numbers.lsp b/ansi-tests/load-numbers.lsp index 5bd109ab..d0aa2067 100644 --- a/ansi-tests/load-numbers.lsp +++ b/ansi-tests/load-numbers.lsp @@ -31,6 +31,10 @@ (load "acos.lsp") (load "atan.lsp") +(load "sinh.lsp") +(load "cosh.lsp") + + (load "times.lsp") (load "plus.lsp") (load "minus.lsp") diff --git a/ansi-tests/sinh.lsp b/ansi-tests/sinh.lsp new file mode 100644 index 00000000..28d89dad --- /dev/null +++ b/ansi-tests/sinh.lsp @@ -0,0 +1,95 @@ +;-*- Mode: Lisp -*- +;;;; Author: Paul Dietz +;;;; Created: Wed Feb 11 06:29:51 2004 +;;;; Contains: Tests for SINH + +(in-package :cl-test) + +(deftest sinh.1 + (let ((result (sinh 0))) + (or (eqlt result 0) + (eqlt result 0.0))) + t) + +(deftest sinh.2 + (loop for type in '(short-float single-float double-float long-float) + for zero = (coerce 0 type) + unless (equal (multiple-value-list (sinh zero)) + (list zero)) + collect type) + nil) + +(deftest sinh.3 + (loop for type in '(short-float single-float double-float long-float) + for zero = (coerce 0 `(complex ,type)) + unless (equal (multiple-value-list (sinh zero)) + (list zero)) + collect type) + nil) + +(deftest sinh.4 + (loop for den = (1+ (random 10000)) + for num = (random (* 10 den)) + for x = (/ num den) + for rlist = (multiple-value-list (sinh x)) + for y = (car rlist) + repeat 1000 + unless (and (null (cdr rlist)) + (numberp y)) + collect (list x rlist)) + nil) + +(deftest sinh.5 + (loop for type in '(short-float single-float double-float long-float) + nconc + (loop + for x = (- (random (coerce 20 type)) 10) + for rlist = (multiple-value-list (sinh x)) + for y = (car rlist) + repeat 1000 + unless (and (null (cdr rlist)) + (typep y type)) + collect (list x rlist))) + nil) + +(deftest sinh.6 + (loop for type in '(short-float single-float double-float long-float) + nconc + (loop + for x1 = (- (random (coerce 20 type)) 10) + for x2 = (- (random (coerce 20 type)) 10) + for rlist = (multiple-value-list (sinh (complex x1 x2))) + for y = (car rlist) + repeat 1000 + unless (and (null (cdr rlist)) + (typep y `(complex ,type))) + collect (list x rlist))) + nil) + +;;; FIXME +;;; Add accuracy tests here + +;;; Error tests + +(deftest sinh.error.1 + (signals-error (sinh) program-error) + t) + +(deftest sinh.error.2 + (signals-error (sinh 1.0 1.0) program-error) + t) + +(deftest sinh.error.3 + (loop for x in *mini-universe* + unless (or (numberp x) + (eval `(signals-error (sinh ',x) type-error))) + collect x) + nil) + + + + + + + + -- GitLab