source: project/release/5/fp-utils/trunk/test/fp-utils-test.scm @ 36573

Last change on this file since 36573 was 36573, checked in by kon, 9 months ago

fix dir, split

File size: 1.8 KB
Line 
1;;;; fp-utils-test  -*- Scheme -*-
2;;;; Kon Lovett, Sep '18
3
4(import test)
5
6(test-begin "Fp Utils")
7
8;;;
9
10(import (chicken base) (chicken flonum))
11
12(include "fp-inlines")
13
14(test-group "Fp Inlines"
15
16  (test-assert (fpzero? 0.0))
17  (test-assert (not (fpzero? 1.0)))
18  (test-assert (not (fpzero? maximum-flonum)))
19  (test-assert (not (fpzero? minimum-flonum)))
20
21  (test-assert (not (fppositive? 0.0)))
22  (test-assert (not (fppositive? (fpneg minimum-flonum))))
23  (test-assert (fppositive? maximum-flonum))
24
25  (test-assert (fpcardinal? 0.0))
26  (test-assert (not (fpcardinal? (fpneg minimum-flonum))))
27  (test-assert (fpcardinal? maximum-flonum))
28
29  (test-assert (not (fpnegative? 0.0)))
30  (test-assert (fpnegative? (fpneg minimum-flonum)))
31  (test-assert (not (fpnegative? maximum-flonum)))
32
33        (test-assert (not (fpeven? 7.0)))
34        (test-assert (fpeven? 6.0))
35        (test-assert (not (fpodd? 6.0)))
36        (test-assert (fpodd? 7.0))
37
38        (test 4.0 (fpadd1 3.0))
39        (test 2.0 (fpsub1 3.0))
40
41        (test 27.0 (fpcub 3.0))
42
43        (test 1.0 (fpmodulo 5.0 2.0))
44        (test 0.0 (fpmodulo 0.0 1.0))
45
46        (test 2.0 (fpquotient 5.0 2.0))
47        (test 1.0 (fpremainder 5.0 2.0))
48)
49
50;;
51
52(define-constant 5eps (fp/ 9.0 1e06))
53(define-constant 4eps (fp/ 9.0 1e05))
54
55(test-group "Fp Utils"
56
57        (test-assert (flonum? (fprandom)))
58        (test-assert (flonum? (fprandom 2456)))
59
60        (test-assert (fp~= 0.123456 0.123457 5eps))
61        (test-assert (fp~<= 0.123456 0.123457 5eps))
62        (test-assert (fp~>= 0.123456 0.123457 5eps))
63        (test-assert (fp~<= 0.123456 0.12346 5eps))
64        (test-assert (fp~>= 0.123456 0.12344 5eps))
65
66  (parameterize ((current-test-epsilon 4eps))
67          (test 5.6568 (fpdistance 1.0 1.0 5.0 5.0)) )
68
69        (receive (mx mn) (fpmax-and-min 1.0 -1.0 -16.0 13.0 2.0 16.0 7.0 -8.0)
70          (test "fpmax-and-min max" 16.0 mx)
71          (test "fpmax-and-min min" -16.0 mn) )
72)
73
74;;;
75
76(test-end "Fp Utils")
77
78(test-exit)
Note: See TracBrowser for help on using the repository browser.