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