vyre-wgpu 0.1.0

wgpu backend for vyre IR — implements VyreBackend, owns GPU runtime, buffer pool, pipeline cache
Documentation
// Unit tests extracted from `runtime/cache/lru.rs`.

use crate::runtime::cache::lru::IntrusiveLru;


#[test]
#[inline]
fn touch_present_and_missing_keys() {
    let mut lru = IntrusiveLru::<u32, u32>::new();
    lru.ensure(1);
    lru.ensure(2);

    // Touching an existing key should move it to the front.
    lru.touch(1);
    assert_eq!(lru.hottest(2), vec![1, 2]);

    // Touching a missing key must not panic.
    lru.touch(99);
    assert_eq!(lru.hottest(2), vec![1, 2]);
}

#[test]
#[inline]
fn capacity_evicts_coldest_without_growing_live_set() {
    let mut lru = IntrusiveLru::<u32, u32>::with_capacity(2);
    *lru.ensure(1) = 10;
    *lru.ensure(2) = 20;
    lru.touch(1);
    *lru.ensure(3) = 30;

    assert_eq!(lru.get(&1), Some(&10));
    assert_eq!(lru.get(&2), None);
    assert_eq!(lru.get(&3), Some(&30));
    assert_eq!(lru.hottest(3), vec![3, 1]);
}