kapsl-hal 0.1.0

Hardware abstraction layer for CPU, CUDA, and ROCm devices in Kapsl
Documentation
use crate::tensor::{TensorView, TensorViewMut};

#[test]
fn tensor_view_reports_len_and_shape() {
    let data = vec![1u8, 2, 3, 4];
    let shape = [2usize, 2];
    let view = TensorView::new(&data, &shape);

    assert_eq!(view.len(), 4);
    assert!(!view.is_empty());
    assert_eq!(view.shape, &shape);
}

#[test]
fn tensor_view_mut_reports_len_and_allows_mutation() {
    let mut data = vec![0i32, 1, 2, 3];
    let shape = [4usize];
    {
        let view = TensorViewMut::new(&mut data, &shape);
        assert_eq!(view.len(), 4);
        assert!(!view.is_empty());
        assert_eq!(view.shape, &shape);
    }
    data[0] = 42;
    assert_eq!(data[0], 42);
}

#[test]
fn tensor_view_empty_is_empty() {
    let data: Vec<f32> = Vec::new();
    let shape = [0usize];
    let view = TensorView::new(&data, &shape);

    assert_eq!(view.len(), 0);
    assert!(view.is_empty());
}