racket/pkgs/racket-test/tests/syntax/flatten-begin.rkt
Matthew Flatt 2d4f3e2ac9 remove the "racket-pkgs" directory layer
The layer is now redundant, since everything left in "pkgs" is in the
"racket-pkgs" category.
2014-12-08 05:22:59 -07:00

30 lines
1.2 KiB
Racket

#lang racket/base
;; Tests for syntax/flatten-begin
(require rackunit
rackunit/text-ui
syntax/flatten-begin
(for-meta -2 (only-in racket/base begin)))
(define-binary-check (check-equal-datum? actual expected)
(check-equal? (map syntax->datum actual)
(map syntax->datum expected)))
(define-test-suite flatten-all-begins-tests
(check-exn exn:fail:syntax? (λ () (flatten-all-begins #'(1 2 3))))
(check-equal-datum? (flatten-all-begins #'(begin 1 2 3))
(list #'1 #'2 #'3))
(check-equal-datum? (flatten-all-begins (syntax-shift-phase-level #'(begin 1 2 3) 2))
(list #'1 #'2 #'3))
(check-equal-datum? (flatten-all-begins #'(begin (begin 1 2) 3))
(list #'1 #'2 #'3))
(check-equal-datum? (flatten-all-begins #'(begin (begin 1 2) (+ 3 4) 5))
(list #'1 #'2 #'(+ 3 4) #'5))
(check-equal-datum? (flatten-all-begins #'(begin (begin 1 (begin 2) 3) 4))
(list #'1 #'2 #'3 #'4))
(check-equal-datum? (flatten-all-begins #'(begin (begin 1 2) (begin 3) 4))
(list #'1 #'2 #'3 #'4)))
(run-tests flatten-all-begins-tests)