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>
52 lines
1.8 KiB
Racket
52 lines
1.8 KiB
Racket
#lang r7rs
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;; Tests: Pac-Man ADT ;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
(define-library (pacman-project tests test-pacman)
|
|
(import (scheme base)
|
|
(pp1 tests)
|
|
(pacman-project adt-positie)
|
|
(pacman-project adt-pacman))
|
|
(export test)
|
|
|
|
(begin
|
|
|
|
;; Test aanmaak en startpositie
|
|
(define (test-aanmaak)
|
|
(define pac (maak-pacman 5 2))
|
|
(define pos (pac 'positie))
|
|
(check-eq? (pos 'rij) 5 "Start rij moet 5 zijn")
|
|
(check-eq? (pos 'kolom) 2 "Start kolom moet 2 zijn"))
|
|
|
|
;; Test richting
|
|
(define (test-richting)
|
|
(define pac (maak-pacman 5 2))
|
|
(check-eq? (pac 'richting) 'rechts "Startrichting moet rechts zijn")
|
|
((pac 'richting!) 'links)
|
|
(check-eq? (pac 'richting) 'links "Richting moet links zijn na richting!"))
|
|
|
|
;; Test beweeg!
|
|
(define (test-beweeg)
|
|
(define pac (maak-pacman 5 2))
|
|
((pac 'beweeg!) 0 1)
|
|
(define pos (pac 'positie))
|
|
(check-eq? (pos 'kolom) 3 "Kolom moet 3 zijn na 1 stap rechts")
|
|
(check-eq? (pos 'rij) 5 "Rij ongewijzigd na horizontale beweging"))
|
|
|
|
;; Test meerdere bewegingen
|
|
(define (test-meerdere-bewegingen)
|
|
(define pac (maak-pacman 5 5))
|
|
((pac 'beweeg!) -1 0)
|
|
((pac 'beweeg!) 0 1)
|
|
(define pos (pac 'positie))
|
|
(check-eq? (pos 'rij) 4 "Rij moet 4 zijn na omhoog")
|
|
(check-eq? (pos 'kolom) 6 "Kolom moet 6 zijn na rechts"))
|
|
|
|
(define (test)
|
|
(run-test test-aanmaak "Pac-Man: aanmaak en startpositie")
|
|
(run-test test-richting "Pac-Man: richting")
|
|
(run-test test-beweeg "Pac-Man: beweeg!")
|
|
(run-test test-meerdere-bewegingen "Pac-Man: meerdere bewegingen"))))
|