use fusor::{Device, QMatrix, Tensor};
use fusor_cpu::GgmlType;
#[test]
#[should_panic]
fn matmul_shape_mismatch_panics() {
let lhs: Tensor<2, f32> = Tensor::from_slice(&Device::Cpu, [2, 3], &[1.0; 6]);
let rhs: Tensor<2, f32> = Tensor::from_slice(&Device::Cpu, [2, 2], &[1.0; 4]);
let _ = lhs.matmul(&rhs);
}
#[test]
#[should_panic]
fn slice_assign_out_of_bounds_panics() {
let target: Tensor<2, f32> = Tensor::from_slice(&Device::Cpu, [3, 3], &[0.0; 9]);
let value: Tensor<2, f32> = Tensor::from_slice(&Device::Cpu, [2, 2], &[1.0; 4]);
let _ = target.slice_assign([2..4, 0..2], &value).to_concrete();
}
#[test]
#[should_panic]
fn slice_assign_shape_mismatch_panics() {
let target: Tensor<2, f32> = Tensor::from_slice(&Device::Cpu, [3, 3], &[0.0; 9]);
let value: Tensor<2, f32> = Tensor::from_slice(&Device::Cpu, [3, 2], &[1.0; 6]);
let _ = target.slice_assign([0..2, 0..2], &value).to_concrete();
}
#[test]
#[should_panic(expected = "Innermost dimension")]
fn quantized_invalid_inner_dim_panics() {
let bytes = vec![0u8; 36];
let _ = QMatrix::from_raw_bytes(&Device::Cpu, [2usize, 33], &bytes, GgmlType::Q4_0);
}
#[test]
#[should_panic(expected = "assertion `left == right` failed")]
fn quantized_invalid_block_count_panics() {
let bytes = vec![0u8; 36];
let _ = QMatrix::from_raw_bytes(&Device::Cpu, [2usize, 64], &bytes, GgmlType::Q4_0);
}