www

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

test-constructor2.rkt (1230B)


      1 #lang typed/racket
      2 
      3 (require phc-adt phc-toolkit type-expander typed/rackunit)
      4 (adt-init)
      5   
      6 (check-equal?: (constructor-values
      7                 (ann (constructor a 1 "x")
      8                      ;; TODO: Make a (Constructor-AnyTag …) type expander.
      9                      (tagged a [values (List Number String)])))
     10                (list 1 "x"))
     11 (check-equal?: (constructor-values
     12                 (ann (constructor a 1 "x")
     13                      (tagged a [values Any])))
     14                (list 1 "x"))
     15 (check-equal?: (constructor-values
     16                 (ann (constructor a 1 "x")
     17                      (constructor a Number String)))
     18                (list 1 "x"))
     19 (check-equal?: (constructor-values
     20                 (ann (constructor b)
     21                      (constructor b)))
     22                (list))
     23 (check-equal?: (constructor-values
     24                 (ann (constructor c 'd)
     25                      (constructor c Symbol)))
     26                '(d))
     27 (check-equal?: (ann (constructor c 2 "y")
     28                     (constructor c Number String))
     29                (constructor c 2 "y"))
     30 (check-not-equal?: (constructor d 2 "y")
     31                    (constructor d 2 "y" 'z))
     32 (check-not-equal?: (constructor e 2 "y")
     33                    (constructor F 2 "y"))