github.com/neugram/ng@v0.0.0-20180309130942-d472ff93d872/eval/testdata/binop1.ng (about)

     1  x := 0.0
     2  
     3  // untyped-floats
     4  
     5  x = 2.0 + 4.2
     6  if x != 6.2 {
     7  	panic("ERROR 1.1")
     8  }
     9  
    10  x = 2 + 4.2
    11  if x != 6.2 {
    12  	panic("ERROR 1.2")
    13  }
    14  
    15  x = 2.0 - 4.2
    16  if x != -2.2 {
    17  	panic("ERROR 1.3")
    18  }
    19  
    20  x = 2 - 4.2
    21  if x != -2.2 {
    22  	panic("ERROR 1.4")
    23  }
    24  
    25  x = 2.0 * 4.2
    26  if x != 8.4 {
    27  	panic("ERROR 1.5")
    28  }
    29  
    30  x = 2 * 4.2
    31  if x != 8.4 {
    32  	panic("ERROR 1.6")
    33  }
    34  
    35  x = 4.2 / 2.0
    36  if x != 2.1 {
    37  	panic("ERROR 1.7")
    38  }
    39  
    40  // TODO
    41  // x = 4.2 / 2
    42  // if x != 2.1 {
    43  // 	panic("ERROR 1.8")
    44  // }
    45  
    46  if 4.2 <= 2.0 {
    47  	panic("ERROR 1.9")
    48  }
    49  
    50  // typed float64
    51  
    52  xa := 2.0
    53  xb := 4.2
    54  
    55  x = xa + xb
    56  if x != 6.2 {
    57  	panic("ERROR 2.1")
    58  }
    59  
    60  x = xa - xb
    61  if x != -2.2 {
    62  	panic("ERROR 2.2")
    63  }
    64  
    65  x = xa * xb
    66  if x != 8.4 {
    67  	panic("ERROR 2.3")
    68  }
    69  
    70  x = xb / xa
    71  if x != 2.1 {
    72  	panic("ERROR 2.4")
    73  }
    74  
    75  if xb <= xa {
    76  	panic("ERROR 2.5")
    77  }
    78  
    79  // untyped-complex
    80  
    81  z := 0+0i
    82  
    83  z = (1+2i) + (2+4i)
    84  if z != (3+6i) {
    85  	panic("ERROR 3.1")
    86  }
    87  
    88  z = (1+2i) - (2+4i)
    89  if z != (-1-2i) {
    90  	panic("ERROR 3.2")
    91  }
    92  
    93  z = (1+2i) * (2+4i)
    94  if z != (-6+8i) {
    95  	panic("ERROR 3.3")
    96  }
    97  
    98  z = (1+2i) / (2+4i)
    99  if z != (0.5+0i) {
   100  	panic("ERROR 3.4")
   101  }
   102  
   103  // typed-complex
   104  
   105  za := (1+2i)
   106  zb := (2+4i)
   107  
   108  z = za + zb
   109  if z != (3+6i) {
   110  	panic("ERROR 4.1")
   111  }
   112  
   113  z = za - zb
   114  if z != (-1-2i) {
   115  	panic("ERROR 4.2")
   116  }
   117  
   118  z = za * zb
   119  if z != (-6+8i) {
   120  	panic("ERROR 4.3")
   121  }
   122  
   123  z = za / zb
   124  if z != (0.5+0i) {
   125  	panic("ERROR 4.4")
   126  }
   127  
   128  // untyped-ints
   129  i := 0
   130  
   131  i = 2 + 4
   132  if i != 6 {
   133  	panic("ERROR 5.1")
   134  }
   135  
   136  i = 2 - 4
   137  if i != -2 {
   138  	panic("ERROR 5.2")
   139  }
   140  
   141  i = 2 * 4
   142  if i != 8 {
   143  	panic("ERROR 5.3")
   144  }
   145  
   146  // TODO
   147  // i = 2 / 3
   148  // if i != 0 {
   149  // 	panic("ERROR 5.4")
   150  // }
   151  //
   152  // i = 4 / 2
   153  // if i != 2 {
   154  // 	panic("ERROR 5.5")
   155  // }
   156  
   157  if 4 <= 2 {
   158  	panic("ERROR 5.6")
   159  }
   160  
   161  // typed int
   162  
   163  ia := 2
   164  ib := 4
   165  
   166  i = ia + ib
   167  if i != 6 {
   168  	panic("ERROR 6.1")
   169  }
   170  
   171  i = ia - ib
   172  if i != -2 {
   173  	panic("ERROR 6.2")
   174  }
   175  
   176  i = ia * ib
   177  if i != 8 {
   178  	panic("ERROR 6.3")
   179  }
   180  
   181  i = ib / ia
   182  if i != 2 {
   183  	panic("ERROR 6.4")
   184  }
   185  
   186  if ib <= ia {
   187  	panic("ERROR 6.5")
   188  }
   189  
   190  print("OK")