use aok::{OK, Void};
use tracing::info;
#[static_init::constructor(0)]
extern "C" fn _loginit() {
loginit::init();
}
#[test]
fn test() -> Void {
let n: u64 = 123456;
let bin = intbin::to_bin(n);
info!("{n} -> {:?}", &bin);
assert_eq!(n, intbin::bin_u64(&bin));
let n16: u16 = 12345;
let bin16 = intbin::to_bin(n16);
assert_eq!(n16, intbin::bin_u16(&bin16));
let n8: u8 = 123;
let bin8 = intbin::u8_bin(n8);
assert_eq!(n8, intbin::bin_u8(&bin8));
let n_zero: u64 = 0;
let bin_zero = intbin::to_bin(n_zero);
assert!(bin_zero.is_empty());
assert_eq!(0u64, intbin::bin_u64(&bin_zero));
assert_eq!(0u16, intbin::bin_u16(&bin_zero));
assert_eq!(0u8, intbin::bin_u8(&bin_zero));
let large_bin = vec![1u8, 2u8, 3u8, 4u8, 5u8];
assert_eq!(513u16, intbin::bin_u16(&large_bin));
assert_eq!(1u8, intbin::bin_u8(&large_bin));
OK
}