1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- (define-module (test-srfi-27)
- #:use-module (test-suite lib)
- #:use-module (srfi srfi-27))
- (with-test-prefix "large integers"
- (pass-if "in range"
- (let loop ((k 0) (n 1))
- (cond ((> k 1024)
- #t)
- ((<= 0 (random-integer n) (- n 1))
- (loop (+ k 1) (* n 2)))
- (else
- #f)))))
- (with-test-prefix "reals"
- (pass-if "in range"
- (let loop ((k 0) (n 1))
- (if (> k 1000)
- #t
- (let ((x (random-real)))
- (if (< 0 x 1)
- (loop (+ k 1) (* n 2))
- #f))))))
- (with-test-prefix "get/set state"
- (let* ((state1 (random-source-state-ref default-random-source))
- (x1 (random-integer (expt 2 32)))
- (state2 (random-source-state-ref default-random-source))
- (x2 (random-integer (expt 2 32))))
- (random-source-state-set! default-random-source state1)
- (pass-if "state1"
- (= x1 (random-integer (expt 2 32))))
- (random-source-state-set! default-random-source state2)
- (pass-if "state2"
- (= x2 (random-integer (expt 2 32))))))
- (with-test-prefix "randomize!"
- (let* ((state1 (random-source-state-ref default-random-source))
- (x1 (random-integer (expt 2 32))))
- (random-source-state-set! default-random-source state1)
- (random-source-randomize! default-random-source)
- (if (= x1 (random-integer (expt 2 32)))
- (throw 'unresolved))))
- (with-test-prefix "pseudo-randomize!"
- (let* ((state1 (random-source-state-ref default-random-source))
- (x1 (random-integer (expt 2 32))))
- (random-source-state-set! default-random-source state1)
- (random-source-pseudo-randomize! default-random-source 0 1)
- (let ((y1 (random-integer (expt 2 32))))
- (if (= x1 y1)
- (throw 'unresolved)))
- (random-source-state-set! default-random-source state1)
- (random-source-pseudo-randomize! default-random-source 1 0)
- (let ((y1 (random-integer (expt 2 32))))
- (if (= x1 y1)
- (throw 'unresolved)))))
|