#[cfg(test)]
mod tests {
use crate::gb::ppu::Ppu;
use crate::platform::debugging::{Tracing, init_tracing};
#[test]
fn test_ppu_operations_work_with_tracing_enabled() {
init_tracing(Tracing {
enabled: true,
ppu: 5,
..Default::default()
});
let mut ppu = Ppu::new();
ppu.tick_dots(100);
assert!(ppu.dot() >= 4); }
#[test]
fn test_ppu_operations_work_with_tracing_disabled() {
init_tracing(Tracing {
enabled: false,
ppu: 0,
..Default::default()
});
let mut ppu = Ppu::new();
ppu.tick_dots(100);
assert!(ppu.dot() >= 4);
}
#[test]
fn test_frame_boundary_operations_with_tracing() {
init_tracing(Tracing {
enabled: true,
ppu: 1,
..Default::default()
});
let mut ppu = Ppu::new();
ppu.tick_dots(452 + 153 * 456);
assert_eq!(ppu.ly(), 0);
assert!(ppu.is_frame_ready());
}
}