| (if (not (string=? (foo 3) "foo:int")) |
| (error "foo(int)")) |
| |
| (if (not (string=? (foo 3.01) "foo:double")) |
| (error "foo(double)")) |
| |
| (if (not (string=? (foo "hello") "foo:char *")) |
| (error "foo(char *)")) |
| |
| (let ((f (new-Foo)) |
| (b (new-Bar)) |
| (s (new-Spam))) |
| (if (not (string=? (foo f) "foo:Foo *")) |
| (error "foo(Foo *)")) |
| (if (not (string=? (foo b) "foo:Bar *")) |
| (error "foo(Bar *)")) |
| ;; Test member functions |
| (if (not (string=? (Spam-foo s 3) "foo:int")) |
| (error "Spam::foo(int)")) |
| (if (not (string=? (Spam-foo s 3.01) "foo:double")) |
| (error "Spam::foo(double)")) |
| (if (not (string=? (Spam-foo s "hello") "foo:char *")) |
| (error "Spam::foo(char *)")) |
| (if (not (string=? (Spam-foo s f) "foo:Foo *")) |
| (error "Spam::foo(Foo *)")) |
| (if (not (string=? (Spam-foo s b) "foo:Bar *")) |
| (error "Spam::foo(Bar *)")) |
| ;; Test static member functions |
| (if (not (string=? (Spam-bar 3) "bar:int")) |
| (error "Spam::bar(int)")) |
| (if (not (string=? (Spam-bar 3.01) "bar:double")) |
| (error "Spam::bar(double)")) |
| (if (not (string=? (Spam-bar "hello") "bar:char *")) |
| (error "Spam::bar(char *)")) |
| (if (not (string=? (Spam-bar f) "bar:Foo *")) |
| (error "Spam::bar(Foo *)")) |
| (if (not (string=? (Spam-bar b) "bar:Bar *")) |
| (error "Spam::bar(Bar *)")) |
| ;; Test constructors |
| (if (not (string=? (Spam-type-get (new-Spam)) "none")) |
| (error "Spam()")) |
| (if (not (string=? (Spam-type-get (new-Spam 3)) "int")) |
| (error "Spam(int)")) |
| (if (not (string=? (Spam-type-get (new-Spam 3.4)) "double")) |
| (error "Spam(double)")) |
| (if (not (string=? (Spam-type-get (new-Spam "hello")) "char *")) |
| (error "Spam(char *)")) |
| (if (not (string=? (Spam-type-get (new-Spam b)) "Bar *")) |
| (error "Spam(Bar *)"))) |
| |
| (exit 0) |