kzccm1d4if10m2xaz1wqy3xar821pp1r-my-site-anaphoric-git.test.suzanne.soy-0.0.1

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

acond-test.rkt (2590B)


      1 #lang racket
      2 
      3 (require anaphoric/acond
      4          rackunit)
      5 
      6 (define lst '(x y z a b c))
      7 (define seen 0)
      8 
      9 ;; With else branch
     10 (check-equal? (acond
     11                 [(member 'a lst) (set! seen (add1 seen))
     12                                  (check-equal? it '(a b c))
     13                                  'seen-01]
     14                 [(member 'b lst) (fail "acond selected wrong branch")]
     15                 [else (fail "acond selected wrong branch")])
     16               'seen-01)
     17 (check-equal? seen 1) ;; multiple body statements
     18 
     19 (check-equal? (acond
     20                 [(member 'absent lst) (fail "acond selected wrong branch")]
     21                 [(member 'b lst) (begin (check-equal? it '(b c))
     22                                         'seen-02)]
     23                 [else (fail "acond selected wrong branch")])
     24               'seen-02)
     25 
     26 (check-equal? (acond
     27                 [(member 'absent lst) (fail "acond selected wrong branch")]
     28                 [(member 'absent2 lst) (fail "acond selected wrong branch")]
     29                 [else 'seen-03])
     30               'seen-03)
     31 
     32 ;; Just else branch
     33 (check-equal? (acond
     34                 [else 'seen-04])
     35               'seen-04)
     36 
     37 ;; Multiple body statements
     38 
     39 (check-equal? (acond
     40                 [(member 'absent lst) (fail "acond selected wrong branch")]
     41                 [(member 'absent2 lst) (fail "acond selected wrong branch")]
     42                 [else (set! seen (add1 seen))
     43                       'seen-05])
     44               'seen-05)
     45 (check-equal? seen 2)
     46 
     47 ;; Without else branch
     48 (check-equal? (acond
     49                 [(member 'a lst) (set! seen (add1 seen))
     50                                  (check-equal? it '(a b c))
     51                                  'seen-06]
     52                 [(member 'b lst) (fail "acond selected wrong branch")])
     53               'seen-06)
     54 (check-equal? seen 3)
     55 
     56 (check-equal? (acond
     57                 [(member 'absent lst) (fail "acond selected wrong branch")]
     58                 [(member 'b lst) (begin (check-equal? it '(b c))
     59                                         'seen-07)])
     60               'seen-07)
     61 
     62 (check-equal? (acond
     63                 [(member 'absent lst) (fail "acond selected wrong branch")]
     64                 [(member 'absent2 lst) (fail "acond selected wrong branch")])
     65               (void))
     66 
     67 ;; No branch
     68 (check-equal? (acond)
     69               (void))
     70 
     71 ;; Single branch
     72 (check-equal? (acond
     73                 [(member 'a lst) (begin (check-equal? it '(a b c))
     74                                         'seen-09)])
     75               'seen-09)
     76 
     77 (check-equal? (acond
     78                 [(member 'absent lst) (fail "acond selected wrong branch")])
     79               (void))