Next: (veritas model), Previous: (veritas assert), Up: API
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.
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
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
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)
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"
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