Commit 41aecc44 authored by pfdietz's avatar pfdietz
Browse files

Added tests for sinh, cosh.

parent 94ef088b
;-*- 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)
......@@ -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")
......
;-*- 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)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment