diff --git a/ansi-tests/cosh.lsp b/ansi-tests/cosh.lsp new file mode 100644 index 0000000000000000000000000000000000000000..4a67c95fc71412acc5528d722175bb89f4522e13 --- /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 5bd109ab395ac943fd92759c980bad85038910c0..d0aa2067e248b19fb1a5a2f69ff5ac292dd07564 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 0000000000000000000000000000000000000000..28d89dadbb82cb1ee73c79e70643c491b6d557b8 --- /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) + + + + + + + +