Refactor(Tests): Add proper (pp1 tests) unit tests for all logic ADTs
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>
This commit is contained in:
55
pacman-project/tests/test-tijdslimiet.rkt
Normal file
55
pacman-project/tests/test-tijdslimiet.rkt
Normal file
@@ -0,0 +1,55 @@
|
||||
#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?"))))
|
||||
Reference in New Issue
Block a user