mtree_test_insert(mt, 18446744073709551615UL,
(void *)0xffffffffffffffff); // 0
mtree_test_erase(mt, 18446744073709551615UL); // (nil)
+ mtree_destroy(mt);
+
+ /*
+ * 6. When reusing a node with an implied pivot and the node is
+ * shrinking, old data would be left in the implied slot
+ * Fixed by checking the last pivot for the mas->max and clear
+ * accordingly. This only affected the left-most node as that node is
+ * the only one allowed to end in NULL.
+ */
+ mt_init_flags(mt, 0);
+ mtree_test_erase(mt, 3); // (nil)
+ mtree_test_insert(mt, 22, (void *)0x2d); // 0
+ mtree_test_insert(mt, 15, (void *)0x1f); // 0
+ mtree_test_load(mt, 2); // (nil)
+ mtree_test_insert(mt, 1, (void *)0x3); // 0
+ mtree_test_insert(mt, 1, (void *)0x3); // 0
+ mtree_test_insert(mt, 5, (void *)0xb); // 0
+ mtree_test_erase(mt, 1); // (nil)
+ mtree_test_insert(mt, 1, (void *)0x3); // 0
+ mtree_test_insert(mt, 4, (void *)0x9); // 0
+ mtree_test_insert(mt, 1, (void *)0x3); // 0
+ mtree_test_erase(mt, 1); // 0x3
+ mtree_test_insert(mt, 2, (void *)0x5); // -17
+ mtree_test_insert(mt, 1, (void *)0x3); // 0
+ mtree_test_erase(mt, 3); // 0x3
+ mtree_test_insert(mt, 22, (void *)0x2d); // 0
+ mtree_test_insert(mt, 15, (void *)0x1f); // -17
+ mtree_test_insert(mt, 2, (void *)0x5); // -17
+ mtree_test_insert(mt, 1, (void *)0x3); // -17
+ mtree_test_insert(mt, 8, (void *)0x11); // -17
+ mtree_test_load(mt, 2); // (nil)
+ mtree_test_insert(mt, 1, (void *)0x3); // 0
+ mtree_test_insert(mt, 1, (void *)0x3); // -17
+ mtree_test_store(mt , 1, (void *)0x3); // -17
+ mtree_test_insert(mt, 5, (void *)0xb); // 0
+ mtree_test_erase(mt, 1); // 0x5
+ mtree_test_insert(mt, 1, (void *)0x3); // -17
+ mtree_test_insert(mt, 4, (void *)0x9); // 0
+ mtree_test_insert(mt, 1, (void *)0x3); // -17
+ mtree_test_erase(mt, 1); // 0x3
+ mtree_test_insert(mt, 2, (void *)0x5); // -17
+ mtree_test_insert(mt, 1, (void *)0x3); // -17
+ mtree_test_erase(mt, 3); // 0x3
+ mtree_test_insert(mt, 22, (void *)0x2d); // 0
+ mtree_test_insert(mt, 15, (void *)0x1f); // -17
+ mtree_test_insert(mt, 2, (void *)0x5); // -17
+ mtree_test_insert(mt, 1, (void *)0x3); // -17
+ mtree_test_insert(mt, 8, (void *)0x11); // -17
+ mtree_test_insert(mt, 12, (void *)0x19); // -17
+ mtree_test_erase(mt, 1); // (nil)
+ mtree_test_store_range(mt, 4, 62, (void *)0x9); // 0
+ mtree_test_erase(mt, 62); // 0x3
+ mtree_test_store_range(mt, 1, 0, (void *)0x3); // 0
+ mtree_test_insert(mt, 11, (void *)0x17); // -22
+ mtree_test_insert(mt, 3, (void *)0x7); // 0
+ mtree_test_insert(mt, 3, (void *)0x7); // 0
+ mtree_test_store(mt , 62, (void *)0x7d); // -17
+ mtree_test_erase(mt, 62); // 0x9
+ mtree_test_store_range(mt, 1, 15, (void *)0x3); // 0
+ mtree_test_erase(mt, 1); // 0x7d
+ mtree_test_insert(mt, 22, (void *)0x2d); // 0
+ mtree_test_insert(mt, 12, (void *)0x19); // 0
+ mtree_test_erase(mt, 1); // 0x3
+ mtree_test_insert(mt, 3, (void *)0x7); // 0
+ mtree_test_store(mt , 62, (void *)0x7d); // 0
+ mtree_test_erase(mt, 62); // (nil)
+ mtree_test_insert(mt, 122, (void *)0xf5); // 0
+ mtree_test_store(mt , 3, (void *)0x7); // 0
+ mtree_test_insert(mt, 0, (void *)0x1); // 0
+ mtree_test_store_range(mt, 0, 1, (void *)0x1); // 0
+ mtree_test_insert(mt, 85, (void *)0xab); // 0
+ mtree_test_insert(mt, 72, (void *)0x91); // 0
+ mtree_test_insert(mt, 81, (void *)0xa3); // 0
+ mtree_test_insert(mt, 726, (void *)0x5ad); // 0
+ mtree_test_insert(mt, 0, (void *)0x1); // 0
+ mtree_test_insert(mt, 1, (void *)0x3); // -17
+ mtree_test_store(mt , 51, (void *)0x67); // -17
+ mtree_test_insert(mt, 611, (void *)0x4c7); // 0
+ mtree_test_insert(mt, 485, (void *)0x3cb); // 0
+ mtree_test_insert(mt, 1, (void *)0x3); // 0
+ mtree_test_erase(mt, 1); // 0x7d
+ mtree_test_insert(mt, 0, (void *)0x1); // -17
+ mtree_test_insert(mt, 1, (void *)0x3); // 0
+ mtree_test_insert_range(mt, 26, 1, (void *)0x35); // 0
+ mtree_test_load(mt, 1); // 0x1
+ mtree_test_store_range(mt, 1, 22, (void *)0x3); // -22
+ mtree_test_insert(mt, 1, (void *)0x3); // 0
+ mtree_test_erase(mt, 1); // 0x3
+ mtree_test_load(mt, 53); // 0x3
+ mtree_test_load(mt, 1); // 0xab
+ mtree_test_store_range(mt, 1, 1, (void *)0x3); // -17
+ mtree_test_insert(mt, 222, (void *)0x1bd); // 0
+ mtree_test_insert(mt, 485, (void *)0x3cb); // 0
+ mtree_test_insert(mt, 1, (void *)0x3); // -17
+ mtree_test_erase(mt, 1); // (nil)
+ mtree_test_load(mt, 0); // 0x3
+ mtree_test_insert(mt, 21, (void *)0x2b); // -17
+ mtree_test_insert(mt, 3, (void *)0x7); // 0
+ mtree_test_store(mt , 621, (void *)0x4db); // 0
+ mtree_test_insert(mt, 0, (void *)0x1); // 0
+ mtree_test_erase(mt, 5); // 0x1
+ mtree_test_insert(mt, 1, (void *)0x3); // -17
+ mtree_test_store(mt , 62, (void *)0x7d); // 0
+ mtree_test_erase(mt, 62); // (nil)
+ mtree_test_store_range(mt, 1, 0, (void *)0x3); // 0
+ mtree_test_insert(mt, 22, (void *)0x2d); // -22
+ mtree_test_insert(mt, 12, (void *)0x19); // 0
+ mtree_test_erase(mt, 1); // 0x7d
+ mtree_test_insert(mt, 1, (void *)0x3); // 0
+ mtree_test_store_range(mt, 4, 62, (void *)0x9); // 0
+ mtree_test_erase(mt, 62); // 0x3
+ mtree_test_erase(mt, 1); // 0x9
+ mtree_test_load(mt, 1); // 0x3
+ mtree_test_store_range(mt, 1, 22, (void *)0x3); // 0
+ mtree_test_insert(mt, 1, (void *)0x3); // 0
+ mtree_test_erase(mt, 1); // (nil)
+ mtree_test_load(mt, 53); // 0x3
+ mtree_test_load(mt, 1); // (nil)
+ mtree_test_store_range(mt, 1, 1, (void *)0x3); // -17
+ mtree_test_insert(mt, 222, (void *)0x1bd); // 0
+ mtree_test_insert(mt, 485, (void *)0x3cb); // -17
+ mtree_test_insert(mt, 1, (void *)0x3); // -17
+ mtree_test_erase(mt, 1); // (nil)
+ mtree_test_insert(mt, 1, (void *)0x3); // -17
+ mtree_test_load(mt, 0); // 0x3
+ mtree_test_load(mt, 0); // 0x1
+ mtree_destroy(mt);
}