Rev 2268: Fix a small bug with negative numbers and __getitem__ in http://bzr.arbash-meinel.com/branches/bzr/0.15-dev/list_patch

John Arbash Meinel john at arbash-meinel.com
Wed Jan 31 01:23:03 GMT 2007


At http://bzr.arbash-meinel.com/branches/bzr/0.15-dev/list_patch

------------------------------------------------------------
revno: 2268
revision-id: john at arbash-meinel.com-20070131012258-nhhiaf5wo39w0rzb
parent: john at arbash-meinel.com-20070131003302-1o0y49dn55m25cga
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: list_patch
timestamp: Tue 2007-01-30 19:22:58 -0600
message:
  Fix a small bug with negative numbers and __getitem__
modified:
  bzrlib/hybrid_linked_list.py   hybrid_linked_list.p-20070130001028-zlexwz74tzo56o2t-1
  bzrlib/tests/test_hybrid_linked_list.py test_hybrid_linked_l-20070130001028-zlexwz74tzo56o2t-2
-------------- next part --------------
=== modified file 'bzrlib/hybrid_linked_list.py'
--- a/bzrlib/hybrid_linked_list.py	2007-01-31 00:28:29 +0000
+++ b/bzrlib/hybrid_linked_list.py	2007-01-31 01:22:58 +0000
@@ -151,6 +151,8 @@
                 cur += stride
             return result
         else:
+            if pos < 0:
+                pos = self._length + pos
             (prev_range_id, cur_range_id, offset,
              start, end, next_range_id, content) = self._find_nodes_for_pos(pos)
             return content[start+offset]

=== modified file 'bzrlib/tests/test_hybrid_linked_list.py'
--- a/bzrlib/tests/test_hybrid_linked_list.py	2007-01-31 00:28:29 +0000
+++ b/bzrlib/tests/test_hybrid_linked_list.py	2007-01-31 01:22:58 +0000
@@ -108,6 +108,12 @@
         self.assertEqual([], hll[20:])
         self.assertEqual([], hll[20:21])
 
+        # Test negative values
+        self.assertEqual(8, hll[-1])
+        self.assertEqual(5, hll[-2])
+        self.assertEqual([5, 8], hll[-2:])
+        self.assertEqual([4, 5], hll[-3:-1])
+
     def test__str__and__repr__(self):
         hll = hybrid_linked_list.HybridLinkedList([0, 1, 2, 3, 4])
         self.assertEqual('[0, 1, 2, 3, 4]', str(hll))



More information about the bazaar-commits mailing list