Files
rustytorch/crates/specialized/rtx-synthesis/tests/hardware_test.rs
T
2026-03-04 00:08:42 +00:00

77 lines
2.2 KiB
Rust

//! Tests for hardware profiling functionality
//!
//! Following TDD methodology - write tests first, then fix implementation
#![cfg(feature = "disabled_tests")]
use anyhow::Result;
use rtx_synthesis::hardware::{HardwareProfile, HardwareProfiler};
#[test]
fn test_hardware_profile_creation() {
// RED: Test that HardwareProfile can be created
let profile = HardwareProfile::default();
// Verify basic properties exist
assert!(profile.device_count() >= 0);
assert!(profile.compute_capability() >= 0.0);
}
#[test]
fn test_hardware_profiler_detection() {
// RED: Test that HardwareProfiler can detect hardware
let profiler = HardwareProfiler::new();
// Should be able to detect current hardware
let result = profiler.detect_hardware();
assert!(result.is_ok());
if let Ok(profile) = result {
// Should have reasonable values
assert!(profile.compute_capability() > 0.0);
assert!(profile.device_count() >= 0);
}
}
#[test]
fn test_hardware_profile_memory_info() {
// RED: Test memory information retrieval
let profile = HardwareProfile::default();
// Should provide memory information
assert!(profile.total_memory() >= 0);
assert!(profile.available_memory() >= 0);
assert!(profile.available_memory() <= profile.total_memory());
}
#[test]
fn test_hardware_profiler_benchmarking() {
// RED: Test benchmarking capabilities
let profiler = HardwareProfiler::new();
// Should be able to run benchmarks
let benchmark_result = profiler.run_benchmarks();
assert!(benchmark_result.is_ok());
if let Ok(metrics) = benchmark_result {
// Should have performance metrics
assert!(metrics.flops() > 0.0);
assert!(metrics.memory_bandwidth() > 0.0);
}
}
#[test]
fn test_hardware_optimization_suggestions() {
// RED: Test optimization suggestions based on hardware
let profiler = HardwareProfiler::new();
let profile = HardwareProfile::default();
// Should provide optimization suggestions
let suggestions = profiler.get_optimization_suggestions(&profile);
assert!(suggestions.is_ok());
if let Ok(opts) = suggestions {
// Should have at least some suggestions
assert!(!opts.is_empty());
}
}