(module misc mzscheme (require "../misc.ss" (planet "test.ss" ("schematics" "schemeunit.plt" 1))) (provide misc-test) (define misc-test (make-test-suite "misc.ss" (make-test-case "map/separated" (let ((sep (lambda () 's))) (assert-equal? (map/separated values sep '()) '()) (assert-equal? (map/separated values sep '(a)) '(a)) (assert-equal? (map/separated values sep '(a b c d e)) '(a s b s c s d s e)))) (make-test-case "for-each/separated" (let ((mailbox null) (n 0)) (let ((add (lambda (x) (set! mailbox (cons x mailbox)))) (sep (lambda () (set! mailbox (cons n mailbox)) (set! n (add1 n))))) (for-each/separated add sep '(a b c d e)) (assert-equal? (reverse mailbox) '(a 0 b 1 c 2 d 3 e))))) (make-test-case "format-byte-count" (assert-equal? (format-byte-count 12) "12 bytes") (assert-equal? (format-byte-count 20000) "20 KB") (assert-equal? (format-byte-count 20000000) "20 MB") (assert-equal? (format-byte-count 20000000000) "20 GB")) (make-test-case "hash-table-put-fresh!" (let ((h (make-hash-table))) (hash-table-put! h 'a 1) (hash-table-put-fresh! h 'b 2) (assert-exn exn:fail? (lambda () (hash-table-put-fresh! h 'a 3))))))) )