aboutsummaryrefslogtreecommitdiff
path: root/source/testbinarytree.py
diff options
context:
space:
mode:
Diffstat (limited to 'source/testbinarytree.py')
-rw-r--r--source/testbinarytree.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/source/testbinarytree.py b/source/testbinarytree.py
new file mode 100644
index 00000000..27245a68
--- /dev/null
+++ b/source/testbinarytree.py
@@ -0,0 +1,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"]) \ No newline at end of file
bgstack15