use std::time::Duration;
use crate::monitor::*;
#[test]
fn h0_mon_100_monitor_mock_creation() {
let info = GpuDeviceInfo::new(0, "Mock GPU", GpuVendor::Nvidia, GpuBackend::Vulkan)
.with_vram(24 * 1024 * 1024 * 1024);
let config = MonitorConfig::default();
let monitor = GpuMonitor::mock(info, config);
assert_eq!(monitor.device_info().name, "Mock GPU");
assert_eq!(monitor.config().poll_interval, Duration::from_millis(100));
}
#[test]
fn h0_mon_101_monitor_collect() {
let info = GpuDeviceInfo::new(0, "Mock GPU", GpuVendor::Nvidia, GpuBackend::Vulkan)
.with_vram(24 * 1024 * 1024 * 1024);
let config = MonitorConfig::default();
let monitor = GpuMonitor::mock(info, config);
assert_eq!(monitor.sample_count(), 0);
let metrics = monitor.collect().expect("collect should work");
assert_eq!(metrics.device_index, 0);
assert_eq!(monitor.sample_count(), 1);
monitor.collect().expect("collect should work");
monitor.collect().expect("collect should work");
assert_eq!(monitor.sample_count(), 3);
}
#[test]
fn h0_mon_102_monitor_history_buffer() {
let info =
GpuDeviceInfo::new(0, "Mock GPU", GpuVendor::Nvidia, GpuBackend::Vulkan).with_vram(1024);
let config = MonitorConfig { history_size: 3, ..Default::default() };
let monitor = GpuMonitor::mock(info, config);
for _ in 0..5 {
monitor.collect().expect("collect should work");
}
assert_eq!(monitor.sample_count(), 3);
let history = monitor.history();
assert_eq!(history.len(), 3);
}
#[test]
fn h0_mon_103_monitor_latest() {
let info =
GpuDeviceInfo::new(0, "Mock GPU", GpuVendor::Nvidia, GpuBackend::Vulkan).with_vram(1024);
let config = MonitorConfig::default();
let monitor = GpuMonitor::mock(info, config);
assert!(monitor.latest().is_err());
monitor.collect().expect("collect should work");
let latest = monitor.latest().expect("latest should work");
assert_eq!(latest.device_index, 0);
}
#[test]
fn h0_mon_104_monitor_clear_history() {
let info =
GpuDeviceInfo::new(0, "Mock GPU", GpuVendor::Nvidia, GpuBackend::Vulkan).with_vram(1024);
let config = MonitorConfig::default();
let monitor = GpuMonitor::mock(info, config);
monitor.collect().expect("collect should work");
monitor.collect().expect("collect should work");
assert_eq!(monitor.sample_count(), 2);
monitor.clear_history();
assert_eq!(monitor.sample_count(), 0);
}
#[test]
fn h0_mon_105_monitor_is_collecting() {
let info = GpuDeviceInfo::new(0, "Mock GPU", GpuVendor::Nvidia, GpuBackend::Vulkan);
let config = MonitorConfig::default();
let monitor = GpuMonitor::mock(info, config);
assert!(!monitor.is_collecting());
}
#[test]
fn h0_mon_106_monitor_stop() {
let info = GpuDeviceInfo::new(0, "Mock GPU", GpuVendor::Nvidia, GpuBackend::Vulkan);
let config = MonitorConfig::default();
let monitor = GpuMonitor::mock(info, config);
monitor.stop();
}