use super::super::super::super::*;
#[test]
fn test_f211_lazy_simd_config_methods() {
let config = LazySimdConfig::new();
let backend = config.best_backend();
assert!(!format!("{backend:?}").is_empty());
let _amx = config.has_amx();
let config2 = LazySimdConfig::default();
assert_eq!(config2.state(), SimdBackendState::Uninitialized);
}
#[test]
fn test_f212_unroll_tail_iterator_edge_cases() {
let iter = UnrollTailIterator::new(0, UnrollFactor::X4);
assert_eq!(iter.full_iterations(), 0);
assert_eq!(iter.tail_size(), 0);
assert!(!iter.has_tail());
assert_eq!(iter.tail_range(), None);
let iter = UnrollTailIterator::new(8, UnrollFactor::X4);
assert_eq!(iter.full_iterations(), 2);
assert_eq!(iter.tail_size(), 0);
assert!(!iter.has_tail());
let mut iter = UnrollTailIterator::new(5, UnrollFactor::None);
assert_eq!(iter.full_iterations(), 5);
assert_eq!(iter.tail_size(), 0);
for i in 0..5 {
assert_eq!(iter.next_chunk(), Some((i, i + 1)));
}
assert_eq!(iter.next_chunk(), None);
}
#[test]
fn test_f213_dual_waker_state_edge_cases() {
let mut state = DualWakerState::new(20, 80);
state.producer_wait();
state.producer_woke();
state.consumer_wait();
state.consumer_woke();
state.consumer_wait();
let decision = state.update_fill(30);
assert_eq!(decision, WakeDecision::WakeConsumer);
state.update_fill(0);
assert!(!state.can_consume());
}
#[test]
fn test_f214_stream_capacity_window_ops() {
let mut cap = StreamCapacity::new();
assert_eq!(cap.available_receive(), StreamCapacity::DEFAULT_WINDOW);
assert!(!cap.needs_window_update());
cap.consume_receive(50000);
assert_eq!(cap.available_receive(), StreamCapacity::DEFAULT_WINDOW - 50000);
cap.consume_receive(20000);
assert!(cap.needs_window_update());
cap.replenish_receive(10000);
assert_eq!(cap.available_receive(), StreamCapacity::DEFAULT_WINDOW - 60000);
let cap2 = StreamCapacity::default();
assert!(!cap2.is_blocked());
}
#[test]
fn test_f215_wake_skip_state_tracking() {
let mut state = WakeSkipState::new(2);
state.register_waker();
state.add_pending(5);
assert_eq!(state.pending(), 5);
state.add_pending(3);
assert_eq!(state.pending(), 8);
state.remove_pending(4);
assert_eq!(state.pending(), 4);
state.record_poll(false);
state.record_poll(false);
state.reset_tracking();
assert!(!state.should_skip_wake()); }