hex.rs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #[macro_use]
  2. extern crate generic_array;
  3. extern crate typenum;
  4. use generic_array::GenericArray;
  5. use std::str::from_utf8;
  6. use typenum::U2048;
  7. #[test]
  8. fn short_lower_hex() {
  9. let ar = arr![u8; 10, 20, 30];
  10. assert_eq!(format!("{:x}", ar), "0a141e");
  11. }
  12. #[test]
  13. fn short_upper_hex() {
  14. let ar = arr![u8; 30, 20, 10];
  15. assert_eq!(format!("{:X}", ar), "1E140A");
  16. }
  17. #[test]
  18. fn long_lower_hex() {
  19. let ar = GenericArray::<u8, U2048>::default();
  20. assert_eq!(format!("{:x}", ar), from_utf8(&[b'0'; 4096]).unwrap());
  21. }
  22. #[test]
  23. fn long_lower_hex_truncated() {
  24. let ar = GenericArray::<u8, U2048>::default();
  25. assert_eq!(format!("{:.3001x}", ar), from_utf8(&[b'0'; 3001]).unwrap());
  26. }
  27. #[test]
  28. fn long_upper_hex() {
  29. let ar = GenericArray::<u8, U2048>::default();
  30. assert_eq!(format!("{:X}", ar), from_utf8(&[b'0'; 4096]).unwrap());
  31. }
  32. #[test]
  33. fn long_upper_hex_truncated() {
  34. let ar = GenericArray::<u8, U2048>::default();
  35. assert_eq!(format!("{:.2777X}", ar), from_utf8(&[b'0'; 2777]).unwrap());
  36. }
  37. #[test]
  38. fn truncated_lower_hex() {
  39. let ar = arr![u8; 10, 20, 30, 40, 50];
  40. assert_eq!(format!("{:.2x}", ar), "0a");
  41. assert_eq!(format!("{:.3x}", ar), "0a1");
  42. assert_eq!(format!("{:.4x}", ar), "0a14");
  43. }
  44. #[test]
  45. fn truncated_upper_hex() {
  46. let ar = arr![u8; 30, 20, 10, 17, 0];
  47. assert_eq!(format!("{:.4X}", ar), "1E14");
  48. assert_eq!(format!("{:.5X}", ar), "1E140");
  49. assert_eq!(format!("{:.6X}", ar), "1E140A");
  50. assert_eq!(format!("{:.7X}", ar), "1E140A1");
  51. assert_eq!(format!("{:.8X}", ar), "1E140A11");
  52. }