| ;; The SWIG modules have "passive" Linkage, i.e., they don't generate |
| ;; Guile modules (namespaces) but simply put all the bindings into the |
| ;; current module. That's enough for such a simple test. |
| (dynamic-call "scm_init_overload_complicated_module" (dynamic-link "./liboverload_complicated.so")) |
| |
| (define-macro (check form) |
| `(if (not ,form) |
| (error "Check failed: " ',form))) |
| |
| (define (=~ a b) |
| (< (abs (- a b)) 1e-8)) |
| |
| ;; Check first method |
| (check (=~ (foo 1 2 "bar" 4) 15)) |
| |
| ;; Check second method |
| (check (=~ (foo 1 2) 4811.4)) |
| (check (=~ (foo 1 2 3.2) 4797.2)) |
| (check (=~ (foo 1 2 3.2 #\Q) 4798.2)) |
| |
| (exit 0) |