Exemplo n.º 1
0
 def test_keys_with_prefix_two_found(self):
     t = TST()
     t.insert("one", 1)
     t.insert("two", 2)
     t.delete("one")
     t.insert("three", 3)
     self.assertEqual(sorted(t.keys_with_prefix("t")), ["three", "two"])
Exemplo n.º 2
0
    def test_delete_after_inserting_again(self):
        t = TST()

        t.insert("boo", 0.5)
        t.insert("neg", 1)
        self.assertEqual(t.delete("neg"), 1)

        t.insert("neg", 1)
        self.assertEqual(t.delete("neg"), 1)

        self.assertFalse(t.is_empty())
        self.assertEqual(t.count(), 1)
Exemplo n.º 3
0
    def test_delete_same_key_twice(self):
        t = TST()
        t.insert("one", 1)
        t.insert("two", 2)
        t.insert("three", 3)

        self.assertEqual(t.delete("three"), 3)
        self.assertIsNone(t.delete("three"))
        self.assertFalse(t.is_empty())
        self.assertEqual(t.count(), 2)
        self.assertTrue(t.contains("one"))
        self.assertTrue(t.contains("two"))
        self.assertEqual(t.search("one"), 1)
        self.assertEqual(t.search("two"), 2)
Exemplo n.º 4
0
    def test_delete_the_only_key(self):
        t = TST()
        t.insert("seven", 7)

        self.assertEqual(t.delete("seven"), 7)
        self.assertTrue(t.is_empty())
        self.assertEqual(t.count(), 0)
        self.assertFalse(t.contains("seven"))
        self.assertIsNone(t.search("seven"))
Exemplo n.º 5
0
    def test_delete_inexistent_key(self):
        t = TST()
        t.insert("first", "1st")

        self.assertIsNone(t.delete("second"))
        self.assertFalse(t.is_empty())
        self.assertEqual(t.count(), 1)
        self.assertTrue(t.contains("first"))
        self.assertEqual(t.search("first"), "1st")
Exemplo n.º 6
0
    def test_delete_the_two_keys(self):
        t = TST()
        t.insert("one", 1)
        t.insert("two", 2)

        self.assertEqual(t.delete("one"), 1)
        self.assertFalse(t.is_empty())
        self.assertEqual(t.count(), 1)
        self.assertFalse(t.contains("one"))
        self.assertTrue(t.contains("two"))
        self.assertIsNone(t.search("one"))
        self.assertEqual(t.search("two"), 2)

        self.assertEqual(t.delete("two"), 2)
        self.assertTrue(t.is_empty())
        self.assertEqual(t.count(), 0)
        self.assertFalse(t.contains("one"))
        self.assertFalse(t.contains("two"))
        self.assertIsNone(t.search("one"))
        self.assertIsNone(t.search("two"))
Exemplo n.º 7
0
    def test_delete_all_random_keys(self):
        t = TST()

        n = random.randint(3, 2000)
        random_pairs = {}

        for _ in range(n):
            key = TestTST.gen_rand_str(random.randint(1, 11))
            random_pairs[key] = key
            t.insert(key, key)

        for k, v in random_pairs.items():
            self.assertEqual(t.delete(k), v)
            self.assertIsNone(t.search(k))
            self.assertFalse(t.contains(k))

        self.assertTrue(t.is_empty())
        self.assertEqual(t.count(), 0)
Exemplo n.º 8
0
 def test_delete_empty_tst(self):
     t = TST()
     self.assertIsNone(t.delete("war"))