(self)
| 321 | self.check_lnotab(negzero) |
| 322 | |
| 323 | def test_constant_folding_binop(self): |
| 324 | tests = [ |
| 325 | ('1 + 2', 'NB_ADD', True, 'LOAD_SMALL_INT', 3), |
| 326 | ('1 + 2 + 3', 'NB_ADD', True, 'LOAD_SMALL_INT', 6), |
| 327 | ('1 + ""', 'NB_ADD', False, None, None), |
| 328 | ('1 - 2', 'NB_SUBTRACT', True, 'LOAD_CONST', -1), |
| 329 | ('1 - 2 - 3', 'NB_SUBTRACT', True, 'LOAD_CONST', -4), |
| 330 | ('1 - ""', 'NB_SUBTRACT', False, None, None), |
| 331 | ('2 * 2', 'NB_MULTIPLY', True, 'LOAD_SMALL_INT', 4), |
| 332 | ('2 * 2 * 2', 'NB_MULTIPLY', True, 'LOAD_SMALL_INT', 8), |
| 333 | ('2 / 2', 'NB_TRUE_DIVIDE', True, 'LOAD_CONST', 1.0), |
| 334 | ('2 / 2 / 2', 'NB_TRUE_DIVIDE', True, 'LOAD_CONST', 0.5), |
| 335 | ('2 / ""', 'NB_TRUE_DIVIDE', False, None, None), |
| 336 | ('2 // 2', 'NB_FLOOR_DIVIDE', True, 'LOAD_SMALL_INT', 1), |
| 337 | ('2 // 2 // 2', 'NB_FLOOR_DIVIDE', True, 'LOAD_SMALL_INT', 0), |
| 338 | ('2 // ""', 'NB_FLOOR_DIVIDE', False, None, None), |
| 339 | ('2 % 2', 'NB_REMAINDER', True, 'LOAD_SMALL_INT', 0), |
| 340 | ('2 % 2 % 2', 'NB_REMAINDER', True, 'LOAD_SMALL_INT', 0), |
| 341 | ('2 % ()', 'NB_REMAINDER', False, None, None), |
| 342 | ('2 ** 2', 'NB_POWER', True, 'LOAD_SMALL_INT', 4), |
| 343 | ('2 ** 2 ** 2', 'NB_POWER', True, 'LOAD_SMALL_INT', 16), |
| 344 | ('2 ** ""', 'NB_POWER', False, None, None), |
| 345 | ('2 << 2', 'NB_LSHIFT', True, 'LOAD_SMALL_INT', 8), |
| 346 | ('2 << 2 << 2', 'NB_LSHIFT', True, 'LOAD_SMALL_INT', 32), |
| 347 | ('2 << ""', 'NB_LSHIFT', False, None, None), |
| 348 | ('2 >> 2', 'NB_RSHIFT', True, 'LOAD_SMALL_INT', 0), |
| 349 | ('2 >> 2 >> 2', 'NB_RSHIFT', True, 'LOAD_SMALL_INT', 0), |
| 350 | ('2 >> ""', 'NB_RSHIFT', False, None, None), |
| 351 | ('2 | 2', 'NB_OR', True, 'LOAD_SMALL_INT', 2), |
| 352 | ('2 | 2 | 2', 'NB_OR', True, 'LOAD_SMALL_INT', 2), |
| 353 | ('2 | ""', 'NB_OR', False, None, None), |
| 354 | ('2 & 2', 'NB_AND', True, 'LOAD_SMALL_INT', 2), |
| 355 | ('2 & 2 & 2', 'NB_AND', True, 'LOAD_SMALL_INT', 2), |
| 356 | ('2 & ""', 'NB_AND', False, None, None), |
| 357 | ('2 ^ 2', 'NB_XOR', True, 'LOAD_SMALL_INT', 0), |
| 358 | ('2 ^ 2 ^ 2', 'NB_XOR', True, 'LOAD_SMALL_INT', 2), |
| 359 | ('2 ^ ""', 'NB_XOR', False, None, None), |
| 360 | ('(1, )[0]', 'NB_SUBSCR', True, 'LOAD_SMALL_INT', 1), |
| 361 | ('(1, )[-1]', 'NB_SUBSCR', True, 'LOAD_SMALL_INT', 1), |
| 362 | ('(1 + 2, )[0]', 'NB_SUBSCR', True, 'LOAD_SMALL_INT', 3), |
| 363 | ('(1, (1, 2))[1][1]', 'NB_SUBSCR', True, 'LOAD_SMALL_INT', 2), |
| 364 | ('(1, 2)[2-1]', 'NB_SUBSCR', True, 'LOAD_SMALL_INT', 2), |
| 365 | ('(1, (1, 2))[1][2-1]', 'NB_SUBSCR', True, 'LOAD_SMALL_INT', 2), |
| 366 | ('(1, (1, 2))[1:6][0][2-1]', 'NB_SUBSCR', True, 'LOAD_SMALL_INT', 2), |
| 367 | ('"a"[0]', 'NB_SUBSCR', True, 'LOAD_CONST', 'a'), |
| 368 | ('("a" + "b")[1]', 'NB_SUBSCR', True, 'LOAD_CONST', 'b'), |
| 369 | ('("a" + "b", )[0][1]', 'NB_SUBSCR', True, 'LOAD_CONST', 'b'), |
| 370 | ('("a" * 10)[9]', 'NB_SUBSCR', True, 'LOAD_CONST', 'a'), |
| 371 | ('(1, )[1]', 'NB_SUBSCR', False, None, None), |
| 372 | ('(1, )[-2]', 'NB_SUBSCR', False, None, None), |
| 373 | ('"a"[1]', 'NB_SUBSCR', False, None, None), |
| 374 | ('"a"[-2]', 'NB_SUBSCR', False, None, None), |
| 375 | ('("a" + "b")[2]', 'NB_SUBSCR', False, None, None), |
| 376 | ('("a" + "b", )[0][2]', 'NB_SUBSCR', False, None, None), |
| 377 | ('("a" + "b", )[1][0]', 'NB_SUBSCR', False, None, None), |
| 378 | ('("a" * 10)[10]', 'NB_SUBSCR', False, None, None), |
| 379 | ('(1, (1, 2))[2:6][0][2-1]', 'NB_SUBSCR', False, None, None), |
| 380 | ] |
nothing calls this directly
no test coverage detected