| use core::array::FixedSizeArray; |
| use core::convert::TryFrom; |
| |
| #[test] |
| fn fixed_size_array() { |
| let mut array = [0; 64]; |
| let mut zero_sized = [(); 64]; |
| let mut empty_array = [0; 0]; |
| let mut empty_zero_sized = [(); 0]; |
| |
| assert_eq!(FixedSizeArray::as_slice(&array).len(), 64); |
| assert_eq!(FixedSizeArray::as_slice(&zero_sized).len(), 64); |
| assert_eq!(FixedSizeArray::as_slice(&empty_array).len(), 0); |
| assert_eq!(FixedSizeArray::as_slice(&empty_zero_sized).len(), 0); |
| |
| assert_eq!(FixedSizeArray::as_mut_slice(&mut array).len(), 64); |
| assert_eq!(FixedSizeArray::as_mut_slice(&mut zero_sized).len(), 64); |
| assert_eq!(FixedSizeArray::as_mut_slice(&mut empty_array).len(), 0); |
| assert_eq!(FixedSizeArray::as_mut_slice(&mut empty_zero_sized).len(), 0); |
| } |
| |
| #[test] |
| fn array_try_from() { |
| macro_rules! test { |
| ($($N:expr)+) => { |
| $({ |
| type Array = [u8; $N]; |
| let array: Array = [0; $N]; |
| let slice: &[u8] = &array[..]; |
| |
| let result = <&Array>::try_from(slice); |
| assert_eq!(&array, result.unwrap()); |
| })+ |
| } |
| } |
| test! { |
| 0 1 2 3 4 5 6 7 8 9 |
| 10 11 12 13 14 15 16 17 18 19 |
| 20 21 22 23 24 25 26 27 28 29 |
| 30 31 32 |
| } |
| } |