(require-extension test) (import test) (require-extension box) (import box) (test-group "Box Mutable" (let ([tbox #f]) (test-assert (make-box (void))) (set! tbox (make-box (void))) (box-set! tbox #t) (test-assert (box-ref tbox)) (test-assert (box? tbox)) (test-assert (not (box? 3))) ) ) (test-group "Box Immutable" (let ([tbox #f]) (test-assert (make-box #f #t)) (set! tbox (make-box #f #t)) (test-assert (not (box-ref tbox))) (test-error (box-set! tbox #t)) ) ) (test-group "Box References" (let ([var (void)] [ref #f]) (test-assert (make-box-variable var)) (set! ref (make-box-variable var)) (test (void) (box-ref ref)) (box-set! ref #t) (test-assert (box-ref ref)) (test-assert var) (test-assert (box? ref)) (test-assert (box-variable? ref)) (test-assert (not (box-location? ref))) (test-assert (not (box? 3))) ) )