use hex_literal::hex;
mod common;
use common::{test_compile_ser, test_load_from_string};
#[test]
fn test_tuple() {
let rec = "(i32)";
test_compile_ser(rec, "(0)", Some(&hex!("00000000")), (0i32,));
test_compile_ser(rec, "(1)", Some(&hex!("01000000")), (1i32,));
test_compile_ser(
rec,
"(-1997293040)",
Some(&hex!("10baf388")),
(-1997293040i32,),
);
test_compile_ser(rec, "(150517066)", Some(&hex!("4ab5f808")), (150517066i32,));
let rec = "(bool, u32)";
test_compile_ser(
rec,
"(false, 3725879192)",
Some(&hex!("00986714de")),
(false, 3725879192u32),
);
test_compile_ser(
rec,
"(true, 3017113990)",
Some(&hex!("018681d5b3")),
(true, 3017113990u32),
);
test_load_from_string("(0)", (0i32,));
test_load_from_string("(0, 1)", (0i32, 1i32));
test_load_from_string("(0, 1, 2)", (0i32, 1i32, 2i32));
test_load_from_string("(0, 1, 2, 3)", (0i32, 1i32, 2i32, 3i32));
test_load_from_string("(0, 1, 2, 3, 4)", (0i32, 1i32, 2i32, 3i32, 4i32));
test_load_from_string("(0, 1, 2, 3, 4, 5)", (0i32, 1i32, 2i32, 3i32, 4i32, 5i32));
test_load_from_string(
"(0, 1, 2, 3, 4, 5, 6)",
(0i32, 1i32, 2i32, 3i32, 4i32, 5i32, 6i32),
);
test_load_from_string(
"(0, 1, 2, 3, 4, 5, 6, 7)",
(0i32, 1i32, 2i32, 3i32, 4i32, 5i32, 6i32, 7i32),
);
test_load_from_string(
"(0, 1, 2, 3, 4, 5, 6, 7, 8)",
(0i32, 1i32, 2i32, 3i32, 4i32, 5i32, 6i32, 7i32, 8i32),
);
test_load_from_string(
"(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)",
(0i32, 1i32, 2i32, 3i32, 4i32, 5i32, 6i32, 7i32, 8i32, 9i32),
);
test_load_from_string(
"(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)",
(
0i32, 1i32, 2i32, 3i32, 4i32, 5i32, 6i32, 7i32, 8i32, 9i32, 10i32,
),
);
test_load_from_string(
"(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)",
(
0i32, 1i32, 2i32, 3i32, 4i32, 5i32, 6i32, 7i32, 8i32, 9i32, 10i32, 11i32,
),
);
test_load_from_string("(99, false, (-1, 4))", (99, false, (-1, 4)));
}