use super::*;
#[test]
fn tcov_conversion_path_display_with_intermediates() {
let path = ConversionPath::chain(
FormatType::Gguf,
vec![FormatType::Apr],
FormatType::SafeTensors,
);
let display = format!("{path}");
assert_eq!(display, "GGUF → APR → SafeTensors");
}
#[test]
fn tcov_verify_roundtrip_safetensors() {
let source = create_safetensors_fixture();
let rosetta = RosettaStone::new();
let report = rosetta.verify_roundtrip(&source, FormatType::Apr);
match report {
Ok(vr) => {
assert!(vr.max_diff >= 0.0);
}
Err(_) => {
}
}
let _ = std::fs::remove_file(source);
}
#[test]
fn p050_from_extension_real_directory_no_candidates() {
let path = Path::new("/tmp");
let result = FormatType::from_extension(path);
assert!(result.is_err(), "Directory path should fail from_extension");
let err = format!("{:?}", result.unwrap_err());
assert!(
err.contains("is a directory"),
"Error should mention directory: {err}"
);
assert!(
err.contains(".gguf") || err.contains(".apr") || err.contains(".safetensors"),
"Error should mention expected extensions: {err}"
);
}
#[test]
fn p051b_from_extension_nonexistent_no_extension() {
let path = Path::new("/nonexistent_dir_12345/no_extension_file");
let result = FormatType::from_extension(path);
assert!(
result.is_err(),
"Nonexistent path with no extension should fail"
);
let err = format!("{:?}", result.unwrap_err());
assert!(
err.contains("No file extension"),
"Error should mention missing extension: {err}"
);
}
#[test]
fn p052b_from_extension_directory_with_candidate() {
let temp_dir = std::env::temp_dir().join("rosetta_test_dir_p052b");
let _ = std::fs::create_dir_all(&temp_dir);
let model_file = temp_dir.join("model.gguf");
let _ = std::fs::write(&model_file, b"dummy");
let result = FormatType::from_extension(&temp_dir);
assert!(
result.is_err(),
"Directory path should fail even with candidates"
);
let err = format!("{:?}", result.unwrap_err());
assert!(
err.contains("Did you mean"),
"Error should suggest candidate file: {err}"
);
assert!(
err.contains("model.gguf"),
"Suggestion should include model.gguf: {err}"
);
let _ = std::fs::remove_dir_all(temp_dir);
}
#[test]
fn p053b_from_extension_directory_with_multiple_candidates() {
let temp_dir = std::env::temp_dir().join("rosetta_test_dir_p053b");
let _ = std::fs::create_dir_all(&temp_dir);
let _ = std::fs::write(temp_dir.join("model.apr"), b"dummy");
let _ = std::fs::write(temp_dir.join("model.safetensors"), b"dummy");
let result = FormatType::from_extension(&temp_dir);
assert!(result.is_err());
let err = format!("{:?}", result.unwrap_err());
assert!(
err.contains("Did you mean"),
"Should suggest a candidate: {err}"
);
let _ = std::fs::remove_dir_all(temp_dir);
}
#[test]
fn p054b_from_extension_nonexistent_directory_path() {
let path = Path::new("/nonexistent_dir_12345");
let result = FormatType::from_extension(path);
assert!(result.is_err());
let err = format!("{:?}", result.unwrap_err());
assert!(
err.contains("No file extension"),
"Nonexistent path without extension: {err}"
);
}
#[test]
fn p060_compute_validation_empty_data() {
let rosetta = RosettaStone::new();
let tv = rosetta.compute_tensor_validation("empty.weight", &[]);
assert!(tv.is_valid, "Empty tensor should be valid");
assert_eq!(tv.element_count, 0);
assert_eq!(tv.nan_count, 0);
assert_eq!(tv.inf_count, 0);
assert_eq!(tv.zero_count, 0);
assert_eq!(tv.min, 0.0);
assert_eq!(tv.max, 0.0);
assert_eq!(tv.mean, 0.0);
assert_eq!(tv.std, 0.0);
assert!(tv.failures.is_empty());
}
#[test]
fn p061b_compute_validation_all_nan() {
let rosetta = RosettaStone::new();
let data = [f32::NAN, f32::NAN, f32::NAN, f32::NAN];
let tv = rosetta.compute_tensor_validation("corrupted.weight", &data);
assert!(!tv.is_valid, "All-NaN tensor should be invalid");
assert_eq!(tv.nan_count, 4);
assert_eq!(tv.element_count, 4);
assert_eq!(tv.mean, 0.0, "Mean should be 0 when no valid values");
assert_eq!(tv.std, 0.0, "Std should be 0 when no valid values");
assert!(
tv.failures
.iter()
.any(|f| f.contains("NaN") && f.contains("F-DATA-QUALITY-002")),
"Should report NaN failure"
);
}
#[test]
fn p062b_compute_validation_all_inf() {
let rosetta = RosettaStone::new();
let data = [f32::INFINITY, f32::NEG_INFINITY, f32::INFINITY];
let tv = rosetta.compute_tensor_validation("overflow.weight", &data);
assert!(!tv.is_valid, "All-Inf tensor should be invalid");
assert_eq!(tv.inf_count, 3);
assert_eq!(tv.nan_count, 0);
assert_eq!(tv.mean, 0.0, "Mean should be 0 when no valid values");
assert!(
tv.failures
.iter()
.any(|f| f.contains("Inf") && f.contains("F-DATA-QUALITY-002")),
"Should report Inf failure"
);
}
#[test]
fn p063b_compute_validation_mixed_nan_inf() {
let rosetta = RosettaStone::new();
let data = [f32::NAN, f32::INFINITY, f32::NAN, f32::NEG_INFINITY];
let tv = rosetta.compute_tensor_validation("broken.weight", &data);
assert!(!tv.is_valid);
assert_eq!(tv.nan_count, 2);
assert_eq!(tv.inf_count, 2);
assert!(
tv.failures.len() >= 2,
"Should have both NaN and Inf failures"
);
}
#[test]
fn p064_compute_validation_all_zeros() {
let rosetta = RosettaStone::new();
let data = [0.0_f32; 100];
let tv = rosetta.compute_tensor_validation("uninitialized.weight", &data);
assert!(!tv.is_valid, "All-zero tensor should be invalid");
assert_eq!(tv.zero_count, 100);
assert_eq!(tv.element_count, 100);
assert!(tv.is_all_zeros());
assert!(
tv.failures
.iter()
.any(|f| f.contains("All values are zero") && f.contains("F-DATA-QUALITY-001")),
"Should report all-zeros failure: {:?}",
tv.failures
);
}
#[test]
fn p065_compute_validation_embedding_high_zeros() {
let rosetta = RosettaStone::new();
let mut data = vec![0.0_f32; 60];
data.extend(vec![0.1_f32; 40]);
let tv = rosetta.compute_tensor_validation("model.embed_tokens.weight", &data);
assert!(!tv.is_valid, "Embedding with >50% zeros should be invalid");
assert!(
tv.failures
.iter()
.any(|f| f.contains("DENSITY") && f.contains("F-DATA-QUALITY-001")),
"Should report density failure: {:?}",
tv.failures
);
}
#[test]
fn p066_compute_validation_weight_high_zeros() {
let rosetta = RosettaStone::new();
let mut data = vec![0.0_f32; 85];
data.extend(vec![0.5_f32; 15]);
let tv = rosetta.compute_tensor_validation("model.layers.0.self_attn.q_proj.weight", &data);
assert!(!tv.is_valid, "Weight with >80% zeros should be invalid");
assert!(
tv.failures
.iter()
.any(|f| f.contains("DENSITY") && f.contains("80")),
"Should report 80% density threshold: {:?}",
tv.failures
);
}
#[test]
fn p067_compute_validation_weight_acceptable_zeros() {
let rosetta = RosettaStone::new();
let mut data = vec![0.0_f32; 50];
data.extend(vec![0.5_f32; 50]);
let tv = rosetta.compute_tensor_validation("model.layers.0.weight", &data);
assert!(
!tv.failures.iter().any(|f| f.contains("DENSITY")),
"50% zeros in weight should not trigger 80% density gate: {:?}",
tv.failures
);
}
#[test]
fn p068_compute_validation_low_l2_norm() {
let rosetta = RosettaStone::new();
let data = [1e-7_f32, -1e-7, 1e-7, -1e-7];
let tv = rosetta.compute_tensor_validation("tiny.weight", &data);
assert!(!tv.is_valid, "Near-zero L2 norm should be invalid");
assert!(
tv.failures
.iter()
.any(|f| f.contains("L2 norm") && f.contains("F-DATA-QUALITY-003")),
"Should report L2 norm failure: {:?}",
tv.failures
);
}
#[test]
fn p069_compute_validation_constant_values() {
let rosetta = RosettaStone::new();
let data = [0.5_f32; 100];
let tv = rosetta.compute_tensor_validation("model.layers.0.weight", &data);
assert!(!tv.is_valid, "Constant tensor should be invalid");
assert!(
tv.failures
.iter()
.any(|f| f.contains("constant") && f.contains("F-DATA-QUALITY-003")),
"Should report constant value failure: {:?}",
tv.failures
);
}
#[test]
fn p070b_compute_validation_constant_norm_exempt() {
let rosetta = RosettaStone::new();
let data = [1.0_f32; 100];
let tv = rosetta.compute_tensor_validation("model.layers.0.input_layernorm.weight", &data);
assert!(
!tv.failures.iter().any(|f| f.contains("constant")),
"Norm tensor should be exempt from constant check: {:?}",
tv.failures
);
}
#[test]
fn p070c_compute_validation_constant_bias_exempt() {
let rosetta = RosettaStone::new();
let data = [0.0_f32; 50]; let tv = rosetta.compute_tensor_validation("model.layers.0.bias", &data);
assert!(
!tv.failures.iter().any(|f| f.contains("constant")),
"Bias tensor should be exempt from constant check: {:?}",
tv.failures
);
}
#[test]
fn p070d_compute_validation_constant_ln_exempt() {
let rosetta = RosettaStone::new();
let data = [1.0_f32; 100];
let tv = rosetta.compute_tensor_validation("model.ln_f.weight", &data);
assert!(
!tv.failures.iter().any(|f| f.contains("constant")),
"ln_ tensor should be exempt from constant check: {:?}",
tv.failures
);
}
#[test]
fn p070e_compute_validation_single_element() {
let rosetta = RosettaStone::new();
let data = [0.5_f32];
let tv = rosetta.compute_tensor_validation("single.weight", &data);
assert_eq!(tv.element_count, 1);
assert_eq!(tv.std, 0.0, "Std should be 0 for single element");
assert!((tv.mean - 0.5).abs() < 1e-6);
assert!((tv.min - 0.5).abs() < 1e-6);
assert!((tv.max - 0.5).abs() < 1e-6);
}
#[test]
fn p070f_compute_validation_nan_mixed_with_valid() {
let rosetta = RosettaStone::new();
let data = [1.0_f32, f32::NAN, 3.0, f32::NAN, 5.0];
let tv = rosetta.compute_tensor_validation("mixed.weight", &data);
assert!(!tv.is_valid, "Mixed NaN tensor should be invalid");
assert_eq!(tv.nan_count, 2);
assert_eq!(tv.element_count, 5);
assert!(
(tv.mean - 3.0).abs() < 1e-5,
"Mean should be ~3.0, got {}",
tv.mean
);
assert!((tv.min - 1.0).abs() < 1e-6);
assert!((tv.max - 5.0).abs() < 1e-6);
assert!(tv.std > 0.0, "Std should be non-zero for varied values");
}
#[test]
fn p070g_compute_validation_minmax_clamped() {
let rosetta = RosettaStone::new();
let data = [f32::NAN, f32::INFINITY];
let tv = rosetta.compute_tensor_validation("bad.weight", &data);
assert_eq!(tv.min, 0.0, "min should be clamped to 0.0");
assert_eq!(tv.max, 0.0, "max should be clamped to 0.0");
}
#[test]
fn p070h_compute_validation_inf_mixed_with_valid() {
let rosetta = RosettaStone::new();
let data = [2.0_f32, f32::INFINITY, 4.0, f32::NEG_INFINITY, 6.0];
let tv = rosetta.compute_tensor_validation("mixed_inf.weight", &data);
assert!(!tv.is_valid);
assert_eq!(tv.inf_count, 2);
assert!(
(tv.mean - 4.0).abs() < 1e-5,
"Mean should be ~4.0, got {}",
tv.mean
);
assert!((tv.min - 2.0).abs() < 1e-6);
assert!((tv.max - 6.0).abs() < 1e-6);
}