(self, fn)
| 709 | self.helper_keys_contained(lambda x: x.items()) |
| 710 | |
| 711 | def helper_keys_contained(self, fn): |
| 712 | # Test rich comparisons against dict key views, which should behave the |
| 713 | # same as sets. |
| 714 | empty = fn(dict()) |
| 715 | empty2 = fn(dict()) |
| 716 | smaller = fn({1:1, 2:2}) |
| 717 | larger = fn({1:1, 2:2, 3:3}) |
| 718 | larger2 = fn({1:1, 2:2, 3:3}) |
| 719 | larger3 = fn({4:1, 2:2, 3:3}) |
| 720 | |
| 721 | self.assertTrue(smaller < larger) |
| 722 | self.assertTrue(smaller <= larger) |
| 723 | self.assertTrue(larger > smaller) |
| 724 | self.assertTrue(larger >= smaller) |
| 725 | |
| 726 | self.assertFalse(smaller >= larger) |
| 727 | self.assertFalse(smaller > larger) |
| 728 | self.assertFalse(larger <= smaller) |
| 729 | self.assertFalse(larger < smaller) |
| 730 | |
| 731 | self.assertFalse(smaller < larger3) |
| 732 | self.assertFalse(smaller <= larger3) |
| 733 | self.assertFalse(larger3 > smaller) |
| 734 | self.assertFalse(larger3 >= smaller) |
| 735 | |
| 736 | # Inequality strictness |
| 737 | self.assertTrue(larger2 >= larger) |
| 738 | self.assertTrue(larger2 <= larger) |
| 739 | self.assertFalse(larger2 > larger) |
| 740 | self.assertFalse(larger2 < larger) |
| 741 | |
| 742 | self.assertTrue(larger == larger2) |
| 743 | self.assertTrue(smaller != larger) |
| 744 | |
| 745 | # There is an optimization on the zero-element case. |
| 746 | self.assertTrue(empty == empty2) |
| 747 | self.assertFalse(empty != empty2) |
| 748 | self.assertFalse(empty == smaller) |
| 749 | self.assertTrue(empty != smaller) |
| 750 | |
| 751 | # With the same size, an elementwise compare happens |
| 752 | self.assertTrue(larger != larger3) |
| 753 | self.assertFalse(larger == larger3) |
| 754 | |
| 755 | def test_errors_in_view_containment_check(self): |
| 756 | class C: |
no test coverage detected