From 60cbd550233b4cb9629a96462c2dcc466f4a32fc Mon Sep 17 00:00:00 2001 From: "g@localhost.localdomain" Date: Mon, 16 Oct 2006 23:52:57 +0200 Subject: [PATCH] We don't want the minimum_real size as we even print information on 'irreal' nodes, but we want the absolute minimum --- pysize/core/pysize_fs_node.py | 10 +++------- pysize/ui/ascii/ui_ascii.py | 2 +- tests/tests/fs_node.py | 8 ++++---- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/pysize/core/pysize_fs_node.py b/pysize/core/pysize_fs_node.py index 9cb02f8..28bb828 100644 --- a/pysize/core/pysize_fs_node.py +++ b/pysize/core/pysize_fs_node.py @@ -49,12 +49,11 @@ class _pysize_node(object): depth += 1 return depth - def minimum_real_size(self): + def minimum_node_size(self): res = self.size for child in self.children: - child_min_real_size = child.minimum_real_size() - if child_min_real_size >= 0 and child_min_real_size < res: - res = child_min_real_size + child_min_node_size = child.minimum_node_size() + res = min(res, child_min_node_size) return res def get_dirname(self): @@ -182,9 +181,6 @@ class _pysize_node_remaining(_pysize_node_collection): self.size = sum(map(compute_size.slow, elements)) self.remaining_elements = elements - def minimum_real_size(self): - return -1 - def get_name(self): return '{' + ','.join(self.remaining_elements) + '}' diff --git a/pysize/ui/ascii/ui_ascii.py b/pysize/ui/ascii/ui_ascii.py index 195c4e3..949fac1 100644 --- a/pysize/ui/ascii/ui_ascii.py +++ b/pysize/ui/ascii/ui_ascii.py @@ -38,7 +38,7 @@ def run(options, args): sys.exit(1) # The last entry needs an additional terminating line total_lines = int(math.ceil(3.0 * tree.root.size / - tree.root.minimum_real_size())) + 1 + tree.root.minimum_node_size())) + 1 matrix = CharMatrix(columns, total_lines, tree) print '\n'.join([''.join(map(_transform, line)) for line in matrix.matrix]) print sanitize_string(tree.root.get_name()), human_unit(tree.root.size) diff --git a/tests/tests/fs_node.py b/tests/tests/fs_node.py index 8488d6f..0443026 100644 --- a/tests/tests/fs_node.py +++ b/tests/tests/fs_node.py @@ -12,7 +12,7 @@ def checksum(node): for n in node: checksum += value(n, lambda n: n.compute_height(), 'height') checksum += value(n, lambda n: n.compute_depth(), 'depth') - checksum += value(n, lambda n: n.minimum_real_size(), 'min_real_size') + checksum += value(n, lambda n: n.minimum_node_size(), 'min_node_size') checksum += value(n, lambda n: len(n.get_dirname()), 'dirname') checksum += value(n, lambda n: n.is_dir() and 1 or 2, 'is_dir') checksum += value(n, lambda n: n.is_real() and 3 or 5, 'is_real') @@ -29,10 +29,10 @@ class TestFsNode(unittest.TestCase): self.assertEqual(node.get_fullname(), '/tmp/pysize_example_dir') self.assertEqual(node.compute_height(), 6) self.assertEqual(node.compute_depth(), 1) - self.assertEqual(node.minimum_real_size(), 12288) + self.assertEqual(node.minimum_node_size(), 12288) self.assertEqual(node.get_dirname(), '/tmp') self.assert_(node.is_dir()) - self.assertEqual(checksum(node), 5221101) + self.assertEqual(checksum(node), 8866642) child = node.children[0] self.assertEqual(child.get_fullname(), '/tmp/pysize_example_dir/UTF-8_dir_\xc3\xa9_\xc3\xa0') @@ -47,7 +47,7 @@ class TestFsNode(unittest.TestCase): '/tmp/pysize_example_dir/dir_symlink/hardlinks/0/{0,1,2,3,4,5,6,7,8,9}') self.assertEqual(node.compute_height(), 3) self.assertEqual(node.compute_depth(), 1) - self.assertEqual(node.minimum_real_size(), 4096) + self.assertEqual(node.minimum_node_size(), 4096) self.assertEqual(node.get_dirname(), '/tmp/pysize_example_dir/dir_symlink/hardlinks/0') self.failIf(node.is_dir()) -- 2.11.4.GIT