...

Text file src/cuelang.org/go/cue/testdata/basicrewrite/002_arithmetic.txtar

Documentation: cuelang.org/go/cue/testdata/basicrewrite

     1# DO NOT EDIT; generated by go run testdata/gen.go
     2#
     3#name: arithmetic
     4#evalPartial
     5-- in.cue --
     6i1: 1 & int
     7i2: 2 & int
     8
     9sum:     -1 + +2     // 1
    10div1:    2.0 / 3 * 6 // 4
    11div2:    2 / 3 * 6   // 4
    12div3:    1.00 / 1.00
    13divZero: 1.0 / 0
    14div00:   0 / 0
    15b:       1 != 4
    16add:     div1 + 1.0
    17
    18idiv00: 0 div 0
    19imod00: 0 mod 0
    20iquo00: 0 quo 0
    21irem00: 0 rem 0
    22
    23v1: 1.0T / 2.0
    24v2: 2.0 == 2
    25v3: 2.0 / 3.0
    26v5: i1 div i2
    27
    28e0: 2 + "a"
    29// these are now all alloweed
    30// e1: 2.0 / i1
    31// e2: i1 / 2.0
    32// e3: 3.0 % i2
    33// e4: i1 % 2.0
    34e5: 1.0 div 2
    35e6: 2 rem 2.0
    36e7: 2 quo 2.0
    37e8: 1.0 mod 1
    38-- out/def --
    39i1:      1
    40i2:      2
    41sum:     1
    42div1:    4.00000000000000000000000
    43div2:    4.00000000000000000000000
    44div3:    1.
    45divZero: _|_ // division by zero
    46div00:   _|_ // division undefined
    47b:       true
    48add:     5.00000000000000000000000
    49idiv00:  _|_ // division by zero
    50imod00:  _|_ // division by zero
    51iquo00:  _|_ // division by zero
    52irem00:  _|_ // division by zero
    53v1:      5.0000000000e+11
    54v2:      true
    55v3:      0.666666666666666666666667
    56v5:      0
    57e0:      _|_ // invalid operation 2 + "a" (mismatched types int and string)
    58// these are now all alloweed
    59// e1: 2.0 / i1
    60// e2: i1 / 2.0
    61// e3: 3.0 % i2
    62// e4: i1 % 2.0
    63e5: _|_ // invalid operation 1.0 div 2 (mismatched types float and int)
    64e6: _|_ // invalid operation 2 rem 2.0 (mismatched types int and float)
    65e7: _|_ // invalid operation 2 quo 2.0 (mismatched types int and float)
    66e8: _|_ // invalid operation 1.0 mod 1 (mismatched types float and int)
    67-- out/legacy-debug --
    68<0>{i1: 1, i2: 2, sum: 1, div1: 4.00000000000000000000000, div2: 4.00000000000000000000000, div3: 1., divZero: _|_((1.0 / 0):division by zero), div00: _|_((0 / 0):division undefined), b: true, add: 5.00000000000000000000000, idiv00: _|_((0 div 0):division by zero), imod00: _|_((0 mod 0):division by zero), iquo00: _|_((0 quo 0):division by zero), irem00: _|_((0 rem 0):division by zero), v1: 5.0000000000e+11, v2: true, v3: 0.666666666666666666666667, v5: 0, e0: _|_((2 + "a"):invalid operation 2 + "a" (mismatched types int and string)), e5: _|_((1.0 div 2):invalid operation 1.0 div 2 (mismatched types float and int)), e6: _|_((2 rem 2.0):invalid operation 2 rem 2.0 (mismatched types int and float)), e7: _|_((2 quo 2.0):invalid operation 2 quo 2.0 (mismatched types int and float)), e8: _|_((1.0 mod 1):invalid operation 1.0 mod 1 (mismatched types float and int))}
    69-- out/compile --
    70--- in.cue
    71{
    72  i1: (1 & int)
    73  i2: (2 & int)
    74  sum: (-1 + +2)
    75  div1: ((2.0 / 3) * 6)
    76  div2: ((2 / 3) * 6)
    77  div3: (1.00 / 1.00)
    78  divZero: (1.0 / 0)
    79  div00: (0 / 0)
    80  b: (1 != 4)
    81  add: (〈0;div1〉 + 1.0)
    82  idiv00: (0 div 0)
    83  imod00: (0 mod 0)
    84  iquo00: (0 quo 0)
    85  irem00: (0 rem 0)
    86  v1: (1000000000000 / 2.0)
    87  v2: (2.0 == 2)
    88  v3: (2.0 / 3.0)
    89  v5: (〈0;i1〉 div 〈0;i2〉)
    90  e0: (2 + "a")
    91  e5: (1.0 div 2)
    92  e6: (2 rem 2.0)
    93  e7: (2 quo 2.0)
    94  e8: (1.0 mod 1)
    95}
    96-- out/eval/stats --
    97Leaks:  0
    98Freed:  24
    99Reused: 22
   100Allocs: 2
   101Retain: 0
   102
   103Unifications: 24
   104Conjuncts:    26
   105Disjuncts:    24
   106-- out/eval --
   107Errors:
   108divZero: failed arithmetic: division by zero:
   109    ./in.cue:8:10
   110div00: failed arithmetic: division undefined:
   111    ./in.cue:9:10
   112idiv00: division by zero:
   113    ./in.cue:13:9
   114imod00: division by zero:
   115    ./in.cue:14:9
   116iquo00: division by zero:
   117    ./in.cue:15:9
   118irem00: division by zero:
   119    ./in.cue:16:9
   120e0: invalid operands 2 and "a" to '+' (type int and string):
   121    ./in.cue:23:5
   122    ./in.cue:23:9
   123e5: invalid operands 1.0 and 2 to 'div' (type float and int):
   124    ./in.cue:29:5
   125    ./in.cue:29:13
   126e6: invalid operands 2 and 2.0 to 'rem' (type int and float):
   127    ./in.cue:30:5
   128    ./in.cue:30:11
   129e7: invalid operands 2 and 2.0 to 'quo' (type int and float):
   130    ./in.cue:31:5
   131    ./in.cue:31:11
   132e8: invalid operands 1.0 and 1 to 'mod' (type float and int):
   133    ./in.cue:32:5
   134    ./in.cue:32:13
   135
   136Result:
   137(_|_){
   138  // [eval]
   139  i1: (int){ 1 }
   140  i2: (int){ 2 }
   141  sum: (int){ 1 }
   142  div1: (float){ 4.000000000000000000000000000000000 }
   143  div2: (float){ 4.000000000000000000000000000000000 }
   144  div3: (float){ 1.0 }
   145  divZero: (_|_){
   146    // [eval] divZero: failed arithmetic: division by zero:
   147    //     ./in.cue:8:10
   148  }
   149  div00: (_|_){
   150    // [eval] div00: failed arithmetic: division undefined:
   151    //     ./in.cue:9:10
   152  }
   153  b: (bool){ true }
   154  add: (float){ 5.000000000000000000000000000000000 }
   155  idiv00: (_|_){
   156    // [eval] idiv00: division by zero:
   157    //     ./in.cue:13:9
   158  }
   159  imod00: (_|_){
   160    // [eval] imod00: division by zero:
   161    //     ./in.cue:14:9
   162  }
   163  iquo00: (_|_){
   164    // [eval] iquo00: division by zero:
   165    //     ./in.cue:15:9
   166  }
   167  irem00: (_|_){
   168    // [eval] irem00: division by zero:
   169    //     ./in.cue:16:9
   170  }
   171  v1: (float){ 5.0E+11 }
   172  v2: (bool){ true }
   173  v3: (float){ 0.6666666666666666666666666666666667 }
   174  v5: (int){ 0 }
   175  e0: (_|_){
   176    // [eval] e0: invalid operands 2 and "a" to '+' (type int and string):
   177    //     ./in.cue:23:5
   178    //     ./in.cue:23:9
   179  }
   180  e5: (_|_){
   181    // [eval] e5: invalid operands 1.0 and 2 to 'div' (type float and int):
   182    //     ./in.cue:29:5
   183    //     ./in.cue:29:13
   184  }
   185  e6: (_|_){
   186    // [eval] e6: invalid operands 2 and 2.0 to 'rem' (type int and float):
   187    //     ./in.cue:30:5
   188    //     ./in.cue:30:11
   189  }
   190  e7: (_|_){
   191    // [eval] e7: invalid operands 2 and 2.0 to 'quo' (type int and float):
   192    //     ./in.cue:31:5
   193    //     ./in.cue:31:11
   194  }
   195  e8: (_|_){
   196    // [eval] e8: invalid operands 1.0 and 1 to 'mod' (type float and int):
   197    //     ./in.cue:32:5
   198    //     ./in.cue:32:13
   199  }
   200}

View as plain text