| 771 | self.assertEqual(len(h), 0) |
| 772 | |
| 773 | def test_hamt_delete_3(self): |
| 774 | A = HashKey(100, 'A') |
| 775 | B = HashKey(101, 'B') |
| 776 | C = HashKey(100100, 'C') |
| 777 | D = HashKey(100100, 'D') |
| 778 | E = HashKey(104, 'E') |
| 779 | |
| 780 | h = hamt() |
| 781 | h = h.set(A, 'a') |
| 782 | h = h.set(B, 'b') |
| 783 | h = h.set(C, 'c') |
| 784 | h = h.set(D, 'd') |
| 785 | h = h.set(E, 'e') |
| 786 | |
| 787 | orig_len = len(h) |
| 788 | |
| 789 | # BitmapNode(size=6 bitmap=0b100110000): |
| 790 | # NULL: |
| 791 | # BitmapNode(size=4 bitmap=0b1000000000000000000001000): |
| 792 | # <Key name:A hash:100>: 'a' |
| 793 | # NULL: |
| 794 | # CollisionNode(size=4 id=0x108572410): |
| 795 | # <Key name:C hash:100100>: 'c' |
| 796 | # <Key name:D hash:100100>: 'd' |
| 797 | # <Key name:B hash:101>: 'b' |
| 798 | # <Key name:E hash:104>: 'e' |
| 799 | |
| 800 | h = h.delete(A) |
| 801 | self.assertEqual(len(h), orig_len - 1) |
| 802 | |
| 803 | h = h.delete(E) |
| 804 | self.assertEqual(len(h), orig_len - 2) |
| 805 | |
| 806 | self.assertEqual(h.get(C), 'c') |
| 807 | self.assertEqual(h.get(B), 'b') |
| 808 | |
| 809 | def test_hamt_delete_4(self): |
| 810 | A = HashKey(100, 'A') |