add generator for symbols

This commit is contained in:
Robby Findler 2018-08-24 15:46:11 -05:00
parent 47ad1552d5
commit 176f09a7ad
2 changed files with 16 additions and 6 deletions

View File

@ -43,6 +43,7 @@
(check-not-exn (λ () (test-contract-generation exact-nonnegative-integer?))) (check-not-exn (λ () (test-contract-generation exact-nonnegative-integer?)))
(check-not-exn (λ () (test-contract-generation natural?))) (check-not-exn (λ () (test-contract-generation natural?)))
(check-not-exn (λ () (test-contract-generation symbol?)))
(check-not-exn (λ () (test-contract-generation (integer-in 0 100)))) (check-not-exn (λ () (test-contract-generation (integer-in 0 100))))
(check-not-exn (λ () (test-contract-generation (integer-in 0 (expt 2 1000))))) (check-not-exn (λ () (test-contract-generation (integer-in 0 (expt 2 1000)))))
(check-not-exn (λ () (test-contract-generation (integer-in 0 #f)))) (check-not-exn (λ () (test-contract-generation (integer-in 0 #f))))

View File

@ -63,6 +63,17 @@
(/ (integer-gen fuel) (/ (integer-gen fuel)
(exact-positive-integer-gen fuel))) (exact-positive-integer-gen fuel)))
(define (string-gen fuel)
(define len
(rand-choice [1/10 0]
[1/10 1]
[else (rand-range 2 260)]))
(define strl (build-list len (λ (x) (gen-char fuel))))
(apply string strl))
(define (symbol-gen fuel)
(string->symbol (string-gen fuel)))
(define predicate-generator-table (define predicate-generator-table
(hash (hash
;; generate integer? ;; generate integer?
@ -72,6 +83,9 @@
exact-integer? exact-integer?
exact-integer-gen exact-integer-gen
symbol?
symbol-gen
natural? natural?
exact-nonnegative-integer-gen exact-nonnegative-integer-gen
@ -118,12 +132,7 @@
gen-char gen-char
string? string?
(λ (fuel) string-gen
(let* ([len (rand-choice [1/10 0]
[1/10 1]
[else (rand-range 2 260)])]
[strl (build-list len (λ (x) (gen-char fuel)))])
(apply string strl)))
byte? byte?