aboutsummaryrefslogtreecommitdiff
path: root/source/testbinarytree.py
blob: 27245a68254b589663cb5bd8eae8cede32ff5ce8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# -*- coding: utf-8 -*-

import time
import sys
import resource
# Increases Python's recursion limit and the size of the stack.
resource.setrlimit(resource.RLIMIT_STACK, (2**29,-1))
sys.setrecursionlimit(10**6)

import mongodb
import binarytree

print("Loading articles from the database...")
database = mongodb.Articles()
articles = database.get_articles()
print("Articles loaded ({}).".format(len(articles)))

print("Generating the binary tree...")
begin = time.time()
BTree = binarytree.CBOrdTree()
# add the root node (first article of the list)
root = BTree.addNode(articles[0])
for article in articles[1:]:
    BTree.insert(root, article)
end = time.time()
print("Generation done ({0:2f} seconds).".format(end-begin))

print "Maximum depth of the tree:"
print BTree.maxDepth(root)
print "Oldest article:"
oldest_article = BTree.minValue(root)
print(oldest_article["article_date"].strftime('%Y-%m-%d %H:%M') + \
        " - " + oldest_article["article_title"])
print "Newest article:"
newest_article = BTree.maxValue(root)
print(newest_article["article_date"].strftime('%Y-%m-%d %H:%M') + \
        " - " + newest_article["article_title"])
bgstack15