Skip to content

Commit 954acee

Browse files
committed
Added tests for the try_from slice method.
1 parent 98afd95 commit 954acee

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

src/deque.rs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1030,7 +1030,7 @@ impl<T, const NS: usize, const ND: usize> TryFrom<[T; NS]> for Deque<T, ND> {
10301030
if size_of::<T>() != 0 {
10311031
// SAFETY: We already ensured that value fits in deq.
10321032
unsafe {
1033-
ptr::copy_nonoverlapping(value.as_ptr(), deq.buffer.as_mut_ptr() as *mut T, NS);
1033+
ptr::copy_nonoverlapping(value.as_ptr(), deq.buffer.buffer.as_mut_ptr() as *mut T, NS);
10341034
}
10351035
}
10361036

@@ -1588,4 +1588,23 @@ mod tests {
15881588

15891589
assert_eq!(a, b);
15901590
}
1591+
1592+
#[test]
1593+
fn tyr_from_slice() {
1594+
1595+
assert!(Deque::<u8, 3>::try_from([1, 2, 3, 4]).is_err());
1596+
1597+
let deq1 = Deque::<u8, 8>::try_from([1, 2, 3, 4]).unwrap();
1598+
let mut deq2 = Deque::<u8, 8>::new();
1599+
deq2.push_back(1).unwrap();
1600+
deq2.push_back(2).unwrap();
1601+
deq2.push_back(3).unwrap();
1602+
deq2.push_back(4).unwrap();
1603+
1604+
// todo change to `assert_eq!(deq1, deq2);` when PR #521 is merged.
1605+
assert_eq!(deq1.len(), deq2.len());
1606+
for (i, e1) in deq1.iter().enumerate() {
1607+
assert_eq!(Some(e1), deq2.get(i));
1608+
}
1609+
}
15911610
}

0 commit comments

Comments
 (0)