diff options
Diffstat (limited to 'serde_v8/tests')
| -rw-r--r-- | serde_v8/tests/de.rs | 63 | ||||
| -rw-r--r-- | serde_v8/tests/ser.rs | 56 |
2 files changed, 119 insertions, 0 deletions
diff --git a/serde_v8/tests/de.rs b/serde_v8/tests/de.rs index 5f3e262e7..a77089bab 100644 --- a/serde_v8/tests/de.rs +++ b/serde_v8/tests/de.rs @@ -4,6 +4,7 @@ use serde::Deserializer; use serde_v8::utils::js_exec; use serde_v8::utils::v8_do; +use serde_v8::BigInt; use serde_v8::ByteString; use serde_v8::Error; use serde_v8::U16String; @@ -566,3 +567,65 @@ detest!( "BigInt(-1.7976931348623157e+308)", f32::NEG_INFINITY ); + +// BigInt to BigInt +detest!( + de_bigint_var_u8, + BigInt, + "255n", + num_bigint::BigInt::from(255u8).into() +); +detest!( + de_bigint_var_i8, + BigInt, + "-128n", + num_bigint::BigInt::from(-128i8).into() +); +detest!( + de_bigint_var_u16, + BigInt, + "65535n", + num_bigint::BigInt::from(65535u16).into() +); +detest!( + de_bigint_var_i16, + BigInt, + "-32768n", + num_bigint::BigInt::from(-32768i16).into() +); +detest!( + de_bigint_var_u32, + BigInt, + "4294967295n", + num_bigint::BigInt::from(4294967295u32).into() +); +detest!( + de_bigint_var_i32, + BigInt, + "-2147483648n", + num_bigint::BigInt::from(-2147483648i32).into() +); +detest!( + de_bigint_var_u64, + BigInt, + "18446744073709551615n", + num_bigint::BigInt::from(18446744073709551615u64).into() +); +detest!( + de_bigint_var_i64, + BigInt, + "-9223372036854775808n", + num_bigint::BigInt::from(-9223372036854775808i64).into() +); +detest!( + de_bigint_var_u128, + BigInt, + "340282366920938463463374607431768211455n", + num_bigint::BigInt::from(340282366920938463463374607431768211455u128).into() +); +detest!( + de_bigint_var_i128, + BigInt, + "-170141183460469231731687303715884105728n", + num_bigint::BigInt::from(-170141183460469231731687303715884105728i128).into() +); diff --git a/serde_v8/tests/ser.rs b/serde_v8/tests/ser.rs index d6de3a62a..b61a758f9 100644 --- a/serde_v8/tests/ser.rs +++ b/serde_v8/tests/ser.rs @@ -3,6 +3,7 @@ use serde::Serialize; use serde_json::json; use serde_v8::utils::js_exec; use serde_v8::utils::v8_do; +use serde_v8::BigInt; #[derive(Debug, Serialize, PartialEq)] struct MathOp { @@ -138,6 +139,61 @@ sertest!( ); sertest!( + ser_bigint_u8, + BigInt::from(num_bigint::BigInt::from(255_u8)), + "x === 255n" +); +sertest!( + ser_bigint_i8, + BigInt::from(num_bigint::BigInt::from(-128_i8)), + "x === -128n" +); +sertest!( + ser_bigint_u16, + BigInt::from(num_bigint::BigInt::from(65535_u16)), + "x === 65535n" +); +sertest!( + ser_bigint_i16, + BigInt::from(num_bigint::BigInt::from(-32768_i16)), + "x === -32768n" +); +sertest!( + ser_bigint_u32, + BigInt::from(num_bigint::BigInt::from(4294967295_u32)), + "x === 4294967295n" +); +sertest!( + ser_bigint_i32, + BigInt::from(num_bigint::BigInt::from(-2147483648_i32)), + "x === -2147483648n" +); +sertest!( + ser_bigint_u64, + BigInt::from(num_bigint::BigInt::from(9007199254740991_u64)), + "x === 9007199254740991n" +); +sertest!( + ser_bigint_i64, + BigInt::from(num_bigint::BigInt::from(-9007199254740991_i64)), + "x === -9007199254740991n" +); +sertest!( + ser_bigint_u128, + BigInt::from(num_bigint::BigInt::from( + 340282366920938463463374607431768211455_u128 + )), + "x === 340282366920938463463374607431768211455n" +); +sertest!( + ser_bigint_i128, + BigInt::from(num_bigint::BigInt::from( + -170141183460469231731687303715884105728_i128 + )), + "x === -170141183460469231731687303715884105728n" +); + +sertest!( ser_map, { let map: std::collections::BTreeMap<&str, u32> = |
