use std::mem;
use uninum::{Number, num};
#[test]
fn test_number_size() {
let size = mem::size_of::<Number>();
let align = mem::align_of::<Number>();
assert!(size <= 24, "Number size is {size} bytes, expected <= 24");
assert!(
align >= 8,
"Number alignment is {align} bytes, expected >= 8"
);
}
#[test]
fn test_number_variants() {
let _u64 = Number::from(42_000_000_000_u64);
let _i64 = Number::from(-42_000_000_000_i64);
let _f64 = num!(std::f64::consts::PI);
#[cfg(feature = "decimal")]
{
use rust_decimal::Decimal;
let _decimal = Number::from(Decimal::new(314, 2));
}
}
#[test]
fn test_debug_display() {
let u64_num = Number::from(42_u64);
let i64_num = Number::from(-42_i64);
let f64_num = num!(std::f64::consts::PI);
let _ = format!("{u64_num:?}");
let _ = format!("{i64_num:?}");
let _ = format!("{f64_num:?}");
assert_eq!(format!("{u64_num}"), "42");
assert_eq!(format!("{i64_num}"), "-42");
assert_eq!(format!("{f64_num}"), "3.141592653589793");
}