cuelang.org/go@v0.10.1/cue/testdata/basicrewrite/002_arithmetic.txtar (about) 1 # DO NOT EDIT; generated by go run testdata/gen.go 2 # 3 #name: arithmetic 4 #evalPartial 5 -- in.cue -- 6 i1: 1 & int 7 i2: 2 & int 8 9 sum: -1 + +2 // 1 10 div1: 2.0 / 3 * 6 // 4 11 div2: 2 / 3 * 6 // 4 12 div3: 1.00 / 1.00 13 divZero: 1.0 / 0 14 div00: 0 / 0 15 b: 1 != 4 16 add: div1 + 1.0 17 18 idiv00: 0 div 0 19 imod00: 0 mod 0 20 iquo00: 0 quo 0 21 irem00: 0 rem 0 22 23 v1: 1.0T / 2.0 24 v2: 2.0 == 2 25 v3: 2.0 / 3.0 26 v5: i1 div i2 27 28 e0: 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 34 e5: 1.0 div 2 35 e6: 2 rem 2.0 36 e7: 2 quo 2.0 37 e8: 1.0 mod 1 38 -- out/def -- 39 i1: 1 40 i2: 2 41 sum: 1 42 div1: 4.00000000000000000000000 43 div2: 4.00000000000000000000000 44 div3: 1. 45 divZero: _|_ // division by zero 46 div00: _|_ // division undefined 47 b: true 48 add: 5.00000000000000000000000 49 idiv00: _|_ // division by zero 50 imod00: _|_ // division by zero 51 iquo00: _|_ // division by zero 52 irem00: _|_ // division by zero 53 v1: 5.0000000000e+11 54 v2: true 55 v3: 0.666666666666666666666667 56 v5: 0 57 e0: _|_ // 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 63 e5: _|_ // invalid operation 1.0 div 2 (mismatched types float and int) 64 e6: _|_ // invalid operation 2 rem 2.0 (mismatched types int and float) 65 e7: _|_ // invalid operation 2 quo 2.0 (mismatched types int and float) 66 e8: _|_ // 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 -- 97 Leaks: 0 98 Freed: 24 99 Reused: 22 100 Allocs: 2 101 Retain: 0 102 103 Unifications: 24 104 Conjuncts: 26 105 Disjuncts: 24 106 -- out/eval -- 107 Errors: 108 divZero: failed arithmetic: division by zero: 109 ./in.cue:8:10 110 div00: failed arithmetic: division undefined: 111 ./in.cue:9:10 112 idiv00: division by zero: 113 ./in.cue:13:9 114 imod00: division by zero: 115 ./in.cue:14:9 116 iquo00: division by zero: 117 ./in.cue:15:9 118 irem00: division by zero: 119 ./in.cue:16:9 120 e0: invalid operands 2 and "a" to '+' (type int and string): 121 ./in.cue:23:5 122 ./in.cue:23:9 123 e5: invalid operands 1.0 and 2 to 'div' (type float and int): 124 ./in.cue:29:5 125 ./in.cue:29:13 126 e6: invalid operands 2 and 2.0 to 'rem' (type int and float): 127 ./in.cue:30:5 128 ./in.cue:30:11 129 e7: invalid operands 2 and 2.0 to 'quo' (type int and float): 130 ./in.cue:31:5 131 ./in.cue:31:11 132 e8: invalid operands 1.0 and 1 to 'mod' (type float and int): 133 ./in.cue:32:5 134 ./in.cue:32:13 135 136 Result: 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 }