use super::*;
#[test]
fn ifds_vyre_resident_ranges_from_empty() {
let ranges = resident_read_ranges_from(&[]).unwrap();
assert!(ranges.is_empty());
}
#[test]
fn ifds_vyre_resident_ranges_from_single() {
let r = vyre::backend::Resource::Resident(7);
let input = [(&r, 16, 32)];
let ranges = resident_read_ranges_from(&input).unwrap();
assert_eq!(ranges.len(), 1);
assert!(std::ptr::eq(ranges[0].resource, &r));
assert_eq!(ranges[0].byte_offset, 16);
assert_eq!(ranges[0].byte_len, 32);
}
#[test]
fn ifds_vyre_resident_ranges_from_multiple() {
let r1 = vyre::backend::Resource::Resident(1);
let r2 = vyre::backend::Resource::Resident(2);
let input = [(&r1, 0, 8), (&r2, 16, 4)];
let ranges = resident_read_ranges_from(&input).unwrap();
assert_eq!(ranges.len(), 2);
assert_eq!(ranges[0].byte_offset, 0);
assert_eq!(ranges[1].byte_offset, 16);
}
#[test]
fn ifds_vyre_resident_ranges_from_preserves_resource_ref() {
let r = vyre::backend::Resource::Resident(99);
let input = [(&r, 0, 1)];
let ranges = resident_read_ranges_from(&input).unwrap();
assert!(std::ptr::eq(ranges[0].resource, &r));
}
#[test]
fn ifds_vyre_resident_ranges_from_zero_len() {
let r = vyre::backend::Resource::Resident(1);
let input = [(&r, 64, 0)];
let ranges = resident_read_ranges_from(&input).unwrap();
assert_eq!(ranges[0].byte_len, 0);
assert_eq!(ranges[0].byte_offset, 64);
}
#[test]
fn ifds_vyre_resident_ranges_from_large_count() {
let r = vyre::backend::Resource::Resident(1);
let mut inputs: Vec<(&vyre::backend::Resource, usize, usize)> = Vec::new();
for i in 0..100 {
inputs.push((&r, i * 8, 8));
}
let ranges = resident_read_ranges_from(&inputs).unwrap();
assert_eq!(ranges.len(), 100);
}