www

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

test-type-superscripts.rkt (5211B)


      1 #lang typed/racket
      2 
      3 (require xlist
      4          type-expander
      5          typed/rackunit)
      6 
      7 ;; Should fail (for now)
      8 ;(test-begin
      9 ; "(xlist 1 2 3 4 5)"
     10 ; (ann '() (xlist))
     11 ; (ann '(1) (xlist 1¹))
     12 ; (ann '(1 2) (xlist 1¹ 2¹))
     13 ; (ann '(1 2 3) (xlist 1¹ 2¹ 3¹))
     14 ; (ann '(1 2 3 4) (xlist 1¹ 2¹ 3¹ 4¹))
     15 ; (ann '(1 2 3 4 5) (xlist 1¹ 2¹ 3¹ 4¹ 5¹))
     16 ; (void))
     17 
     18 ;; Should fail:
     19 ; (xlist ^ 1)
     20 ; (xlist ^ 1 +)
     21 ; (xlist ^ 1 *)
     22 ; (xlist +)
     23 ; (xlist *)
     24 
     25 ;(test-begin
     26 ; "(xlist 1 *) and (xlist 1 +) with or witout ^"
     27 ; (ann '() (xlist 1 *))
     28 ; (ann '(1) (xlist 1 *))
     29 ; (ann '(1 1) (xlist 1 *))
     30 ; (ann '(1 1 1) (xlist 1 *))
     31 ;
     32 ; ; NOT (ann '() (xlist 1 +))
     33 ; (ann '(1) (xlist 1 +))
     34 ; (ann '(1 1) (xlist 1 +))
     35 ; (ann '(1 1 1) (xlist 1 +))
     36 ;
     37 ; (ann '() (xlist 1 ^ *))
     38 ; (ann '(1) (xlist 1 ^ *))
     39 ; (ann '(1 1) (xlist 1 ^ *))
     40 ; (ann '(1 1 1) (xlist 1 ^ *))
     41 ;
     42 ; ; NOT (ann '() (xlist 1 ^ +))
     43 ; (ann '(1) (xlist 1 ^ +))
     44 ; (ann '(1 1) (xlist 1 ^ +))
     45 ; (ann '(1 1 1) (xlist 1 ^ +))
     46 ; (void))
     47 
     48 
     49 (test-begin
     50  "(xlist Number⃰) and (xlist Number⁺) with or without space"
     51  (ann '() (xlist Number⃰))
     52  (ann '(1) (xlist Number⃰))
     53  (ann '(1 1) (xlist Number⃰))
     54  (ann '(1 1 1) (xlist Number⃰))
     55 
     56  ; NOT (ann '() (xlist Number⁺))
     57  (ann '(1) (xlist Number⁺))
     58  (ann '(1 1) (xlist Number⁺))
     59  (ann '(1 1 1) (xlist Number⁺))
     60 
     61  (ann '() (xlist Number ⃰))
     62  (ann '(1) (xlist Number ⃰))
     63  (ann '(1 1) (xlist Number ⃰))
     64  (ann '(1 1 1) (xlist Number ⃰))
     65 
     66  ; NOT (ann '() (xlist Number ⁺))
     67  (ann '(1) (xlist 1 ⁺))
     68  (ann '(1 1) (xlist 1 ⁺))
     69  (ann '(1 1 1) (xlist 1 ⁺))
     70  (void))
     71 
     72 (test-begin
     73  "(xlist Number⃰) and (xlist Number +) something after"
     74  (ann '() (xlist Number⃰ String⃰))
     75  (ann '(1) (xlist Number⃰ String⃰))
     76  (ann '("b") (xlist Number⃰ String⃰))
     77  (ann '(1 "b") (xlist Number⃰ String⃰))
     78  (ann '(1 1 1 "b" "b") (xlist Number⃰ String⃰))
     79  (ann '(1 1 1) (xlist Number⃰ String⃰))
     80  (ann '("b" "b" "b") (xlist Number⃰ String⃰))
     81 
     82  ; NOT (ann '() (xlist Number⁺ String⁺))
     83  ; NOT (ann '(1) (xlist Number⁺ String⁺))
     84  ; NOT (ann '("b") (xlist Number⁺ String⁺))
     85  (ann '(1 "b") (xlist Number⁺ String⁺))
     86  (ann '(1 1 "b") (xlist Number⁺ String⁺))
     87  (ann '(1 "b" "b") (xlist Number⁺ String⁺))
     88 
     89  (ann '() (xlist Number ⃰ String ⃰))
     90  (ann '(1) (xlist Number ⃰ String ⃰))
     91  (ann '("b") (xlist Number ⃰ String ⃰))
     92  (ann '(1 "b") (xlist Number ⃰ String ⃰))
     93  (ann '(1 1 1 "b" "b") (xlist Number ⃰ String ⃰))
     94  (ann '(1 1 1) (xlist Number ⃰ String ⃰))
     95  (ann '("b" "b" "b") (xlist Number ⃰ String ⃰))
     96 
     97  ; NOT (ann '() (xlist Number ⁺ String ⁺))
     98  ; NOT (ann '(1) (xlist Number ⁺ String ⁺))
     99  ; NOT (ann '("b") (xlist Number ⁺ String ⁺))
    100  (ann '(1 "b") (xlist Number ⁺ String ⁺))
    101  (ann '(1 1 "b") (xlist Number ⁺ String ⁺))
    102  (ann '(1 "b" "b") (xlist Number ⁺ String ⁺))
    103  (void))
    104 
    105 (test-begin
    106  "(xlist Numberⁿ⁺) with or without space"
    107  (ann '(1 1 1) (xlist Number⁺))
    108  (ann '(1 1 1) (xlist Number⁰⁺))
    109  (ann '(1 1 1) (xlist Number¹⁺))
    110  (ann '(1 1 1) (xlist Number²⁺))
    111  (ann '(1 1 1) (xlist Number³⁺))
    112  (ann '(1 1 1) (xlist Number ⁺))
    113  (ann '(1 1 1) (xlist Number ⁰⁺))
    114  (ann '(1 1 1) (xlist Number ¹⁺))
    115  (ann '(1 1 1) (xlist Number ²⁺))
    116  (ann '(1 1 1) (xlist Number ³⁺))
    117  (void))
    118 
    119 (test-begin
    120  "(xlist Numberⁱ⁻ⁿ) without space"
    121  (ann '() (xlist Number⁻))
    122  (ann '(1 1 1) (xlist Number⁻))
    123  (ann '() (xlist Number⁰⁻))
    124  (ann '(1 1 1) (xlist Number⁰⁻))
    125  (ann '(1 1 1) (xlist Number¹⁻))
    126  (ann '(1 1 1) (xlist Number²⁻))
    127  (ann '(1 1 1) (xlist Number³⁻))
    128  ;(ann '(1 1 1) (xlist Number ^ - ∞))
    129  ;(ann '(1 1 1) (xlist Number ^ 0 - ∞))
    130  ;(ann '(1 1 1) (xlist Number ^ 1 - ∞))
    131  ;(ann '(1 1 1) (xlist Number ^ 2 - ∞))
    132  ;(ann '(1 1 1) (xlist Number ^ 3 - ∞))
    133  (ann '(1 1 1) (xlist Number⁰⁻⁵))
    134  (ann '(1 1 1) (xlist Number³⁻⁵))
    135  (ann '(1 1 1 1) (xlist Number⁰⁻⁵))
    136  (ann '(1 1 1 1) (xlist Number³⁻⁵))
    137  (ann '(1 1 1 1 1) (xlist Number⁰⁻⁵))
    138  (ann '(1 1 1 1 1) (xlist Number⁰⁻⁵))
    139  (void))
    140 
    141 (test-begin
    142  "(xlist Number ⁱ⁻ⁿ) with space"
    143  (ann '() (xlist Number ⁻))
    144  (ann '(1 1 1) (xlist Number ⁻))
    145  (ann '() (xlist Number ⁰⁻))
    146  (ann '(1 1 1) (xlist Number ⁰⁻))
    147  (ann '(1 1 1) (xlist Number ¹⁻))
    148  (ann '(1 1 1) (xlist Number ²⁻))
    149  (ann '(1 1 1) (xlist Number ³⁻))
    150  ;(ann '() (xlist Number ^ - ∞))
    151  ;(ann '(1 1 1) (xlist Number ^ - ∞))
    152  ;(ann '() (xlist Number ^ 0 - ∞))
    153  ;(ann '(1 1 1) (xlist Number ^ 0 - ∞))
    154  ;(ann '(1 1 1) (xlist Number ^ 1 - ∞))
    155  ;(ann '(1 1 1) (xlist Number ^ 2 - ∞))
    156  ;(ann '(1 1 1) (xlist Number ^ 3 - ∞))
    157  (ann '(1 1 1) (xlist Number ⁰⁻⁵))
    158  (ann '(1 1 1) (xlist Number ³⁻⁵))
    159  (ann '(1 1 1 1) (xlist Number ⁰⁻⁵))
    160  (ann '(1 1 1 1) (xlist Number ³⁻⁵))
    161  (ann '(1 1 1 1 1) (xlist Number ⁰⁻⁵))
    162  (ann '(1 1 1 1 1) (xlist Number ⁰⁻⁵))
    163  (void))
    164 
    165 (test-begin
    166  "(xlist Numberⁿ⁻ String)"
    167  (ann '("b") (xlist Number⁻ String))
    168  (ann '(1 1 1 "b") (xlist Number⁻ String))
    169  (ann '("b") (xlist Number⁰⁻ String))
    170  (ann '(1 1 1 "b") (xlist Number⁰⁻ String))
    171  (ann '(1 1 1 "b") (xlist Number¹⁻ String))
    172  (ann '(1 1 1 "b") (xlist Number²⁻ String))
    173  (void))