mod ai_inference_engine;
mod batch_optimizer;
mod dynamic_batch_processor;
mod engine_interface;
mod gpu_accelerate;
mod model_cache;
mod model_loader;
mod onnx_runtime;
mod pytorch_engine;
mod tensor_ops;
pub use ai_inference_engine::{AIInferenceEngine, GPUSimpleAccelerator};
pub use batch_optimizer::BatchProcessor;
pub use dynamic_batch_processor::DynamicBatchProcessor;
pub use engine_interface::{InferenceEngine, InferenceResult, ModelHandle, ModelInfo};
pub use model_cache::ModelCache;
pub use model_loader::ModelLoader;
pub use pytorch_engine::*;
pub use tensor_ops::Tensor;
#[cfg(test)]
mod tests {
use super::*;
use std::collections::{BTreeMap, HashMap};
#[tokio::test]
async fn test_ai_inference_engine_creation() {
let engine: _ = AIInferenceEngine::new().await;
assert!(engine.is_ok());
}
#[tokio::test]
async fn test_model_loading() {
let loader: _ = ModelLoader::new();
let model: _ = loader.load_simple_model("test_model").await;
assert!(model.is_ok());
}
#[tokio::test]
async fn test_tensor_operations() {
let tensor: _ = Tensor::new(vec![1.0, 2.0, 3.0, 4.0], vec![2, 2]);
assert!(tensor.is_ok());
let tensor: _ = tensor.unwrap();
let shape: _ = tensor.shape();
assert_eq!(*shape, vec![2, 2]);
}
#[tokio::test]
async fn test_gpu_acceleration_availability() {
let gpu: _ = GPUSimpleAccelerator::new().await;
assert!(gpu.is_ok());
let gpu: _ = gpu.unwrap();
let available: _ = gpu.is_available();
assert!(available || !available);
}
#[tokio::test]
async fn test_model_cache() {
let cache: _ = ModelCache::new(100).await;
assert!(cache.is_ok());
let cache: _ = cache.unwrap();
let result: _ = cache.get("nonexistent_model").await;
assert!(result.is_ok());
}
}