Web M&M
https://mam.matfyz.cz
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.6 KiB
40 lines
1.6 KiB
from django.test import TestCase
|
|
import treenode.treelib as tl
|
|
import seminar.models as m
|
|
|
|
class SimpleTreeLibTests(TestCase):
|
|
def setUp(self):
|
|
# Vyrobíme pár nějakých Nodů
|
|
self.root = m.CastNode(root=None, first_child=None, succ=None, nadpis="Root")
|
|
self.root.save()
|
|
self.some_node = m.CastNode(root=self.root, first_child=None, succ=None, nadpis="Přetržené")
|
|
self.other_node = m.CastNode(root=self.root, first_child=None, succ=None, nadpis="Dítě")
|
|
self.some_orphan = m.CastNode(root=None, first_child=None, succ=None, nadpis="Ošklivé")
|
|
self.other_orphan = m.CastNode(root=None, first_child=None, succ=None, nadpis="Káčátko")
|
|
|
|
# Trochu je pospojujeme
|
|
self.root.first_child = self.some_node
|
|
self.some_node.succ = self.other_node
|
|
self.some_orphan.first_child = self.other_orphan
|
|
|
|
# Všechno uložíme
|
|
self.other_node.save()
|
|
self.some_node.save()
|
|
self.other_orphan.save()
|
|
self.some_orphan.save()
|
|
self.root.save()
|
|
|
|
def test_safe_functions(self):
|
|
# safe_pred
|
|
self.assertEqual(tl.safe_pred(self.other_node), self.some_node)
|
|
self.assertIsNone(tl.safe_pred(self.root))
|
|
self.assertIsNone(tl.safe_pred(self.some_node))
|
|
self.assertIsNone(tl.safe_pred(self.some_orphan))
|
|
self.assertIsNone(tl.safe_pred(self.other_orphan))
|
|
|
|
# safe_father_of_first
|
|
self.assertIsNone(tl.safe_father_of_first(self.root))
|
|
self.assertEqual(tl.safe_father_of_first(self.some_node), self.root)
|
|
self.assertEqual(tl.safe_father_of_first(self.other_node), self.root)
|
|
self.assertIsNone(tl.safe_father_of_first(self.some_orphan))
|
|
self.assertEqual(tl.safe_father_of_first(self.other_orphan), self.some_orphan)
|
|
|