(import (scheme base) (only (csc testing) assert-equal test) (csc match)) (test match-cond (assert-equal 3 (match 3 (0 0) (1 1) (2 2) (3 3) (_ 4)))) (test match-list (assert-equal 2 (match '(1 2 3) ('() 0) ((1 2) 1) ((1 2 3) 2) ((1 2 3 4) 3) (_ 4)))) (test match-binding (assert-equal 2 (match '(1 2 3) ((1 x 3) x)))) (test match-destructuring (assert-equal 1 (match '(1 2 3) ('() 0) ((head . _) head)))) (test match-ignore (assert-equal 2 (match '(1 2 3) ((_ _ _ _) 0) ((2 _ _) 1) ((1 _ _) 2) (_ 3)))) (test match-improper-list (assert-equal 2 (match '(1 2 3) ((2 . _) 1) ((1 . x) (car x)) (_ 3))))