resolve deque.rotate panic

This commit is contained in:
eldpswp99
2021-08-24 20:04:46 +09:00
parent 27797e5f77
commit 988c686e7d
2 changed files with 7 additions and 6 deletions

View File

@@ -436,7 +436,6 @@ class TestBasic(unittest.TestCase):
self.assertEqual(list(d), data[:i])
self.assertRaises(TypeError, d.reverse, 1) # Arity is zero
@unittest.skip("TODO: RUSTPYTHON panics")
def test_rotate(self):
s = tuple('abcde')
n = len(s)

View File

@@ -374,11 +374,13 @@ mod _collections {
fn rotate(&self, mid: OptionalArg<isize>) {
self.state.fetch_add(1);
let mut deque = self.borrow_deque_mut();
let mid = mid.unwrap_or(1);
if mid < 0 {
deque.rotate_left(-mid as usize);
} else {
deque.rotate_right(mid as usize);
if !deque.is_empty() {
let mid = mid.unwrap_or(1) % deque.len() as isize;
if mid.is_negative() {
deque.rotate_left(-mid as usize);
} else {
deque.rotate_right(mid as usize);
}
}
}