Next: , Previous: , Up: API  


1.2 (veritas generator)

This module implements data generator combinators for the Veritas property-based testing sub-system. All generators compile down into a predictable closure contract matching the simplified signature: (lambda (rand) ...)

This simplified architecture automatically selects a random size internally, removing the need to track sizing down through the generator pipeline manually.

1.2.1 Procedures

Procedure: generate-char

Create a generator closure that yields random printable characters.

Returns a generator procedure accepting an explicit random rand object. The returned character falls within the printable ASCII range (32 to 126).

(define gen (generate-char))
(gen (seed->random-state 42))
;; or (gen (random-state-from-platform))
⇒ #\A
Procedure: generate-integer KEY: #:max-bound

Create a generator closure that yields pseudo-random integers.

Returns a generator procedure accepting an explicit random rand object. The random upper boundary is selected internally up to max-bound.

(define gen (generate-integer #:max-bound 100))
(gen (seed->random-state 42))
;; or (gen (random-state-from-platform))
⇒ 42
Procedure: generate-list elem-generator KEY: #:min-len #:max-len

Create a generator closure that yields a list of randomly generated elements.

Returns a generator procedure accepting an explicit random rand object. Leverages the internal mapping configurations of elem-generator to compile a list with a structured size constrained between min-len and max-len.

(define gen (generate-list (generate-integer #:max-bound 10)
                           #:min-len 2
                           #:max-len 4))
(gen (seed->random-state 42))
;; or (gen (random-state-from-platform))
⇒ (7 2 9)
Procedure: generate-string KEY: #:min-len #:max-len

Create a generator closure that yields a random string.

Returns a generator procedure accepting an explicit random rand object. Builds a string composed of random printable ASCII characters with an overall length constrained between min-len and max-len.

(define gen (generate-string #:min-len 5 #:max-len 10))
(gen (seed->random-state 42))
;; or (gen (random-state-from-platform))
⇒ "lorem"
Procedure: generate-symbol KEY: #:min-len #:max-len

Create a generator closure that yields random Scheme symbols.

Returns a generator procedure accepting an explicit random rand object. Yields valid, unescaped Scheme symbols with a length constrained between min-len and max-len. Characters are limited to lowercase alphabetical letters (a-z).

(define gen (generate-symbol #:min-len 3 #:max-len 6))
(gen (seed->random-state 42))
;; or (gen (random-state-from-platform))
⇒ veritas

Next: (veritas model), Previous: (veritas assert), Up: API