bkyk8rc3zvpnsf5inmcqq4n3k98cv6hj-my-site-hyper-literate-git.test.suzanne.soy-0.0.1

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

text-collect.rkt (3382B)


      1 #lang racket/base
      2 
      3 (require tests/eli-tester scribble/text/syntax-utils)
      4 
      5 (provide begin/collect-tests)
      6 (module+ main (begin/collect-tests))
      7 (define (begin/collect-tests)
      8   (test
      9 
     10    ;; begin/collect scope etc
     11    (begin/collect 1) => 1
     12    (begin/collect 1 2 3) => '(1 2 3)
     13    (begin/collect) => '()
     14    (begin/collect (define x 1) x) => 1
     15    (begin/collect (define x 1)) => '()
     16    (begin/collect (define x 1) x x x) => '(1 1 1)
     17    (begin/collect (define x 1) (define y 2) x y x y) => '(1 2 1 2)
     18    (begin/collect (define x 1) x (define y 2) y) => '(1 2)
     19    (begin/collect (define x 1) x (define y 2)) => '(1)
     20    (begin/collect (define x 1) x x (define y 2) y y) => '(1 1 2 2)
     21    (begin/collect (define x 1) x (define x 2) x) => '(1 2)
     22    (begin/collect (define x 1) x x (define x 2) x x) => '(1 1 2 2)
     23    (begin/collect (define (x) y) (define y 1) (x) (x) (x)) => '(1 1 1)
     24    (begin/collect (define x 1) x (define y 2) x) => '(1 1)
     25    (begin/collect (define x 1) x x (define y 2) x x) => '(1 1 1 1)
     26    (begin/collect (define x 1) x x (define y x) y y) => '(1 1 1 1)
     27    (begin/collect (define (x) y) (define y 1) (x) (x)
     28                   (define (x) y) (define y 2) (x) (x))
     29    => '(1 1 2 2)
     30    (begin/collect (define-syntax-rule (DEF x y) (define x y)) (DEF x 1) x x)
     31    => '(1 1)
     32    (begin/collect (define-syntax-rule (DEF x y) (define x y)) 1 (DEF x 2) x)
     33    => '(1 2)
     34    (begin/collect (define-syntax-rule (DEF x y) (define x y))
     35                   (DEF x 1) x x
     36                   (DEF x 2) x x)
     37    => '(1 1 2 2)
     38    (begin/collect (define (x) y)
     39                   (define-syntax-rule (DEF x y) (define x y))
     40                   (DEF y 1) (x) (x)
     41                   (DEF y 2) (x) (x))
     42    => '(1 1 1 1)
     43    (let ([y 1]) (begin/collect y y (define x y) x y x)) => '(1 1 1 1 1)
     44    (let ([y 1]) (begin/collect y y (define y 2) y y)) => '(1 1 2 2)
     45    (let ([y 1]) (begin/collect (define (x) y) (x) (x))) => '(1 1)
     46    (let ([y 1]) (begin/collect (define (x) y) (define y 2) (x) (x))) => '(2 2)
     47    (let ([y 1]) (begin/collect (define (x) y) (x) (x) (define y 2) y y))
     48    => '(1 1 2 2)
     49    (let ([y 1]) (begin/collect (define (x) y) (x) (x) (define y 2) y y (x)))
     50    => '(1 1 2 2 1)
     51    (let ([y 1]) (begin/collect (define (x) y) (x) (x) (define y 2) (x) y y))
     52    => '(1 1 1 2 2)
     53    (begin/collect (begin (define (x) y)
     54                          (define-syntax-rule (DEF x y) (define x y))
     55                          (define y 2))
     56                   (x) (x))
     57    => '(2 2)
     58    (begin/collect (define (x) y)
     59                   (begin (define-syntax-rule (DEF x y) (define x y))
     60                          (define y 2))
     61                   (x) (x))
     62    => '(2 2)
     63    (begin/collect (define (x) y)
     64                   (define-syntax-rule (DEF x y) (define x y))
     65                   (begin (define y 2))
     66                   (x) (x))
     67    => '(2 2)
     68    (begin/collect (begin (begin (begin (define (x) y))
     69                                 (begin (define-syntax-rule (DEF x y)
     70                                          (define x y))))
     71                          (begin (begin (define y 2))
     72                                 (begin (x)))
     73                          (begin (x))))
     74    => '(2 2)
     75    (begin/collect 1
     76                   (define (f x #:< [< "<"] #:> [> ">"]) (list < x >))
     77                   (f 1)
     78                   (f #:< "[" 2)
     79                   (f 3 #:> "]" #:< "["))
     80    => '(1 ("<" 1 ">") ("[" 2 ">") ("[" 3 "]"))
     81 
     82    ))