2
;;;; Author: Paul Dietz
3
;;;; Created: Thu Aug 21 16:07:59 2003
4
;;;; Contains: Tests of FROUND
8
(compile-and-load "numbers-aux.lsp")
9
(ignore-errors (compile-and-load "fround-aux.lsp"))
13
(deftest fround.error.1
14
(signals-error (fround) program-error)
17
(deftest fround.error.2
18
(signals-error (fround 1.0 1 nil) program-error)
28
(loop for x in (remove-if #'zerop *reals*)
29
for (q r) = (multiple-value-list (fround x x))
30
unless (and (floatp q)
42
(loop for x in (remove-if-not #'floatp (remove-if #'zerop *reals*))
43
for (q r) = (multiple-value-list (fround (- x) x))
44
unless (and (floatp q)
56
(let* ((radix (float-radix 1.0s0))
57
(rad (float radix 1.0s0))
59
(loop for i from 1 to 1000
61
for (q r) = (multiple-value-list (fround x))
62
unless (and (eql q (coerce i 'short-float))
64
collect (list i x q r)))
68
(let* ((radix (float-radix 1.0s0))
69
(rad (float radix 1.0s0))
71
(loop for i from 1 to 1000
73
for (q r) = (multiple-value-list (fround x))
74
unless (and (eql q (coerce i 'short-float))
76
collect (list i x q r)))
80
(let* ((radix (float-radix 1.0f0))
81
(rad (float radix 1.0f0))
83
(loop for i from 1 to 1000
85
for (q r) = (multiple-value-list (fround x))
86
unless (and (eql q (coerce i 'single-float))
88
collect (list i x q r)))
92
(let* ((radix (float-radix 1.0f0))
93
(rad (float radix 1.0f0))
95
(loop for i from 1 to 1000
97
for (q r) = (multiple-value-list (fround x))
98
unless (and (eql q (coerce i 'single-float))
100
collect (list i x q r)))
104
(let* ((radix (float-radix 1.0d0))
105
(rad (float radix 1.0d0))
106
(rrad (/ 0.5d0 rad)))
107
(loop for i from 1 to 1000
109
for (q r) = (multiple-value-list (fround x))
110
unless (and (eql q (coerce i 'double-float))
112
collect (list i x q r)))
116
(let* ((radix (float-radix 1.0d0))
117
(rad (float radix 1.0d0))
118
(rrad (/ 0.5d0 rad)))
119
(loop for i from 1 to 1000
121
for (q r) = (multiple-value-list (fround x))
122
unless (and (eql q (coerce i 'double-float))
124
collect (list i x q r)))
128
(let* ((radix (float-radix 1.0l0))
129
(rad (float radix 1.0l0))
130
(rrad (/ 0.5l0 rad)))
131
(loop for i from 1 to 1000
133
for (q r) = (multiple-value-list (fround x))
134
unless (and (eql q (coerce i 'long-float))
136
collect (list i x q r)))
140
(let* ((radix (float-radix 1.0l0))
141
(rad (float radix 1.0l0))
142
(rrad (/ 0.5l0 rad)))
143
(loop for i from 1 to 1000
145
for (q r) = (multiple-value-list (fround x))
146
unless (and (eql q (coerce i 'long-float))
148
collect (list i x q r)))