예제 #1
0
 def test_two_leaf_left(self):
     leaf = TMTree("leaf", [], 10)
     leaf2 = TMTree("leaf2", [], 50)
     root = TMTree("root", [leaf, leaf2], 0)
     root.update_rectangles((0, 0, 20, 10))
     set_expanded(root)
     act = root.get_tree_at_position((3, 10))
     self.assertEqual(
         act, leaf,
         "The leaf is the only qualified leaf in the DISPLAYED Tree" +
         " YOUR RESULT IS " + act._name)
예제 #2
0
 def test_folder(self):
     leaf = TMTree("leaf", [], 40)
     folderA = TMTree("folderA", [leaf], 0)
     leaf2 = TMTree("leaf2", [], 40)
     folderB = TMTree("folderB", [leaf2], 0)
     root = TMTree("root", [folderA, folderB], 0)
     root.update_rectangles((0,0,100,100))
     set_expanded(root)
     root.collapse()
     self.assertEqual(root._expanded, False, "You should set _expanded of every thing under root to False")
     rec = [rect[0] for rect in root.get_rectangles()]
     self.assertCountEqual(rec, [(0,0,100,100)])
예제 #3
0
 def test_four_square_intersection(self):
     leaf = TMTree("leaf", [], 50)
     leaf2 = TMTree("leaf2", [], 50)
     leaf3 = TMTree("leaf3", [], 50)
     leaf4 = TMTree("leaf4", [], 50)
     internal1 = TMTree("internal1", [leaf, leaf2], 0)
     internal2 = TMTree("internal2", [leaf3, leaf4], 0)
     root = TMTree("root", [internal1, internal2], 0)
     rect = (0, 0, 100, 100)
     set_expanded(root)
     root.update_rectangles(rect)
     exp = leaf
     act = root.get_tree_at_position((10, 2))
     self.assertEqual(
         act, exp,
         "The leaf is the only qualified leaf in the DISPLAYED Tree YOUR RESULT IS "
         + act._name)
예제 #4
0
 def test_multiple_folder(self):
     leaf = TMTree("leaf", [], 40)
     leaf2 = TMTree("leaf2", [], 40)
     folderA = TMTree("folderA", [leaf, leaf2], 0)
     leaf3 = TMTree("leaf3", [], 40)
     leaf4 = TMTree("leaf4", [], 40)
     folderB = TMTree("folderB", [leaf3, leaf4], 0)
     root = TMTree("root", [folderA, folderB], 0)
     root.update_rectangles((0, 0, 100, 100))
     set_expanded(root)
     folderA.collapse()
     rec = [rect[0] for rect in root.get_rectangles()]
     act = all(test_collapse(folderA))
     # self.assertCountEqual(rec, [(0,0,100,50), (0,50,50,50), (50,50,50,50)])
     self.assertEqual(rec, [(0,0,100,100)])
     self.assertEqual(root._expanded, False, "You should not modified root")
     self.assertEqual(act, True, "You should set expanded of every thing under folderA be False")
예제 #5
0
def set_expanded(tree):
    if is_leaf(tree):
        return [tree._expanded == False]
    else:
        temp = []
        temp.append(tree._expanded)
        for sub in tree._subtrees:
            temp.extend(set_expanded(sub))
        return temp
예제 #6
0
 def test_single_folder(self):
     leaf = TMTree("leaf", [], 50)
     folder = TMTree("folder", [leaf], 50)
     folder.expand_all()
     act = all(set_expanded(folder))
     folder.update_rectangles((0, 0, 100, 100))
     rec = [rect[0] for rect in folder.get_rectangles()]
     self.assertCountEqual(rec, [(0, 0, 100, 100)])
     self.assertEqual(act, True,
                      "You should change every internal node under folder")
예제 #7
0
 def test_internal_node2(self):
     leaf = TMTree("leaf", [], 40)
     folderA = TMTree("folderA", [leaf], 0)
     leaf2 = TMTree("leaf2", [], 40)
     folderB = TMTree("folderB", [leaf2], 0)
     root = TMTree("root", [folderA, folderB], 0)
     root._expanded = True
     root.update_rectangles((0, 0, 100, 100))
     root.expand()
     folderB.expand_all()
     act = all(set_expanded(folderB))
     self.assertEqual(act, True,
                      "You should change the expanded of folderB")
     self.assertEqual(folderA._expanded, False,
                      "You should not modified folderA")
     self.assertCountEqual([rect[0] for rect in folderB.get_rectangles()],
                           [(0, 50, 100, 50)])
     self.assertCountEqual([rect[0] for rect in root.get_rectangles()],
                           [(0, 0, 100, 50), (0, 50, 100, 50)])
예제 #8
0
 def test_root(self):
     leaf = TMTree("leaf", [], 40)
     leaf2 = TMTree("leaf2", [], 40)
     folderA = TMTree("folderA", [leaf, leaf2], 0)
     leaf3 = TMTree("leaf3", [], 40)
     leaf4 = TMTree("leaf4", [], 40)
     folderB = TMTree("folderB", [leaf3, leaf4], 0)
     root = TMTree("root", [folderA, folderB], 0)
     root.update_rectangles((0, 0, 100, 100))
     root.expand_all()
     act = all(set_expanded(root))
     rec = [rect[0] for rect in root.get_rectangles()]
     self.assertEqual(
         act, True,
         "You should change every internal node under root to be True")
     self.assertCountEqual(rec, [(0, 0, 50, 50), (50, 0, 50, 50),
                                 (0, 50, 50, 50), (50, 50, 50, 50)])
     self.assertCountEqual([rect[0] for rect in folderA.get_rectangles()],
                           [(0, 0, 50, 50), (50, 0, 50, 50)])
     self.assertCountEqual([rect[0] for rect in folderB.get_rectangles()],
                           [(0, 50, 50, 50), (50, 50, 50, 50)])
예제 #9
0
 def test_internal_node(self):
     leaf = TMTree("leaf", [], 40)
     folderA = TMTree("folderA", [leaf], 0)
     leaf2 = TMTree("leaf2", [], 40)
     folderB = TMTree("folderB", [leaf2], 0)
     root = TMTree("root", [folderA, folderB], 0)
     root.update_rectangles((0, 0, 100, 100))
     root._expanded = True
     root.expand()
     folderA.expand_all()
     temp = set_expanded(folderA)
     temp.pop(0)
     act = all(temp)
     rec = [rect[0] for rect in root.get_rectangles()]
     self.assertCountEqual([rect[0] for rect in folderA.get_rectangles()],
                           [(0, 0, 100, 50)])
     self.assertCountEqual(rec, [(0, 0, 100, 50), (0, 50, 100, 50)])
     self.assertEqual(act, True,
                      "You should change every internal under folderA")
     self.assertEqual(root._expanded, True,
                      "You should change root's expaned to be True")
     self.assertEqual(folderB._expanded, False,
                      "You should not modified folderB's expanded")