add tests for lazy take
This commit is contained in:
parent
36ae5a9d50
commit
9924ac8060
|
@ -1,12 +1,31 @@
|
|||
#lang racket/base
|
||||
#lang scheme/base
|
||||
|
||||
(require tests/eli-tester lazy)
|
||||
|
||||
;; tests for lazy language constructs
|
||||
;; add tests as needed
|
||||
|
||||
(provide test-take)
|
||||
|
||||
(define (test-take)
|
||||
(test (! (take 0 '(1 2 3))) => '())) ; test for push#22080
|
||||
(define test-lst1 '(1 2 3))
|
||||
(test (! (take "nonnum" test-lst1)) =error> "take: expects type <non-negative exact integer> as 1st argument, given: \"nonnum\"; other arguments were: (1 2 3)"
|
||||
(! (take -1 test-lst1)) =error> "take: expects type <non-negative exact integer> as 1st argument, given: -1; other arguments were: (1 2 3)"
|
||||
(! (take -1 "nonlist")) =error> "take: expects type <non-negative exact integer> as 1st argument, given: -1; other arguments were: \"nonlist\""
|
||||
(! (take 0 "nonlist")) => '() ; this is how Racket's take behaves
|
||||
(! (take 1 "nonlist")) =error> "take: not a proper list: \"nonlist\""
|
||||
(! (take 0 null)) => '()
|
||||
(! (take 0 test-lst1)) => '() ; test for push#22080
|
||||
(! (car (take 1 test-lst1))) => 1
|
||||
(! (cdr (take 1 test-lst1))) => '()
|
||||
(! (first (take 2 test-lst1))) => 1
|
||||
(! (second (take 2 test-lst1))) => 2
|
||||
(! (cddr (take 2 test-lst1))) => '()
|
||||
(! (first (take 4 test-lst1))) => 1
|
||||
(! (second (take 4 test-lst1))) => 2
|
||||
(! (third (take 4 test-lst1))) => 3
|
||||
(! (fourth (take 4 test-lst1))) =error> "take: index 4 too large for input list"))
|
||||
|
||||
(provide langimpl-tests)
|
||||
(define (langimpl-tests)
|
||||
; not working, only get 1 test passed
|
||||
#;(define (langimpl-tests)
|
||||
(test (test-take)))
|
|
@ -3,6 +3,7 @@
|
|||
(require tests/eli-tester "promise.rkt" "lang.rkt" "langimpl.rkt")
|
||||
|
||||
(test do (lang-tests)
|
||||
do (langimpl-tests)
|
||||
; do (langimpl-tests) ; not working, so import test-take directly
|
||||
do (test-take)
|
||||
do (promise-tests)
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue
Block a user