Rev 4642: Start adding direct tests for sort_gc_optimal. in http://bazaar.launchpad.net/~jameinel/bzr/2.0b1-stable-groupcompress-order
John Arbash Meinel
john at arbash-meinel.com
Mon Aug 24 21:34:32 BST 2009
At http://bazaar.launchpad.net/~jameinel/bzr/2.0b1-stable-groupcompress-order
------------------------------------------------------------
revno: 4642
revision-id: john at arbash-meinel.com-20090824203414-v2p7z5efvcnia865
parent: pqm at pqm.ubuntu.com-20090824182846-ac4l3skw47g0tzx0
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: 2.0b1-stable-groupcompress-order
timestamp: Mon 2009-08-24 15:34:14 -0500
message:
Start adding direct tests for sort_gc_optimal.
-------------- next part --------------
=== modified file 'bzrlib/tests/test_groupcompress.py'
--- a/bzrlib/tests/test_groupcompress.py 2009-06-29 14:51:13 +0000
+++ b/bzrlib/tests/test_groupcompress.py 2009-08-24 20:34:14 +0000
@@ -866,3 +866,41 @@
self.assertEqual(('key4',), record.key)
self.assertEqual(self._texts[record.key],
record.get_bytes_as('fulltext'))
+
+
+class TestSortGCOptimal(tests.TestCase):
+ """Test the sort order returned by sort_gc_optimal."""
+
+ def assertSorted(self, expected, parent_map):
+ as_sorted = groupcompress.sort_gc_optimal(parent_map)
+ self.assertEqual(expected, as_sorted)
+
+ def test_empty(self):
+ self.assertSorted([], {})
+
+ def test_single(self):
+ self.assertSorted(['a'], {'a':()})
+ self.assertSorted([('a',)], {('a',):()})
+ self.assertSorted([('F', 'a')], {('F', 'a'):()})
+
+ def test_linear(self):
+ self.assertSorted(['c', 'b', 'a'], {'a':(), 'b':('a',), 'c':('b',)})
+ self.assertSorted([('c',), ('b',), ('a',)],
+ {('a',):(), ('b',): (('a',),), ('c',): (('b',),)})
+ self.assertSorted([('F', 'c'), ('F', 'b'), ('F', 'a')],
+ {('F', 'a'):(), ('F', 'b'): (('F', 'a'),),
+ ('F', 'c'): (('F', 'b'),)})
+
+ def test_mixed_ancestries(self):
+ # Each prefix should be sorted separately
+ self.assertSorted([('F', 'c'), ('F', 'b'), ('F', 'a'),
+ ('G', 'c'), ('G', 'b'), ('G', 'a'),
+ ('Q', 'c'), ('Q', 'b'), ('Q', 'a'),
+ ],
+ {('F', 'a'):(), ('F', 'b'): (('F', 'a'),),
+ ('F', 'c'): (('F', 'b'),),
+ ('G', 'a'):(), ('G', 'b'): (('G', 'a'),),
+ ('G', 'c'): (('G', 'b'),),
+ ('Q', 'a'):(), ('Q', 'b'): (('Q', 'a'),),
+ ('Q', 'c'): (('Q', 'b'),),
+ })
More information about the bazaar-commits
mailing list