#![allow(clippy::excessive_precision)]
#![allow(clippy::approx_constant)]
use indicio::{value, Value};
#[test]
fn value_bool() {
assert_eq!(Value::Bool(true), value!(true));
assert_eq!(Value::Bool(false), value!(false));
}
#[test]
fn value_i64() {
assert_eq!(Value::I64(i64::MIN), value!(-9223372036854775808i64));
assert_eq!(Value::I64(i64::MAX), value!(9223372036854775807i64));
}
#[test]
fn value_u64() {
assert_eq!(Value::U64(u64::MAX), value!(18446744073709551615u64));
}
#[test]
fn value_f64() {
assert_eq!(
Value::F64(std::f64::consts::PI),
value!(3.14159265358979323846264338327950288_f64)
);
}
#[test]
fn value_string() {
assert_eq!(Value::String("foo".to_string()), value!("foo"));
}
#[test]
fn value_array() {
assert_eq!(Value::Array(vec![].into()), value!([]));
assert_eq!(
Value::Array(
vec![
Value::Bool(false),
Value::Bool(true),
Value::Array(
vec![
Value::String("hello".to_string()),
Value::String("world".to_string())
]
.into()
)
]
.into()
),
value!([false, true, ["hello", "world"]])
);
}
#[test]
fn value_object() {
assert_eq!(Value::Object(vec![].into_iter().collect()), value!({}));
assert_eq!(
Value::Object(
vec![
("hello".to_string(), Value::String("world".to_string())),
(
"consts".to_string(),
Value::Array(
vec![Value::F64(2.718281828459045), Value::F64(3.141592653589793)].into()
)
),
(
"recursive".to_string(),
Value::Object(
vec![
("hello".to_string(), Value::String("world".to_string())),
(
"consts".to_string(),
Value::Array(
vec![
Value::F64(2.718281828459045),
Value::F64(3.141592653589793)
]
.into()
)
),
]
.into_iter()
.collect()
)
),
]
.into_iter()
.collect()
),
value!({
hello: "world",
consts: [
2.71828182845904523536028747135266250_f64,
3.14159265358979323846264338327950288_f64,
],
recursive: {
hello: "world",
consts: [
2.71828182845904523536028747135266250_f64,
3.14159265358979323846264338327950288_f64,
],
}
})
);
}