#[test]
fn test_cov95_fused_q6k_dot_basic() {
let q6k_data = vec![0u8; 210];
let activations = vec![1.0f32; 256];
let result = fused_q6k_dot(&q6k_data, &activations);
assert!(result.is_ok());
}
#[test]
fn test_cov95_fused_q6k_dot_simd_basic() {
let q6k_data = vec![0u8; 210];
let activations = vec![1.0f32; 256];
let result = fused_q6k_dot_simd(&q6k_data, &activations);
assert!(result.is_ok());
}
#[test]
fn test_cov95_fused_q5k_dot_basic() {
let q5k_data = vec![0u8; 176];
let activations = vec![1.0f32; 256];
let result = fused_q5k_dot(&q5k_data, &activations);
assert!(result.is_ok());
}
#[test]
fn test_cov95_fused_q5k_dot_simd_basic() {
let q5k_data = vec![0u8; 176];
let activations = vec![1.0f32; 256];
let result = fused_q5k_dot_simd(&q5k_data, &activations);
assert!(result.is_ok());
}
#[test]
fn test_cov95_fused_q4k_tiled_matvec_small() {
let in_dim = 256;
let out_dim = 64;
let bytes_per_row = 144; let weight_data = vec![0u8; bytes_per_row * out_dim];
let activations = vec![1.0f32; in_dim];
let result = fused_q4k_tiled_matvec(&weight_data, &activations, in_dim, out_dim, None);
assert!(result.is_ok());
assert_eq!(result.expect("quantization failed").len(), out_dim);
}
#[test]
fn test_cov95_fused_q4k_parallel_matvec_basic() {
let in_dim = 256;
let out_dim = 32;
let bytes_per_row = 144;
let weight_data = vec![0u8; bytes_per_row * out_dim];
let activations = vec![1.0f32; in_dim];
let result = fused_q4k_parallel_matvec(&weight_data, &activations, in_dim, out_dim);
assert!(result.is_ok());
assert_eq!(result.expect("quantization failed").len(), out_dim);
}
#[test]
fn test_cov95_fused_q5k_parallel_matvec_basic() {
let in_dim = 256;
let out_dim = 32;
let bytes_per_row = 176; let weight_data = vec![0u8; bytes_per_row * out_dim];
let activations = vec![1.0f32; in_dim];
let result = fused_q5k_parallel_matvec(&weight_data, &activations, in_dim, out_dim);
assert!(result.is_ok());
assert_eq!(result.expect("quantization failed").len(), out_dim);
}
#[test]
fn test_cov95_fused_q6k_parallel_matvec_basic() {
let in_dim = 256;
let out_dim = 32;
let bytes_per_row = 210; let weight_data = vec![0u8; bytes_per_row * out_dim];
let activations = vec![1.0f32; in_dim];
let result = fused_q6k_parallel_matvec(&weight_data, &activations, in_dim, out_dim);
assert!(result.is_ok());
assert_eq!(result.expect("quantization failed").len(), out_dim);
}
#[test]
fn test_cov95_fused_q4k_q8_dot_basic() {
let q4k_data = vec![0u8; 144];
let q8_blocks = vec![
Q8_0Block {
scale: 1.0,
quants: [0i8; 32],
};
8
];
let result = fused_q4k_q8_dot(&q4k_data, &q8_blocks);
assert!(result.is_ok());
}
#[test]
fn test_cov95_fused_q4k_q8k_dot_basic() {
let q4k_data = vec![0u8; 144];
let q8k_scales = vec![1.0f32; 8]; let q8k_quants = vec![0i8; 256];
let result = fused_q4k_q8k_dot(&q4k_data, &q8k_scales, &q8k_quants);
assert!(result.is_ok());
}
#[test]
fn test_cov95_fused_q4k_q8k_dot_simd_basic() {
let q4k_data = vec![0u8; 144];
let q8k_scales = vec![1.0f32; 8];
let q8k_quants = vec![0i8; 256];
let result = fused_q4k_q8k_dot_simd(&q4k_data, &q8k_scales, &q8k_quants);
assert!(result.is_ok());
}
#[test]
fn test_cov95_quantize_rmsnorm_q8_0_basic() {
let input = vec![1.0f32; 256];
let norm_weight = vec![1.0f32; 256];
let eps = 1e-5;
let (scales, quants) = quantize_rmsnorm_q8_0(&input, &norm_weight, eps);
assert!(!scales.is_empty());
assert!(!quants.is_empty());
}
#[test]
fn test_cov95_quantize_rmsnorm_q8_0_into_basic() {
let input = vec![1.0f32; 256];
let norm_weight = vec![1.0f32; 256];
let eps = 1e-5;
let mut scales = vec![0.0f32; 8]; let mut quants = vec![0i8; 256];
quantize_rmsnorm_q8_0_into(&input, &norm_weight, eps, &mut scales, &mut quants);
let has_nonzero = scales.iter().any(|&s| s.abs() > 1e-10);
assert!(has_nonzero);
}
#[test]
fn test_cov95_fused_swiglu_simd_basic() {
let mut gate = vec![0.5f32; 256];
let up = vec![1.0f32; 256];
fused_swiglu_simd(&mut gate, &up);
let modified = gate.iter().any(|&g| (g - 0.5).abs() > 1e-6);
assert!(modified);
}
#[test]
fn test_cov95_softmax_simd_basic() {
let mut x = vec![1.0f32, 2.0, 3.0, 4.0];
softmax_simd(&mut x);
let sum: f32 = x.iter().sum();
assert!((sum - 1.0).abs() < 1e-5);
}
#[test]
fn test_cov95_softmax_simd_large() {
let mut x: Vec<f32> = (0..1024).map(|i| i as f32 * 0.01).collect();
softmax_simd(&mut x);
let sum: f32 = x.iter().sum();
assert!((sum - 1.0).abs() < 1e-4);
}
#[test]
fn test_cov95_dequantize_q4_1_basic() {
let data = vec![0u8; 20];
let result = dequantize_q4_1(&data);
assert!(result.is_ok());
assert_eq!(result.expect("quantization failed").len(), 32);
}
#[test]
fn test_cov95_dequantize_q5_0_basic() {
let data = vec![0u8; 22];
let result = dequantize_q5_0(&data);
assert!(result.is_ok());
assert_eq!(result.expect("quantization failed").len(), 32);
}
#[test]
fn test_cov95_dequantize_q5_1_basic() {
let data = vec![0u8; 24];
let result = dequantize_q5_1(&data);
assert!(result.is_ok());
assert_eq!(result.expect("quantization failed").len(), 32);
}
#[test]
fn test_cov95_dequantize_q2_k_basic() {
let data = vec![0u8; 84];
let result = dequantize_q2_k(&data);
assert!(result.is_ok());
assert_eq!(result.expect("quantization failed").len(), 256);
}
#[test]
fn test_cov95_dequantize_f16_basic() {
let data = vec![0u8; 4];
let result = dequantize_f16(&data);
assert!(result.is_ok());
assert_eq!(result.expect("quantization failed").len(), 2);
}
#[test]
fn test_cov95_f16_to_f32_special_values() {
let zero = f16_to_f32(0x0000);
assert_eq!(zero, 0.0);
let neg_zero = f16_to_f32(0x8000);
assert_eq!(neg_zero, 0.0);
let one = f16_to_f32(0x3C00); assert!((one - 1.0).abs() < 1e-3);
}
#[test]
fn test_cov95_quantize_activations_q8k_into_basic() {
let activations = vec![1.0f32; 256];
let mut scales = vec![0.0f32; 8];
let mut quants = vec![0i8; 256];
let _ = quantize_activations_q8k_into(&activations, &mut scales, &mut quants);
let has_nonzero = scales.iter().any(|&s| s.abs() > 1e-10);
assert!(has_nonzero);
}
#[test]
fn test_cov95_quantize_to_q8_blocks_basic() {
let values = vec![1.0f32; 32];
let result = quantize_to_q8_blocks(&values);
assert!(result.is_ok());
assert_eq!(result.expect("quantization failed").len(), 1);
}
#[test]
fn test_cov95_dequantize_q8_blocks_basic() {
let blocks = vec![Q8_0Block {
scale: 1.0,
quants: [64i8; 32],
}];
let result = dequantize_q8_blocks(&blocks);
assert_eq!(result.len(), 32);
}