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")