#![cfg(test)]
use core::alloc::Layout;
use oct::Outlay;
#[test]
fn test_outlay() {
assert!(<u8>::classify_size(0).is_none());
assert!(<u8>::classify_size(1).is_some());
assert_eq!(<(u128, u128)>::classify_size(31), None);
assert_eq!(<(u128, u128)>::classify_size(32), Some(()));
assert_eq!(<(u128, u128)>::classify_size(64), Some(()));
assert_eq!(<[i32]>::classify_size(0), Some(0));
assert_eq!(<[i32]>::classify_size(1), None);
assert_eq!(<[i32]>::classify_size(2), None);
assert_eq!(<[i32]>::classify_size(3), None);
assert_eq!(<[i32]>::classify_size(4), Some(1));
assert_eq!(str::classify_size(0), Some(0));
assert_eq!(str::classify_size(1), Some(1));
assert_eq!(str::classify_size(2), Some(2));
assert_eq!(str::classify_size(3), Some(3));
assert_eq!(str::classify_size(4), Some(4));
assert_eq!(<[()]>::classify_size(0), None);
assert_eq!(<[()]>::classify_size(1), None);
assert_eq!(<[()]>::classify_size(2), None);
assert_eq!(<[()]>::classify_size(3), None);
assert_eq!(<[()]>::classify_size(4), None);
assert_eq!(
<i8>::layout_for_metadata(()),
Ok(Layout::new::<i8>()),
);
assert_eq!(
<[i8; 8]>::layout_for_metadata(()),
Layout::array::<i8>(8),
);
assert_eq!(
<[i8]>::layout_for_metadata(8),
Layout::array::<i8>(8),
);
<[i8]>::layout_for_metadata(isize::MAX as usize).unwrap();
<[i8]>::layout_for_metadata(isize::MAX as usize + 1).unwrap_err();
assert!(<i32>::ptr_dangling_with_metadata(()).is_aligned());
assert!(!<i32>::ptr_dangling_with_metadata(()).is_null());
assert_eq!(<[i32]>::ptr_dangling_with_metadata(0).addr() % align_of::<i32>(), 0);
assert!(!<[i32]>::ptr_dangling_with_metadata(0).is_null());
}