(self)
| 1538 | @cpython_only |
| 1539 | @requires_specialization |
| 1540 | def test_contain_op(self): |
| 1541 | def contains_op_dict(): |
| 1542 | for _ in range(_testinternalcapi.SPECIALIZATION_THRESHOLD): |
| 1543 | a, b = 1, {1: 2, 2: 5} |
| 1544 | self.assertTrue(a in b) |
| 1545 | self.assertFalse(3 in b) |
| 1546 | |
| 1547 | contains_op_dict() |
| 1548 | self.assert_specialized(contains_op_dict, "CONTAINS_OP_DICT") |
| 1549 | self.assert_no_opcode(contains_op_dict, "CONTAINS_OP") |
| 1550 | |
| 1551 | def contains_op_frozen_dict(): |
| 1552 | for _ in range(_testinternalcapi.SPECIALIZATION_THRESHOLD): |
| 1553 | a, b = 1, frozendict({1: 2, 2: 5}) |
| 1554 | self.assertTrue(a in b) |
| 1555 | self.assertFalse(3 in b) |
| 1556 | |
| 1557 | contains_op_frozen_dict() |
| 1558 | self.assert_specialized(contains_op_frozen_dict, "CONTAINS_OP_DICT") |
| 1559 | self.assert_no_opcode(contains_op_frozen_dict, "CONTAINS_OP") |
| 1560 | |
| 1561 | def contains_op_frozen_dict_subclass(): |
| 1562 | class MyFrozenDict(frozendict): |
| 1563 | pass |
| 1564 | for _ in range(_testinternalcapi.SPECIALIZATION_THRESHOLD): |
| 1565 | a, b = 1, MyFrozenDict({1: 2, 2: 5}) |
| 1566 | self.assertTrue(a in b) |
| 1567 | self.assertFalse(3 in b) |
| 1568 | |
| 1569 | contains_op_frozen_dict_subclass() |
| 1570 | self.assert_no_opcode(contains_op_frozen_dict_subclass, "CONTAINS_OP_DICT") |
| 1571 | |
| 1572 | def contains_op_set(): |
| 1573 | for _ in range(_testinternalcapi.SPECIALIZATION_THRESHOLD): |
| 1574 | a, b = 1, {1, 2} |
| 1575 | self.assertTrue(a in b) |
| 1576 | self.assertFalse(3 in b) |
| 1577 | |
| 1578 | contains_op_set() |
| 1579 | self.assert_specialized(contains_op_set, "CONTAINS_OP_SET") |
| 1580 | self.assert_no_opcode(contains_op_set, "CONTAINS_OP") |
| 1581 | |
| 1582 | @cpython_only |
| 1583 | @requires_specialization |
nothing calls this directly
no test coverage detected