Files
foxhunt/ml/src/error.rs
jgrusewski 6bd5b18465 🔧 Wave 33: Test Compilation Improvements - 57 errors remaining
**Progress: 1,178 → 57 test errors (95% reduction)**

## Status Summary
-  Production code: Compiles cleanly (0 errors)
- ⚠️  Test code: 57 errors remain (massive improvement)
- ⚙️  All services build successfully
- 📊 Warning count: 253 (target: <20) - AGENTS WILL FIX

## Remaining Test Errors (57 total)
### Primary Issues:
1. 23× E0308 mismatched types
2. 17× E0433 undeclared Decimal
3. 15× E0433 compliance module not found
4. 6× E0624 private method access
5. Various import and type issues

## Next Phase: Wave 33-2
Launch 10+ parallel agents to:
- Fix remaining 57 test compilation errors
- Reduce 253 warnings to <20
- Achieve 95% test coverage
- Ensure all tests pass

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 21:24:28 +02:00

70 lines
2.5 KiB
Rust

//! Error types for ML models crate - unified with CommonError
use common::error::CommonError;
/// `Result` type alias for ML models operations - updated to use CommonError
pub type MLResult<T> = Result<T, CommonError>;
/// `Result` type alias for model operations
pub type ModelResult<T> = Result<T, CommonError>;
/// Convert candle error to CommonError
///
/// Cannot implement `From<candle_core::Error>` for CommonError due to orphan rule.
/// Use this function to convert candle errors when needed.
pub fn candle_error_to_common_error(err: candle_core::Error) -> CommonError {
CommonError::ml(
"candle_computation",
format!("Candle computation error: {}", err),
)
}
/// Create an ML training error
pub fn ml_training_error(message: &str, model: Option<String>) -> CommonError {
CommonError::ml(
"training",
format!("ML training error: {} (model: {:?})", message, model),
)
}
/// Create an ML inference error
pub fn ml_inference_error(message: &str, model: Option<String>) -> CommonError {
CommonError::ml(
"inference",
format!("ML inference error: {} (model: {:?})", message, model),
)
}
/// Create an ML validation error
pub fn ml_validation_error(field: &str, message: &str) -> CommonError {
CommonError::validation(format!(
"ML validation error in field '{}': {}",
field, message
))
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_ml_error_creation() {
let inference_error =
ml_inference_error("Test inference error", Some("test_model".to_string()));
let error_str = inference_error.to_string();
assert!(error_str.contains("Test inference error"));
assert!(error_str.contains("test_model"));
// assert_eq!(inference_error.severity(), ErrorSeverity::High); // Commented out - ErrorSeverity not available
let training_error = ml_training_error("Test training error", None);
let error_str = training_error.to_string();
assert!(error_str.contains("Test training error"));
// assert_eq!(training_error.severity(), ErrorSeverity::High); // Commented out - ErrorSeverity not available
let validation_error = ml_validation_error("input", "Invalid input shape");
let error_str = validation_error.to_string();
assert!(error_str.contains("input"));
assert!(error_str.contains("Invalid input shape"));
// assert_eq!(validation_error.severity(), ErrorSeverity::Medium); // Commented out - ErrorSeverity not available
}
}