mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 05:39:18 +02:00
98 lines
3.4 KiB
Scheme
98 lines
3.4 KiB
Scheme
(define-library (srfi 144 test)
|
|
(import (scheme base) (chibi test) (srfi 144))
|
|
(export run-tests)
|
|
(begin
|
|
;; note default (current-test-epsilon) for (chibi test) test is 1e-5
|
|
(define (run-tests)
|
|
(test-begin "srfi-144: flonums")
|
|
(test-assert (flonum? (flonum 5)))
|
|
(test 5. (fl+ 2. 3.))
|
|
(test -1. (fl- 2. 3.))
|
|
(test 6. (fl* 2. 3.))
|
|
(test 0.6666666666 (fl/ 2. 3.))
|
|
(test 10. (fl+* 2. 3. 4.))
|
|
(test 0. (fladjacent -0. 1.))
|
|
(test -0. (flcopysign 0. -1.))
|
|
(test 3. (make-flonum 3. 0))
|
|
(test 6. (make-flonum 3. 1))
|
|
(test 3072. (make-flonum 3. 10))
|
|
(call-with-values (lambda () (flinteger-fraction 12.345))
|
|
(lambda (int frac)
|
|
(test 12. int)
|
|
(test .345 frac)))
|
|
(test 0. (flexponent 1.))
|
|
(test 255. (flexponent 1e77))
|
|
(test 255 (flinteger-exponent 1e77))
|
|
(test 0 (sign-bit 0.))
|
|
(test 0 (sign-bit 1.))
|
|
(test 0 (sign-bit +inf.0))
|
|
(test 1 (sign-bit -0.))
|
|
(test 1 (sign-bit -1.))
|
|
(test 1 (sign-bit -inf.0))
|
|
(test-not (flunordered? 0. 1.))
|
|
(test-not (flunordered? 0. -inf.0))
|
|
(test-assert (flunordered? +nan.0 0.))
|
|
(test-assert (flunordered? 0. +nan.0))
|
|
(test-assert (flinteger? 42.))
|
|
(test-not (flinteger? 42.1))
|
|
(test-assert (flzero? -0.))
|
|
(test-assert (flzero? 0.))
|
|
(test-not (flzero? 0.1))
|
|
(test-not (flzero? +nan.0))
|
|
(test-assert (flpositive? 1.))
|
|
(test-assert (flpositive? +inf.0))
|
|
(test-not (flpositive? -1.))
|
|
(test-assert (flnegative? -1.))
|
|
(test-assert (flnegative? -inf.0))
|
|
(test-not (flnegative? 1.))
|
|
(test-assert (flodd? 1.))
|
|
(test-not (flodd? 2.))
|
|
(test-not (fleven? 3.))
|
|
(test-assert (fleven? 4.))
|
|
(test-assert (flfinite? 5.))
|
|
(test-assert (flinfinite? -inf.0))
|
|
(test-assert (flnan? +nan.0))
|
|
(test-assert (flnormalized? 1.))
|
|
(test-assert (fldenormalized? (fladjacent 0. +inf.0)))
|
|
(test 1. (flabsdiff 2. 3.))
|
|
(test 1. (flabsdiff 3. 2.))
|
|
(test 0. (flposdiff 2. 3.))
|
|
(test 1. (flsgn 0.))
|
|
(test -1. (flsgn -0.))
|
|
(test 1. (flexp 0.))
|
|
(test 2.718281828 (flexp 1.))
|
|
(test 8. (flexp2 3.))
|
|
(test 1.718281828 (flexp-1 1.))
|
|
(test 9. (flsquare 3.))
|
|
(test 1.414213562 (flsqrt 2.))
|
|
(test 1.259921050 (flcbrt 2.))
|
|
(test 5. (flhypot 3. 4.))
|
|
(test 81. (flexpt 3. 4.))
|
|
(test 1.098612289 (fllog 3.))
|
|
(test 0.693147186 (fllog1+ 1.))
|
|
(test 2.807354922 (fllog2 7.))
|
|
(test 10. (fllog2 1024.))
|
|
(test 3.010299957 (fllog10 1024.))
|
|
(test 0.841470985 (flsin 1.))
|
|
(test 0.540302306 (flcos -1.))
|
|
(test 1.557407725 (fltan 1.))
|
|
(test 1.570796327 (flasin 1.))
|
|
(test fl-pi (flacos -1.))
|
|
(test 0.785398163 (flatan 1.))
|
|
(test 0.463647609 (flatan 1. 2.))
|
|
(test 1.175201194 (flsinh 1.))
|
|
(test 1.543080635 (flcosh -1.))
|
|
(test 0.761594156 (fltanh 1.))
|
|
(test 0.881373587 (flasinh 1.))
|
|
(test 0. (flacosh 1.))
|
|
(test +inf.0 (flatanh 1.))
|
|
(test 24. (flgamma 5.))
|
|
(call-with-values (lambda () (flloggamma 0.1))
|
|
(lambda (res sign)
|
|
(test 2.252713 res)
|
|
(test 1 sign)))
|
|
(test 0.440050586 (flfirst-bessel 1 1.))
|
|
(test -0.781212821 (flsecond-bessel 1 1.))
|
|
(test 0.842700793 (flerf 1.))
|
|
(test 0.157299207 (flerfc 1.))
|
|
(test-end))))
|