source: project/release/5/mathh/tags/4.2.0/tests/mathh-test.scm @ 36246

Last change on this file since 36246 was 36246, checked in by kon, 3 months ago

add modf*, rel 4.2.0

File size: 2.1 KB
Line 
1;;;; mathh-test.scm  -*- Scheme -*-
2;;;; Kon Lovett, Jul '18
3;;;; Kon Lovett, May '17
4
5(import test)
6
7(test-begin "Mathh")
8
9;;;
10
11(import (chicken flonum) mathh)
12
13;;
14
15(test-group "ISO C Functions"
16
17        (test 1.0 (bessel-j0 0.0))
18        (test 0.0 (bessel-j1 0.0))
19        (test 1.0 (bessel-jn 0 0.0))
20        (test 0.0 (bessel-jn 1 0.0))
21
22        (test 0.088256964215677 (bessel-y0 1.0))
23        (test -0.781212821300289 (bessel-y1 1.0))
24        (test 0.088256964215677 (bessel-yn 0 1.0))
25        (test -0.781212821300289 (bessel-yn 1 1.0))
26
27        (test 1.0 (cosh 0.0))
28        (test 0.0 (sinh 0.0))
29        (test 0.0 (tanh 0.0))
30
31        (test 5.0 (hypot -5.0 0.0))
32
33        (test 1.0 (tgamma 1.0))
34        (test 0.0 (lgamma 1.0))
35
36        (test 2.0 (log10 100.0))
37        (test 3.0 (log2 8.0))
38        (test 0.0 (log1p 0.0))
39
40        (test 0.0 (fpmod 0.0 1.0))
41
42        (test (values 5.0 0.5) (modf 5.5))
43        (test (values 5 0.5) (modf* 5.5))
44
45        (test 20.0 (ldexp 5.0 2))
46
47        (test 20.0 (scalbn 5.0 2))
48
49        (test (values 0.536870912 -30) (frexp 5.0e-10))
50)
51
52;;
53
54(test-group "BSD Functions"
55
56        (test-assert (signbit -1.0))
57        (test-assert (not (signbit 1.0)))
58        (test-assert (signbit -0.0))
59
60        (test -1.0 (copysign 1.0 -1.0))
61        (test 1.0 (copysign -1.0 1.0))
62
63        (test 1.0 (nextafter 1.0 -1.0))
64        (test -1.0 (nextafter -1.0 1.0))
65
66        (test 2.4662 (cbrt 15.0))
67)
68
69;;
70
71(test-group "Function fpclass"
72
73        (test 'negative-infinite (fpclass -inf.0))
74        (test 'signaling-nan (fpclass -nan.0))
75        (test 'negative-zero (fpclass -0.0))
76        (test 'positive-normal (fpclass 0.741573033707865))
77        (test 'positive-normal (fpclass (fp/ 33.0 44.5)))
78)
79
80;;
81
82(test-group "Function fpclassify"
83
84        (test 'infinite (fpclassify -inf.0))
85        (test 'nan (fpclassify -nan.0))
86        (test 'zero (fpclassify -0.0))
87        (test 'normal (fpclassify 0.741573033707865))
88        (test 'normal (fpclassify (fp/ 33.0 44.5)))
89)
90
91;;;
92
93;(import (prefix mathh-consts C:))
94;(require-library mathh-consts)
95;=> C:sqrt2 C:degree C:ln2 C:log2e C:e
96(require-extension mathh-consts)
97
98(test-group "Math Constants"
99
100        ; Well, some
101        (test sqrt2 (sqrt 2.0))
102        (test degree (/ pi 180.0))
103        (test ln2 (log 2.0))
104        (test log2e (log2 e))
105)
106
107;;;
108
109(test-group "Inline failure #1340"
110  (define (factorial x)
111    (gamma (+ 1 x)) )
112  (test 362880.0 (factorial 9))
113)
114
115;;;
116
117(test-end "Mathh")
118
119(test-exit)
Note: See TracBrowser for help on using the repository browser.