use bytify::{bytify_be, bytify_le};
#[test]
fn literals() {
assert_eq!(bytify_le!(), []);
assert_eq!(bytify_le!(true), [1]);
assert_eq!(bytify_le!(false), [0]);
assert_eq!(bytify_le!('A'), [0x41]);
assert_eq!(bytify_le!('Я'), [0xD0, 0xAF]);
assert_eq!(bytify_le!('🤡'), [0xF0, 0x9F, 0xA4, 0xA1]);
assert_eq!(bytify_le!(10), [0x0A, 0x00, 0x00, 0x00]);
assert_eq!(bytify_le!(-1), [0xFF, 0xFF, 0xFF, 0xFF]);
assert_eq!(bytify_le!(10u8), [0x0A]);
assert_eq!(bytify_le!(-1i8), [0xFF]);
assert_eq!(bytify_le!(10u16), [0x0A, 0x00]);
assert_eq!(bytify_le!(-1i16), [0xFF, 0xFF]);
assert_eq!(bytify_le!(10u32), [0x0A, 0x00, 0x00, 0x00]);
assert_eq!(bytify_le!(-1i32), [0xFF, 0xFF, 0xFF, 0xFF]);
assert_eq!(bytify_le!(10u64), [0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);
assert_eq!(bytify_le!(-1i64), [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]);
assert_eq!(
bytify_le!(10u128),
[
0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00,
],
);
assert_eq!(
bytify_le!(-1i128),
[
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF,
],
);
assert_eq!(bytify_le!(1.0), [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F]);
assert_eq!(bytify_le!(154.811f32), [0x9E, 0xCF, 0x1A, 0x43]);
assert_eq!(bytify_le!(801.194f64), [0x64, 0x3B, 0xDF, 0x4F, 0x8D, 0x09, 0x89, 0x40]);
assert_eq!(
bytify_le!("Hello World"),
[0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64],
);
assert_eq!(
bytify_le!("😍😀☹"),
[0xF0, 0x9F, 0x98, 0x8D, 0xF0, 0x9F, 0x98, 0x80, 0xE2, 0x98, 0xB9],
);
}
#[test]
fn decl() {
bytify_le!(const HELLO: "Hello");
assert_eq!(HELLO, *b"Hello");
bytify_le!(const WORLD: "World");
assert_eq!(WORLD, *b"World");
bytify_le!(const HELLO_WORLD: HELLO, ' ', WORLD);
assert_eq!(HELLO_WORLD, *b"Hello World");
bytify_le!(static VERSION: "v", env!("CARGO_PKG_VERSION"));
assert_eq!(VERSION, *b"v0.4.1");
}
#[test]
fn nesting() {
assert_eq!(bytify_be!(bytify_le!()), []);
assert_eq!(bytify_be!(0xCAFEu16, bytify_le!(0xBEBAu16)), [0xCA, 0xFE, 0xBA, 0xBE]);
}