mod model;
pub use model::*;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_fifo_queue_new() {
let ptr_addr = 0x04D2; let fifo = FifoQueue::new(ptr_addr);
assert_eq!(fifo.ptr_address(), ptr_addr);
assert_eq!(fifo.length(), 0);
assert_eq!(fifo.queue().len(), 0);
}
#[test]
fn test_fifo_queue_with_values() {
let mut values = [0u16; MAX_FIFO_QUEUE_COUNT_PER_PDU];
values[0] = 0xAAAA;
values[1] = 0xBBBB;
values[2] = 0xCCCC;
let fifo = FifoQueue::new(100).with_values(values, 3);
assert_eq!(fifo.length(), 3);
assert_eq!(fifo.queue(), &values[..3]);
assert_eq!(fifo.queue()[0], 0xAAAA);
}
#[test]
fn test_fifo_queue_overflow_protection() {
let values = [1u16; MAX_FIFO_QUEUE_COUNT_PER_PDU];
let fifo = FifoQueue::new(100).with_values(values, 50);
assert_eq!(fifo.length(), MAX_FIFO_QUEUE_COUNT_PER_PDU);
assert_eq!(fifo.queue().len(), MAX_FIFO_QUEUE_COUNT_PER_PDU);
}
}