ares/rust/ibig/tests/serde.rs

93 lines
2.3 KiB
Rust
Raw Normal View History

2023-02-24 06:50:46 +03:00
use ibig::{ibig, ubig};
use serde_test::{assert_de_tokens, assert_tokens, Token};
#[test]
fn test_ubig_serde() {
assert_tokens(&ubig!(0), &[Token::Seq { len: Some(0) }, Token::SeqEnd]);
assert_de_tokens(&ubig!(0), &[Token::Seq { len: None }, Token::SeqEnd]);
assert_tokens(
&ubig!(17),
&[Token::Seq { len: Some(1) }, Token::U64(17), Token::SeqEnd],
);
assert_de_tokens(
&ubig!(17),
&[Token::Seq { len: None }, Token::U8(17), Token::SeqEnd],
);
assert_tokens(
&ubig!(0x123451234567890abcdef),
&[
Token::Seq { len: Some(2) },
Token::U64(0x1234567890abcdef),
Token::U64(0x12345),
Token::SeqEnd,
],
);
assert_de_tokens(
&ubig!(0x123451234567890abcdef),
&[
Token::Seq { len: None },
Token::U64(0x1234567890abcdef),
Token::U64(0x12345),
Token::SeqEnd,
],
);
}
#[test]
fn test_ibig_serde() {
assert_tokens(
&ibig!(0),
&[
Token::Tuple { len: 2 },
Token::UnitVariant {
name: "Sign",
variant: "Positive",
},
Token::Seq { len: Some(0) },
Token::SeqEnd,
Token::TupleEnd,
],
);
assert_de_tokens(
&ibig!(0),
&[
Token::Seq { len: None },
Token::UnitVariant {
name: "Sign",
variant: "Negative",
},
Token::Seq { len: None },
Token::SeqEnd,
Token::SeqEnd,
],
);
assert_tokens(
&ibig!(17),
&[
Token::Tuple { len: 2 },
Token::UnitVariant {
name: "Sign",
variant: "Positive",
},
Token::Seq { len: Some(1) },
Token::U64(17),
Token::SeqEnd,
Token::TupleEnd,
],
);
assert_tokens(
&ibig!(-17),
&[
Token::Tuple { len: 2 },
Token::UnitVariant {
name: "Sign",
variant: "Negative",
},
Token::Seq { len: Some(1) },
Token::U64(17),
Token::SeqEnd,
Token::TupleEnd,
],
);
}