Tests for Positie, Doolhof, Pac-Man, Score, and Tijdslimiet ADTs using check/check-eq?/run-test from (pp1 tests) library. Centralized test runner in alle-testen.rkt with prefix imports. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
56 lines
1.9 KiB
Racket
56 lines
1.9 KiB
Racket
#lang r7rs
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Tests: Tijdslimiet ADT ;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
(define-library (pacman-project tests test-tijdslimiet)
|
|
(import (scheme base)
|
|
(pp1 tests)
|
|
(pacman-project adt-tijdslimiet))
|
|
(export test)
|
|
|
|
(begin
|
|
|
|
;; Test starttijd
|
|
(define (test-starttijd)
|
|
(define t (maak-tijdslimiet))
|
|
(check-eq? (t 'resterende-tijd) 60 "Starttijd moet 60 seconden zijn")
|
|
(check (not ((t 'tijd-op?))) "Tijd mag niet op zijn bij start"))
|
|
|
|
;; Test verlaag na 1 seconde
|
|
(define (test-verlaag)
|
|
(define t (maak-tijdslimiet))
|
|
((t 'verlaag!) 1000)
|
|
(check-eq? (t 'resterende-tijd) 59 "Tijd moet 59 zijn na 1 seconde"))
|
|
|
|
;; Test verhoog (muntje bonus)
|
|
(define (test-verhoog)
|
|
(define t (maak-tijdslimiet))
|
|
((t 'verlaag!) 1000)
|
|
((t 'verhoog!))
|
|
(check-eq? (t 'resterende-tijd) 60 "Tijd moet 60 zijn na verlaag + verhoog"))
|
|
|
|
;; Test formatteer-tijd
|
|
(define (test-formatteer)
|
|
(define t (maak-tijdslimiet))
|
|
(check-eq? ((t 'formatteer-tijd)) "1:00" "60 seconden = 1:00")
|
|
((t 'verlaag!) 1000)
|
|
(check-eq? ((t 'formatteer-tijd)) "0:59" "59 seconden = 0:59"))
|
|
|
|
;; Test tijd-op?
|
|
(define (test-tijd-op)
|
|
(define t (maak-tijdslimiet))
|
|
;; 60 keer verlagen met 1 seconde
|
|
(do ((i 0 (+ i 1)))
|
|
((= i 60))
|
|
((t 'verlaag!) 1000))
|
|
(check ((t 'tijd-op?)) "Tijd moet op zijn na 60 seconden"))
|
|
|
|
(define (test)
|
|
(run-test test-starttijd "Tijdslimiet: starttijd")
|
|
(run-test test-verlaag "Tijdslimiet: verlaag")
|
|
(run-test test-verhoog "Tijdslimiet: verhoog")
|
|
(run-test test-formatteer "Tijdslimiet: formatteer-tijd")
|
|
(run-test test-tijd-op "Tijdslimiet: tijd-op?"))))
|