array_of.rs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. use std::io::Cursor;
  2. use binrw::{BinRead, BinWrite};
  3. use ezcad::array_of::ArrayOf;
  4. #[test]
  5. fn array_of_be() {
  6. let encoded: Vec<u8> = vec![0x00, 0x00, 0x00, 0x02, 0x0A, 0x0B, 0x0C, 0x0D, 0x01, 0x02, 0x03, 0x04];
  7. let decoded: ArrayOf<u32> = ArrayOf {
  8. value: vec![0x0A0B0C0D, 0x01020304]
  9. };
  10. let mut stream: Cursor<Vec<u8>> = Cursor::new(encoded.clone());
  11. assert_eq!(
  12. ArrayOf::<u32>::read_be(&mut stream).unwrap(),
  13. decoded
  14. );
  15. let mut buffer: Cursor<Vec<u8>> = Cursor::new(vec![]);
  16. decoded.write_be(&mut buffer).unwrap();
  17. assert_eq!(buffer.into_inner(), encoded);
  18. }
  19. #[test]
  20. fn array_of_le() {
  21. let encoded: Vec<u8> = vec![0x02, 0x00, 0x00, 0x00, 0x0A, 0x0B, 0x0C, 0x0D, 0x01, 0x02, 0x03, 0x04];
  22. let decoded: ArrayOf<u32> = ArrayOf {
  23. value: vec![0x0D0C0B0A, 0x04030201]
  24. };
  25. let mut stream: Cursor<Vec<u8>> = Cursor::new(encoded.clone());
  26. assert_eq!(
  27. ArrayOf::<u32>::read_le(&mut stream).unwrap(),
  28. decoded
  29. );
  30. let mut buffer: Cursor<Vec<u8>> = Cursor::new(vec![]);
  31. decoded.write_le(&mut buffer).unwrap();
  32. assert_eq!(buffer.into_inner(), encoded);
  33. }