(import (scheme base) (only (csc encoding) encode) (only (csc testing) assert-equal test) (csc linker)) (test link-if (assert-equal (encode '((const 5) (const 1) (if 2) (const 5) add exit)) (link '((const 5) (const 1) (if "label1") (const 5) add (label "label1") exit)))) (test link-backwards-if (assert-equal (encode '((const 10) (const 5) add (if -3))) (link '((const 10) (label "label1") (const 5) add (if "label1"))))) (test link-call (assert-equal (encode '((call 3) (const 10) exit (const 5) exit)) (link '((call "label1") (const 10) (label "label0") exit (label "label1") (const 5) exit))))