www

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

test-with-update-only.rkt (3807B)


      1 #lang type-expander
      2 
      3 (require phc-adt phc-toolkit)
      4 (adt-init)
      5 
      6 ;; Correctly gave an error:
      7 (check-equal?: (with!! (tagged foo [b 'b1]) : (U (foo b)))
      8                : (tagged foo [b 'b1])
      9                (tagged foo [b 'b1]))
     10 ;(check-equal?: (with!! (tagged foo [b 'b1]) : (U (foo b)) [a 'a1])
     11 ;               : (tagged foo [a 'a1] [b 'b1])
     12 ;               (tagged foo [a 'a1] [b 'b1]))
     13 ;(check-equal?: (with!! (tagged foo [b 'b1]) : (U (foo b)) [a 'a1] [c 'c1])
     14 ;               : (tagged foo [a 'a1] [b 'b1] [c 'c1])
     15 ;               (tagged foo [a 'a1] [b 'b1] [c 'c1]))
     16 ;(check-equal?: (with!! (tagged foo [b 'b1]) : (U (foo b)) [a 'a1] [b 'b1-update])
     17 ;               : (tagged foo [a 'a1] [b 'b1-update])
     18 ;               (tagged foo [a 'a1] [b 'b1-update]))
     19 (check-equal?: (with!! (tagged foo [b 'b1]) : (U (foo b)) [b 'b1-update])
     20                : (tagged foo [b 'b1-update])
     21                (tagged foo [b 'b1-update]))
     22 ;(check-equal?: (with!! (tagged foo [b 'b1]) : (U (foo b)) [a 'a1] [b 'b1-update] [c 'c1])
     23 ;               : (tagged foo [a 'a1] [b 'b1-update] [c 'c1])
     24 ;               (tagged foo [a 'a1] [b 'b1-update] [c 'c1]))
     25 
     26 (check-equal?: (with!! (tagged foo [b 'b1] [d 'd1]) : (U (foo b d)))
     27                : (tagged foo [b 'b1] [d 'd1])
     28                (tagged foo [b 'b1] [d 'd1]))
     29 ;(check-equal?: (with!! (tagged foo [b 'b1] [d 'd1]) : (U (foo b d)) [a 'a1])
     30 ;               : (tagged foo [a 'a1] [b 'b1] [d 'd1])
     31 ;               (tagged foo [a 'a1] [b 'b1] [d 'd1]))
     32 ;(check-equal?: (with!! (tagged foo [b 'b1] [d 'd1]) : (U (foo b d)) [a 'a1] [c 'c1])
     33 ;               : (tagged foo [a 'a1] [b 'b1] [c 'c1] [d 'd1])
     34 ;               (tagged foo [a 'a1] [b 'b1] [c 'c1] [d 'd1]))
     35 ;(check-equal?: (with!! (tagged foo [b 'b1] [d 'd1]) : (U (foo b d)) [a 'a1] [b 'b1-update])
     36 ;               : (tagged foo [a 'a1] [b 'b1-update] [d 'd1])
     37 ;               (tagged foo [a 'a1] [b 'b1-update] [d 'd1]))
     38 (check-equal?: (with!! (tagged foo [b 'b1] [d 'd1]) : (U (foo b d)) [b 'b1-update])
     39                : (tagged foo [b 'b1-update] [d 'd1])
     40                (tagged foo [b 'b1-update] [d 'd1]))
     41 ;(check-equal?: (with!! (tagged foo [b 'b1] [d 'd1]) : (U (foo b d)) [a 'a1] [b 'b1-update] [c 'c1])
     42 ;               : (tagged foo [a 'a1] [b 'b1-update] [c 'c1] [d 'd1])
     43 ;               (tagged foo [a 'a1] [b 'b1-update] [c 'c1] [d 'd1]))
     44 
     45 (check-equal?: (with!! (tagged foo [b 'b1] [d 'd1]) : (U (foo b d) (foo a d)))
     46                : (tagged foo [b 'b1] [d 'd1])
     47                (tagged foo [b 'b1] [d 'd1]))
     48 ;(check-equal?: (with!! (tagged foo [b 'b1] [d 'd1]) : (U (foo b d) (foo a d)) [a 'a1])
     49 ;               : (tagged foo [a 'a1] [b 'b1] [d 'd1])
     50 ;               (tagged foo [a 'a1] [b 'b1] [d 'd1]))
     51 ;(check-equal?: (with!! (tagged foo [b 'b1] [d 'd1]) : (U (foo b d) (foo a d)) [a 'a1] [c 'c1])
     52 ;               : (tagged foo [a 'a1] [b 'b1] [c 'c1] [d 'd1])
     53 ;               (tagged foo [a 'a1] [b 'b1] [c 'c1] [d 'd1]))
     54 ;(check-equal?: (with!! (tagged foo [b 'b1] [d 'd1]) : (U (foo b d) (foo a d)) [a 'a1] [b 'b1-update])
     55 ;               : (tagged foo [a 'a1] [b 'b1-update] [d 'd1])
     56 ;               (tagged foo [a 'a1] [b 'b1-update] [d 'd1]))
     57 ;(check-equal?: (with!! (tagged foo [b 'b1] [d 'd1]) : (U (foo b d) (foo a d)) [b 'b1-update])
     58 ;               : (tagged foo [b 'b1-update] [d 'd1])
     59 ;               (tagged foo [b 'b1-update] [d 'd1]))
     60 ;(check-equal?: (with!! (tagged foo [b 'b1] [d 'd1]) : (U (foo b d) (foo a d)) [a 'a1] [b 'b1-update] [c 'c1])
     61 ;               : (tagged foo [a 'a1] [b 'b1-update] [c 'c1] [d 'd1])
     62 ;               (tagged foo [a 'a1] [b 'b1-update] [c 'c1] [d 'd1]))
     63 (check-equal?: (with!! (tagged foo [b 'b1] [d 'd1]) : (U (foo b d) (foo a d)) [d 'd1-update])
     64                : (tagged foo [b 'b1] [d 'd1-update])
     65                (tagged foo [b 'b1] [d 'd1-update]))