22 lines
551 B
Racket
22 lines
551 B
Racket
#lang racket
|
|
(require rackunit rackunit/text-ui "2.rkt")
|
|
|
|
(define s0 (initialize (flat-contract integer?) =))
|
|
(define s2 (push (push s0 2) 1))
|
|
|
|
(run-tests
|
|
(test-suite
|
|
"stack"
|
|
(test-true
|
|
"empty"
|
|
(is-empty? (initialize (flat-contract integer?) =)))
|
|
(test-true "push" (stack? s2))
|
|
(test-true
|
|
"push exn"
|
|
(with-handlers ([exn:fail:contract? (lambda _ #t)])
|
|
(push (initialize (flat-contract integer?)) 'a)
|
|
#f))
|
|
(test-true "pop" (stack? (pop s2)))
|
|
(test-equal? "top" (top s2) 1)
|
|
(test-equal? "toppop" (top (pop s2)) 2)))
|