source: project/release/5/mathh/trunk/tests/mathh-test.scm @ 36243

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

fix hypot test, add types, rm make-log/base, add log/base

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
44        (test 20.0 (ldexp 5.0 2))
45
46        (test 20.0 (scalbn 5.0 2))
47
48        (test (values 0.536870912 -30) (frexp 5.0e-10))
49)
50
51;;
52
53(test-group "BSD Functions"
54
55        (test-assert (signbit -1.0))
56        (test-assert (not (signbit 1.0)))
57        (test-assert (signbit -0.0))
58
59        (test -1.0 (copysign 1.0 -1.0))
60        (test 1.0 (copysign -1.0 1.0))
61
62        (test 1.0 (nextafter 1.0 -1.0))
63        (test -1.0 (nextafter -1.0 1.0))
64
65        (test 2.4662 (cbrt 15.0))
66)
67
68;;
69
70(test-group "Function fpclass"
71
72        (test 'negative-infinite (fpclass -inf.0))
73        (test 'signaling-nan (fpclass -nan.0))
74        (test 'negative-zero (fpclass -0.0))
75        (test 'positive-normal (fpclass 0.741573033707865))
76        (test 'positive-normal (fpclass (fp/ 33.0 44.5)))
77)
78
79;;
80
81(test-group "Function fpclassify"
82
83        (test 'infinite (fpclassify -inf.0))
84        (test 'nan (fpclassify -nan.0))
85        (test 'zero (fpclassify -0.0))
86        (test 'normal (fpclassify 0.741573033707865))
87        (test 'normal (fpclassify (fp/ 33.0 44.5)))
88)
89
90;;;
91
92;(import (prefix mathh-consts C:))
93;(require-library mathh-consts)
94;=> C:sqrt2 C:degree C:ln2 C:log2e C:e
95(require-extension mathh-consts)
96
97(test-group "Math Constants"
98
99        ; Well, some
100        (test sqrt2 (sqrt 2.0))
101        (test degree (/ pi 180.0))
102        (test ln2 (log 2.0))
103        (test log2e (log2 e))
104)
105
106;;;
107
108(test-group "Inline failure #1340"
109  (define (factorial x)
110    (gamma (+ 1 x)) )
111  (test 362880.0 (factorial 9))
112)
113
114;;;
115
116(test-end "Mathh")
117
118(test-exit)
Note: See TracBrowser for help on using the repository browser.