Files
Pacman-Project/pacman-project/tests/test-pacman.rkt
joren 4f8719f813 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>
2026-03-23 10:54:43 +01:00

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"))))