| (define-macro (check test) | |
| `(if (not ,test) (error "Error in test" ',test))) | |
| (b "hello") | |
| (check (string=? (b) "hello")) | |
| (define sa (new-A)) | |
| (A-x-set sa 5) | |
| (a sa) | |
| (check (= (A-x-get (a)) 5)) | |
| (ap sa) | |
| (check (= (A-x-get (ap)) 5)) | |
| (A-x-set sa 10) | |
| (check (= (A-x-get (ap)) 10)) | |
| (define sa2 (new-A)) | |
| (A-x-set sa2 -4) | |
| (cap sa2) | |
| (check (= (A-x-get (cap)) -4)) | |
| (A-x-set sa2 -7) | |
| (check (= (A-x-get (cap)) -7)) | |
| (check (= (A-x-get (ar)) 5)) | |
| (ar sa2) | |
| (check (= (A-x-get (ar)) -7)) | |
| (x 4) | |
| (check (= (x) 4)) | |
| (exit 0) |