Example #1
0
    def test_example_data(self):
        """UPDATED: the order of the subtrees now doesn't matter,
        as they will be sorted alphabetically by the test itself.
        """
        tree = FileSystemTree(EXAMPLE_PATH)
        _sort_subtrees(tree)

        rects = tree.generate_treemap((0, 0, 800, 1000))

        # This should be one rectangle per file in 'B'.
        self.assertEqual(len(rects), 4)

        # UPDATED:
        # Here, we illustrate the correct order of the returned rectangles.
        # Note that this corresponds to the folder contents always being
        # sorted in alphabetical order.
        rect_f1 = rects[0][0]  # f1.txt
        rect_f2 = rects[1][0]  # f2.txt
        rect_f3 = rects[2][0]  # f3.txt
        rect_f4 = rects[3][0]  # f4.txt

        # The 'A' rectangle is (0, 0, 800, 750).
        self.assertEqual(rect_f1, (0, 0, 400, 750))
        # Note the rounding down on f2.
        self.assertEqual(rect_f2, (400, 0, 133, 750))
        # Note the adjustment to f3 to bring the total width to 800.
        self.assertEqual(rect_f3, (533, 0, 267, 750))

        # The 'f4.txt' rectangle.
        self.assertEqual(rect_f4, (0, 750, 800, 250))
Example #2
0
 def test_multiple_nonempty(self):
     file_tree = FileSystemTree(PATH)
     result = file_tree.generate_treemap((0, 0, 800, 1000))
     lst = [(0, 0, 800, 13), (0, 13, 800, 20), (0, 33, 800, 43),
            (0, 76, 722, 381), (722, 76, 16, 381), (738, 76, 5, 381),
            (743, 76, 43, 381), (786, 76, 1, 381), (787, 76, 12, 381),
            (799, 76, 1, 381)]
     for i in range(10):
         self.assertEqual(result[i][0], lst[i])
Example #3
0
 def test_zero_nonempty(self):
     file_tree = FileSystemTree(PATH2)
     original_len = len(file_tree._subtrees)
     for subtree in file_tree._subtrees:
         subtree.del_leaf()
         self.assertEqual(subtree._root, None)
     self.assertEqual(len(file_tree._subtrees), original_len)
     result0 = file_tree.generate_treemap((0, 0, 800, 1000))
     result1 = file_tree.generate_treemap((0, 0, 1000, 800))
     self.assertEqual([], result0)
     self.assertEqual([], result1)
Example #4
0
    def test_single_file(self, x, y, width, height):
        tree = FileSystemTree(os.path.join(EXAMPLE_PATH, 'f4.txt'))
        rects = tree.generate_treemap((x, y, width, height))

        # This should be just a single rectangle and colour returned
        self.assertEqual(len(rects), 1)
        rect, colour = rects[0]
        self.assertEqual(rect, (x, y, width, height))

        for i in range(3):
            self.assertGreaterEqual(colour[i], 0)
            self.assertLessEqual(colour[i], 255)
Example #5
0
 def test_one_empty(self):
     file_tree = FileSystemTree(PATH2)
     original_len = len(file_tree._subtrees)
     file_tree._subtrees[-1].del_leaf()
     self.assertEqual(file_tree._subtrees[-1]._root, None)
     self.assertEqual(len(file_tree._subtrees), original_len)
     result = file_tree.generate_treemap((0, 0, 800, 1000))
     lst = [(0, 0, 800, 904), (0, 904, 800, 19), (0, 923, 800, 6),
            (0, 929, 800, 54), (0, 983, 800, 1), (0, 984, 800, 16)]
     for each in result:
         self.assertEqual(each[0], lst[result.index(each)])
     for each in lst:
         self.assertEqual(each, result[lst.index(each)][0])
Example #6
0
    def test_example_data2(self):
        tree = FileSystemTree('TestFolder')
        rects = tree.generate_treemap((0, 0, 1100, 900))
        self.assertEqual(len(rects), 11)

        rect_f1 = rects[0][0]
        rect_f2 = rects[1][0]
        rect_f3 = rects[2][0]
        rect_f4 = rects[3][0]
        rect_f5 = rects[4][0]
        rect_f6 = rects[5][0]
        rect_f7 = rects[6][0]
        rect_f8 = rects[7][0]

        self.assertEqual(rect_f1, (0, 0, 300, 300))
        self.assertEqual(rect_f2, (0, 300, 300, 300))
        self.assertEqual(rect_f3, (0, 600, 300, 300))
        self.assertEqual(rect_f4, (300, 0, 300, 300))
        self.assertEqual(rect_f5, (300, 300, 300, 300))
        self.assertEqual(rect_f6, (300, 600, 300, 300))
        self.assertEqual(rect_f7, (600, 0, 250, 360))
        self.assertEqual(rect_f8, (850, 0, 250, 360))
Example #7
0
    def test_example_data(self):
        tree = FileSystemTree(EXAMPLE_PATH)
        rects = tree.generate_treemap((0, 0, 800, 1000))

        # This should be one rectangle per file in 'B'.
        self.assertEqual(len(rects), 4)

        # Here, we illustrate the correct order of the returned rectangle.
        # Note that this again corresponds to the order in which os.listdir
        # reports the contents of a folder.
        rect_f1 = rects[0][0]
        rect_f2 = rects[1][0]
        rect_f3 = rects[2][0]
        rect_f4 = rects[3][0]

        self.assertEqual(rect_f1, (0, 0, 400, 750))
        # Note the rounding down on f2.
        self.assertEqual(rect_f2, (400, 0, 133, 750))
        # Note that f3 has a width of 267, to bring the total width of
        # the 'A' rectangle to exactly 800.
        self.assertEqual(rect_f3, (533, 0, 267, 750))

        self.assertEqual(rect_f4, (0, 750, 800, 250))