#![cfg(not(debug_assertions))]
use kevy_bench::{bench, black_box};
use kevy_bytes::SmallBytes;
#[test]
fn from_slice_inline_under_budget() {
let buf = b"hello world!".to_vec();
let s = bench(40, 50_000, || {
black_box(SmallBytes::from_slice(black_box(&buf)));
});
assert!(
s.median_ns < 50,
"SmallBytes::from_slice (12B inline) median = {} ns, budget 50",
s.median_ns
);
}
#[test]
fn clone_inline_under_budget() {
let sb = SmallBytes::from_slice(b"hello world!");
let s = bench(40, 50_000, || {
black_box(black_box(&sb).clone());
});
assert!(
s.median_ns < 50,
"SmallBytes clone (12B inline) median = {} ns, budget 50",
s.median_ns
);
}
#[test]
fn as_slice_inline_under_budget() {
let sb = SmallBytes::from_slice(b"hello world!");
let s = bench(40, 100_000, || {
black_box(black_box(&sb).as_slice());
});
assert!(
s.median_ns < 20,
"SmallBytes as_slice (inline) median = {} ns, budget 20",
s.median_ns
);
}
#[test]
fn size_and_align_pinned() {
assert_eq!(std::mem::size_of::<SmallBytes>(), 24);
assert_eq!(
std::mem::align_of::<SmallBytes>(),
std::mem::align_of::<usize>()
);
}