#lang r7rs (define-library () (import (scheme base) (pp1 tests) (snake-wpo adt-positie)) (export test) (begin (define (test-oefening-1) ;; We maken twee aparte positie-objecten die een verschillende y-oordinaat hebben (define p1 (maak-positie 100 200)) (define p2 (maak-positie 100 600)) ;; We controleren eerst dat beiden een apart object zijn (check (not (eq? p1 p2)) "Beide positie-objecten mogen niet eq?-gelijk zijn") ;; We controleren of ze verschillend zijn met de eigen 'vergelijk?-operatie... (check (not ((p1 'vergelijk?) p2)) "Beide posities mogen niet gelijk zijn aan elkaar!") ;; We object `p2` aan zodanig dat `p1` en `p2` dezelfde `x` en `y` hebben. ((p2 'y!) 200) ;; En we doen de controle met de 'vergelijk?-operatie opnieuw, maar deze keer moeten ze gelijk zijn aan elkaar (check ((p1 'vergelijk?) p2) "Beide posities moeten gelijk zijn aan elkaar!")) (define (test) (run-test test-oefening-1 "Oefening 1")))) ;; Voor de test uit te voeren voer je onderstaande code uit in de REPL: ;; ;; (test)