| (require 'member_pointer) |
| |
| (define (check-eq? msg expected actual) |
| (if (not (= expected actual)) |
| (error "Error " msg ": expected " expected " got " actual))) |
| |
| (define area-pt (areapt)) |
| (define perim-pt (perimeterpt)) |
| |
| (define s (new-Square 10)) |
| |
| (check-eq? "Square area" 100.0 (do-op s area-pt)) |
| (check-eq? "Square perim" 40.0 (do-op s perim-pt)) |
| |
| (check-eq? "Square area" 100.0 (do-op s (areavar))) |
| (check-eq? "Square perim" 40.0 (do-op s (perimetervar))) |
| |
| ;; Set areavar to return value of function |
| (areavar perim-pt) |
| (check-eq? "Square perim" 40 (do-op s (areavar))) |
| |
| (check-eq? "Square area" 100.0 (do-op s (AREAPT))) |
| (check-eq? "Square perim" 40.0 (do-op s (PERIMPT))) |
| |
| (define test (NULLPT)) |
| |
| (perimetervar (AREAPT)) |
| (check-eq? "Square area" 100.0 (do-op s (perimetervar))) |