use inspect_core::{Inspect, InspectCx, Kind};
#[test]
fn test_unit() {
let value = ();
let mut cx = InspectCx::new();
let inspected = value.inspect(&mut cx);
assert_eq!(inspected.kind(), &Kind::Unit);
assert_eq!(inspected.type_info().name(), "()");
}
#[test]
fn test_bool() {
let value = true;
let mut cx = InspectCx::new();
let inspected = value.inspect(&mut cx);
assert_eq!(inspected.kind(), &Kind::Bool(true));
}
#[test]
fn test_integers() {
let mut cx = InspectCx::new();
assert_eq!(42i8.inspect(&mut cx).kind(), &Kind::I8(42));
assert_eq!(42i16.inspect(&mut cx).kind(), &Kind::I16(42));
assert_eq!(42i32.inspect(&mut cx).kind(), &Kind::I32(42));
assert_eq!(42i64.inspect(&mut cx).kind(), &Kind::I64(42));
assert_eq!(42u8.inspect(&mut cx).kind(), &Kind::U8(42));
assert_eq!(42u16.inspect(&mut cx).kind(), &Kind::U16(42));
assert_eq!(42u32.inspect(&mut cx).kind(), &Kind::U32(42));
assert_eq!(42u64.inspect(&mut cx).kind(), &Kind::U64(42));
}
#[test]
#[allow(clippy::approx_constant)]
fn test_floats() {
let mut cx = InspectCx::new();
assert_eq!(3.14f32.inspect(&mut cx).kind(), &Kind::F32(3.14));
assert_eq!(3.14f64.inspect(&mut cx).kind(), &Kind::F64(3.14));
}
#[test]
fn test_char() {
let value = 'x';
let mut cx = InspectCx::new();
let inspected = value.inspect(&mut cx);
assert_eq!(inspected.kind(), &Kind::Char('x'));
}
#[test]
fn test_str() {
let value = "hello";
let mut cx = InspectCx::new();
let inspected = value.inspect(&mut cx);
match inspected.kind() {
Kind::Str(s) => assert_eq!(s.as_ref(), "hello"),
_ => panic!("Expected Str kind"),
}
}
#[test]
fn test_string() {
let value = String::from("world");
let mut cx = InspectCx::new();
let inspected = value.inspect(&mut cx);
match inspected.kind() {
Kind::Str(s) => assert_eq!(s.as_ref(), "world"),
_ => panic!("Expected Str kind"),
}
}