use super::*;
#[test]
fn contract_mismatch_display_names_feature() {
let e = Error::ContractMismatch(ContractMismatch::new(
"input_features",
"[1, 1, 1001, 64] float32".to_string(),
"[1, 1, 1001, 64] float16".to_string(),
));
let msg = e.to_string();
assert!(msg.contains("input_features"), "{msg}");
assert!(msg.contains("float16"), "{msg}");
}
#[test]
fn output_shape_display_shows_both() {
let e = Error::OutputShape(OutputShape::new(vec![512, 1], vec![1, 512]));
let msg = e.to_string();
assert!(
msg.contains("[512, 1]") && msg.contains("[1, 512]"),
"{msg}"
);
}
#[test]
fn coremlit_errors_convert_via_from() {
let e = Error::from(crate::PredictionError::MissingOutput(
"audio_embeds".to_string(),
));
assert!(matches!(e, Error::Prediction(_)), "got {e:?}");
}
#[test]
fn non_finite_variants_carry_index() {
assert!(Error::NonFiniteInput(7).to_string().contains('7'));
assert!(Error::NonFiniteEmbedding(3).to_string().contains('3'));
}
#[test]
fn from_winditerror_is_total_and_does_not_special_case_empty() {
let e = Error::from(WinditError::Empty);
assert!(
matches!(e, Error::Windowing(WinditError::Empty)),
"the blanket From<WinditError> impl must not special-case Empty; got {e:?}"
);
}
#[test]
fn non_finite_output_display_carries_index() {
let msg = Error::NonFiniteOutput(7).to_string();
assert!(msg.contains('7'), "{msg}");
assert!(msg.contains("non-finite"), "{msg}");
}
#[test]
fn embedding_dim_mismatch_display_shows_expected_then_got() {
let msg = Error::EmbeddingDimMismatch(EmbeddingDimMismatch::new(512, 256)).to_string();
assert_eq!(msg, "embedding dimension mismatch: expected 512, got 256");
}
#[test]
fn embedding_not_unit_norm_display_carries_the_deviation() {
let msg = Error::EmbeddingNotUnitNorm(0.25).to_string();
assert!(msg.contains("unit-norm"), "{msg}");
assert!(msg.contains("0.25"), "{msg}");
}
#[test]
fn special_token_overhead_display_names_both_numbers() {
let msg = Error::SpecialTokenOverhead(SpecialTokenOverhead::new(513, 512)).to_string();
assert!(msg.contains("513"), "{msg}");
assert!(msg.contains("512"), "{msg}");
assert!(msg.contains("special tokens"), "{msg}");
}