Fix if-let, add when-let
This commit is contained in:
21
test.scm
21
test.scm
@@ -31,6 +31,21 @@
|
||||
(define-test "test"
|
||||
(assert-equal 'a (if-not #f 'a 'b))))
|
||||
|
||||
(define-test-suite "if-let"
|
||||
(define-test "positive case"
|
||||
(assert-equal 2 (if-let ([v (or #f 1)]) (+ v 1) 3)))
|
||||
(define-test "negative case"
|
||||
(assert-equal 3 (if-let ([v (and #f 1)]) (+ v 1) 3)))
|
||||
(define-test "variable not shadowed in false arm"
|
||||
(define v 3)
|
||||
(assert-equal 3 (if-let ([v #f]) (+ v 1) v))))
|
||||
|
||||
(define-test-suite "when-let"
|
||||
(define-test "positive case"
|
||||
(assert-equal 2 (when-let ([v (or #f 1)]) (+ v 1))))
|
||||
(define-test "negative case"
|
||||
(assert-equal (when #f #t) (when-let ([v (and #f 1)]) (+ v 1)))))
|
||||
|
||||
(define-test-suite "for"
|
||||
(define-test "permutation"
|
||||
(define value (for ([i (iota 2)]
|
||||
@@ -38,12 +53,6 @@
|
||||
(cons i j)))
|
||||
(assert-equal '((0 . 0) (0 . 1) (1 . 0) (1 . 1)) value)))
|
||||
|
||||
(define-test-suite "if-let"
|
||||
(define-test "positive-case"
|
||||
(assert-equal 2 (if-let ([v (or #f 1)]) (+ v 1))))
|
||||
(define-test "negative-case"
|
||||
(assert-equal #f (if-let ([v (and #f 1)]) (+ v 1)))))
|
||||
|
||||
(define-test-suite "partial"
|
||||
(define-test "test"
|
||||
(define value (partial / 2))
|
||||
|
||||
Reference in New Issue
Block a user