Beispiel #1
0
def test_remove():
    tree = Tree()
    l = [38, 13, 51, 10, 25, 40, 84, 12, 37, 66, 89, 95]
    length = len(l)
    while len(l) > 0:
        key = l.pop(0)
        value = chr(key)
        tree.insert(key, value)

    tree.remove(38)
    assert tree.root.key == 37
    assert tree.find(38) == None

    tree.remove(89)
    print(tree.in_order())
    p, c = tree.find_parent_croot(95)
    assert p.key == 84
    assert c.key == 95

    tree.remove(13)
    print(tree.in_order())
    p, c = tree.find_parent_croot(10)
    assert p.key == 12
    assert c.key == 10

    tree.remove(10)
    print(tree.in_order())
    tree.remove(15)
    print(tree.in_order())
    p, c = tree.find_parent_croot(25)
    assert p.key == 12
    assert c.key == 25
Beispiel #2
0
 def test007(self):
     # stress
     data = range(10, 100)
     random.shuffle(data)
     
     tree = Tree(data)
     self.assertEqual(len(tree), len(data))
     
     random.shuffle(data)
     
     for d in data:
         tree.remove(d)
         
     self.assertEqual(len(tree), 0)
Beispiel #3
0
    def test007(self):
        # stress
        data = range(10, 100)
        random.shuffle(data)

        tree = Tree(data)
        self.assertEqual(len(tree), len(data))

        random.shuffle(data)

        for d in data:
            tree.remove(d)

        self.assertEqual(len(tree), 0)
Beispiel #4
0
def main():
	tree = Tree()
	#tree.query(3) Segmentation fault(core dumpted)
	tree.insert(1, "0010010011")
	tree.insert(2, "1100101110")
	tree.insert(3, "0001110001")
	tree.insert(4, "0011111100")
	print tree.query(0)
	print tree.query(5)
	print tree.query(4)
	tree2 = Tree()
	tree2.remove(4)
	print tree.query(4)
	print tree.query(12)
Beispiel #5
0
def test_remove2():
    tree = Tree()
    l = [38, 13, 51, 10, 25, 40, 84, 12, 37, 66, 89, 95]
    length = len(l)
    while len(l) > 0:
        key = l.pop(0)
        value = chr(key)
        tree.insert(key, value)
    tree.remove(100)
    tree.remove(50)
    tree.remove(13)
    tree.remove(39)
Beispiel #6
0
class TreeTestCase(unittest.TestCase):

    def setUp(self):
        self.tree = Tree()

    def test001(self):
        # creation
        self.assertIsNotNone(self.tree)
        self.assertIsNone(self.tree.root)

    def test002(self):
        # insert
        self.tree.insert(42)
        self.assertEqual(self.tree.root.data, 42)
        
        self.tree.insert(25)
        self.assertEqual(self.tree.root.left.data, 25)
        
        self.tree.insert(777)
        self.assertEqual(self.tree.root.right.data, 777)
        
    def test003(self):
        # length
        for i in range(1, 10):
            self.tree.insert(i)
            self.assertEqual(i, len(self.tree))
        
    def test004(self):
        # iterators
        self.tree.insert([4, 2, 1, 3, 6, 5, 8, 7, 9])
            
        self.assertEqual([4, 2, 1, 3, 6, 5, 8, 7, 9], [n.data for n in self.tree.preorder()])    
        self.assertEqual([1, 3, 2, 5, 7, 9, 8, 6, 4], [n.data for n in self.tree.posorder()])
        self.assertEqual([1, 2, 3, 4, 5, 6, 7, 8, 9], [n.data for n in self.tree.inorder()])
            
    def test005(self):
        # simple remove
        self.tree.insert([42, 25, 777])
        
        self.tree.remove(0)
        self.assertEqual(len(self.tree), 3)
        
        self.tree.remove(777)
        self.assertEqual(len(self.tree), 2)
        
        self.assertEqual([42, 25], [n.data for n in self.tree.preorder()])
            
        self.tree.insert(12)
        self.assertEqual(len(self.tree), 3)

        self.tree.remove(25)
        self.assertEqual(len(self.tree), 2)
        
        self.assertEqual([42, 12], [n.data for n in self.tree.preorder()])
        
    def test006(self):
        # complex remove
        self.tree.insert([42, 25, 777, 12, 36, 555, 999, 600])
            
        self.tree.remove(42)
        self.assertEqual(self.tree.root.data, 555)
        
        self.tree.remove(555)
        self.assertEqual(self.tree.root.data, 600)
            
    def test007(self):
        # stress
        data = range(10, 100)
        random.shuffle(data)
        
        tree = Tree(data)
        self.assertEqual(len(tree), len(data))
        
        random.shuffle(data)
        
        for d in data:
            tree.remove(d)
            
        self.assertEqual(len(tree), 0)
Beispiel #7
0
class TreeTestCase(unittest.TestCase):
    def setUp(self):
        self.tree = Tree()

    def test001(self):
        # creation
        self.assertIsNotNone(self.tree)
        self.assertIsNone(self.tree.root)

    def test002(self):
        # insert
        self.tree.insert(42)
        self.assertEqual(self.tree.root.data, 42)

        self.tree.insert(25)
        self.assertEqual(self.tree.root.left.data, 25)

        self.tree.insert(777)
        self.assertEqual(self.tree.root.right.data, 777)

    def test003(self):
        # length
        for i in range(1, 10):
            self.tree.insert(i)
            self.assertEqual(i, len(self.tree))

    def test004(self):
        # iterators
        self.tree.insert([4, 2, 1, 3, 6, 5, 8, 7, 9])

        self.assertEqual([4, 2, 1, 3, 6, 5, 8, 7, 9],
                         [n.data for n in self.tree.preorder()])
        self.assertEqual([1, 3, 2, 5, 7, 9, 8, 6, 4],
                         [n.data for n in self.tree.posorder()])
        self.assertEqual([1, 2, 3, 4, 5, 6, 7, 8, 9],
                         [n.data for n in self.tree.inorder()])

    def test005(self):
        # simple remove
        self.tree.insert([42, 25, 777])

        self.tree.remove(0)
        self.assertEqual(len(self.tree), 3)

        self.tree.remove(777)
        self.assertEqual(len(self.tree), 2)

        self.assertEqual([42, 25], [n.data for n in self.tree.preorder()])

        self.tree.insert(12)
        self.assertEqual(len(self.tree), 3)

        self.tree.remove(25)
        self.assertEqual(len(self.tree), 2)

        self.assertEqual([42, 12], [n.data for n in self.tree.preorder()])

    def test006(self):
        # complex remove
        self.tree.insert([42, 25, 777, 12, 36, 555, 999, 600])

        self.tree.remove(42)
        self.assertEqual(self.tree.root.data, 555)

        self.tree.remove(555)
        self.assertEqual(self.tree.root.data, 600)

    def test007(self):
        # stress
        data = range(10, 100)
        random.shuffle(data)

        tree = Tree(data)
        self.assertEqual(len(tree), len(data))

        random.shuffle(data)

        for d in data:
            tree.remove(d)

        self.assertEqual(len(tree), 0)
    entries.append((x1, y2, y1))  # y2 < y1
    entries.append((x2, y2, y1))

# sort them
entries.sort()

# tree datastucture
tree = Tree()

# insert first entry in order to have returned value for lower_bound
first_entry = entries[0]
x, y1, y2 = first_entry
tree.set(y1, 0)
tree.set(y2, 1)

for x, y1, y2 in entries[1:]:
    if tree.exists(y1) and tree.exists(y2):
        if tree.get(y1) == 0:
            wifis += 1
        tree.remove(y1)
        tree.remove(y2)
    else:
        y0 = tree.previous(y1)
        tree.set(y0, 1)
        # if tree.get(y0) == 0:
        #     tree.set(y0, 1)
        tree.set(y1, 0)
        tree.set(y2, 1)

print(wifis)
Beispiel #9
0
t.debug_print()

print('\nLookups:')
print(t.get('f').value)
print(t.get('b').value)
print(t.get('i').value)

print('\nBFS:')
print(t.walk_bfs())

print('\nDFS preorder:')
print(t.walk_dfs_preorder())

print('\nDFS inorder:')
print(t.walk_dfs_inorder())

print('\nDFS postorder:')
print(t.walk_dfs_postorder())

print('\nRemove b:')
t.remove('b')
t.debug_print()

print('\nRemove f:')
t.remove('f')
t.debug_print()

print('\nRemove h:')
t.remove('h')
t.debug_print()
Beispiel #10
0
    print("^^^ Teste de Inserção ^^^")
    t.print_tree()
    print("size: " + str(t.size))
    print("^^^ Resultado (Inserção) ^^^")

    # Caso 2: Busca
    print("vvv Teste de Busca vvv")
    for idx, palavra in enumerate(lista_texto):
            r = t.search(palavra)
            print("busca por: '" + palavra + "'. Resultado: " + str(r) + " Esperado: " + str(idx))
    print("^^^ Teste de Busca ^^^")

    # Caso 3: Remoção
    print("vvv Teste de Remoção - Meio vvv")
    print("removendo 't'")
    t.remove("t")
    print("removendo 'testa'")
    t.remove("testa")
    print("^^^ Teste de Remoção - Meio ^^^")
    t.print_tree()
    print("size: " + str(t.size))
    print("^^^ Resultado (Remoção - Meio) ^^^")


    # Caso 4: Remoção
    print("vvv Teste de Remoção - Final vvv")
    print("removendo 'texto'")
    t.remove("texto")
    print("^^^ Teste de Remoção - Final ^^^")
    t.print_tree()
    print("size: " + str(t.size))