fix ni-range docs; add for tests
This commit is contained in:
parent
60845b2098
commit
0f39ee9b72
|
@ -158,8 +158,8 @@ each element in the sequence.
|
|||
(sequence? "word")
|
||||
(sequence? #\x)]}
|
||||
|
||||
@defproc*[([(in-range [end number?]) stream?]
|
||||
[(in-range [start number?] [end number?] [step number? 1]) stream?])]{
|
||||
@defproc*[([(in-range [end real?]) stream?]
|
||||
[(in-range [start real?] [end real?] [step real? 1]) stream?])]{
|
||||
Returns a sequence (that is also a @tech{stream}) whose elements are
|
||||
numbers. The single-argument case @racket[(in-range end)] is
|
||||
equivalent to @racket[(in-range 0 end 1)]. The first number in the
|
||||
|
|
|
@ -450,7 +450,81 @@
|
|||
#rx".*expected number of values not received.*")
|
||||
(test 1 'one (begin (for/fold () () (values)) 1))
|
||||
|
||||
;; iterator contract tests
|
||||
(err/rt-test (for ([x (in-range (sqrt -1))]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected\\: real\\?")
|
||||
(err/rt-test (for ([x (in-range 1 (sqrt -1))]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected\\: real\\?")
|
||||
(err/rt-test (for ([x (in-range 1 2 (sqrt -1))]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected\\: real\\?")
|
||||
(test (* 10 pi) 'in-range-with-reals
|
||||
(for/sum ([x (in-range 0 (+ (* 4 pi) .1) pi)]) x))
|
||||
(err/rt-test (for ([x (in-naturals 1.1)]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected\\: exact-nonnegative-integer\\?")
|
||||
(err/rt-test (for ([x (in-naturals -1)]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected\\: exact-nonnegative-integer\\?")
|
||||
(err/rt-test (for ([x (in-list 1)]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected\\: list\\?")
|
||||
(err/rt-test (for ([x (in-list (vector 1 2 3))]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected\\: list\\?")
|
||||
(err/rt-test (for ([x (in-list (mcons 1 '()))]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected\\: list\\?")
|
||||
(err/rt-test (for ([x (in-mlist (list 1 2 3))]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected\\: mpair\\?")
|
||||
(err/rt-test (for ([x (in-vector '(1 2))]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected\\: vector")
|
||||
(err/rt-test (for ([x (in-vector (vector 1 2) -1)]) x)
|
||||
exn:fail:contract?
|
||||
#rx"starting index is out of range")
|
||||
(err/rt-test (for ([x (in-vector (vector 1 2) 10)]) x)
|
||||
exn:fail:contract?
|
||||
#rx"starting index is out of range")
|
||||
(err/rt-test (for ([x (in-vector (vector 1 2) 1.1)]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected\\: exact-integer\\?")
|
||||
(err/rt-test (for ([x (in-vector (vector 1 2) 0 1.1)]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected\\: exact-integer\\?")
|
||||
(err/rt-test (for ([x (in-vector (vector 1 2) 0 2 1.1)]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected:.*exact-integer\\?")
|
||||
(err/rt-test (for ([x (in-vector (vector 1 2) 0 2 0)]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected:.*not/c zero\\?")
|
||||
(err/rt-test (for ([x (in-port (vector 1 2))]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected:.*procedure-arity-includes/c 1")
|
||||
(err/rt-test (for ([x (in-input-port-bytes (vector 1 2))]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected: input-port\\?")
|
||||
(err/rt-test (for ([x (in-hash (vector 1 2))]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected: hash\\?")
|
||||
(err/rt-test (for ([x (in-hash-pairs (vector 1 2))]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected: hash\\?")
|
||||
(err/rt-test (for ([x (in-hash-keys (vector 1 2))]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected: hash\\?")
|
||||
(err/rt-test (for ([x (in-hash-values (vector 1 2))]) x)
|
||||
exn:fail:contract?
|
||||
#rx"expected: hash\\?")
|
||||
(err/rt-test (for ([x (in-hash (hash 1 2))]) x)
|
||||
exn:fail:contract:arity?
|
||||
#rx"expected number of values not received")
|
||||
|
||||
;; for/fold syntax checking
|
||||
(syntax-test #'(for/fold () bad 1) #rx".*bad sequence binding clauses.*")
|
||||
|
||||
|
||||
(report-errs)
|
||||
|
|
|
@ -590,6 +590,7 @@
|
|||
(values car cdr l pair? #f #f))
|
||||
|
||||
(define (in-mlist l)
|
||||
(unless (mpair? l) (raise-argument-error 'in-mlist "mpair?" l))
|
||||
(make-do-sequence (lambda () (:mlist-gen l))))
|
||||
|
||||
(define (:mlist-gen l)
|
||||
|
|
Loading…
Reference in New Issue
Block a user