from BinaryTree import *
from RedBlackTree import *
from time import time
from random import sample, randint
# Esta eh a funcao que executa os testes. "n" eh o numero de elementos que serao inseridos.
def make(n):
arq1 = open("/home/licensed/UFRPE/bin.xls", "w")
arq2 = open("/home/licensed/UFRPE/rbt.xls", "w")
myNumbers = sample(range(1, n*1000), n) #Numeros que serao inseridos. A populacao eh 1000 vezes maior que a amostra
binaryTreeTest = BinaryTree()
cont = n/1000 #Faz com que a contagem do tempo se repita a cada 1000 elementos inseridos.
for i in range(cont):
t1 = time()
for j in range(n/cont):
binaryTreeTest.insertValue(myNumbers[(i*(n/cont)) + j])
t2 = time()
arq1.writelines(str(t2-t1) + "\n") #Tempo de insercao em arvore binaria
#print(binaryTreeTest)
arq1.close()
redBlackTreeTest = RedBlackTree()
for l in range(cont):
t3 = time()
for m in range(n/cont):
redBlackTreeTest.insertValue(myNumbers[(l*(n/cont)) + m])
t4 = time()
arq2.writelines(str(t4-t3) + "\n") #Tempo de insercao em arvore vermelho-preto
arq2.close()
## Para ver as arvores basta dar um print
make(100000)
# number = randint(0,(n-1))
#
# print number
#
# print
# print myNumbers[number]
#
# t3 = time()
# print tree.search(myNumbers[number])
# t4 = time()
#
# print
# print tree.search(myNumbers[number])
# print
# print t4-t3