www

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

test-variant.rkt (861B)


      1 #lang typed/racket
      2 
      3 (require phc-adt phc-toolkit type-expander typed/rackunit)
      4 (adt-init)
      5   
      6 (define-variant v1 [x Number String] [y String Number] [z Number String])
      7 (check-equal?: (ann (constructor x 1 "a")
      8                     (U [constructor w Number String]
      9                        [constructor x Number String]
     10                        [constructor y String Number]))
     11                (constructor x 1 "a"))
     12 (check-equal?: (constructor x 1 "a")
     13                (constructor x 1 "a"))
     14 (check-equal?: (ann (constructor x 1 "a") v1)
     15                (constructor x 1 "a"))
     16 (check-equal?: (ann (constructor x 1 "a") v1)
     17                (ann (constructor x 1 "a") v1))
     18 (check-not-equal?: (ann (constructor x 2 "b") v1)
     19                    (ann (constructor y "b" 2) v1))
     20 (check-not-equal?: (ann (constructor x 3 "c") v1)
     21                    (ann (constructor z 3 "c") v1))