#[test]
fn load_state() {
const CGB_CRC: u64 = 4378550468433865064;
let file_path = "../test_roms/game-boy-test-roms/cgb-acid2/cgb-acid2.gbc";
let mut gb = crate::tests::TestingGameBoy::new(file_path, false).unwrap();
gb.clock_for_frame();
gb.clock_for_frame();
let screen_buffer = gb.raw_screen_buffer();
let crc = crc::Crc::<u64>::new(&crc::CRC_64_XZ);
assert_ne!(crc.checksum(screen_buffer), CGB_CRC);
gb = crate::tests::TestingGameBoy::new(file_path, false).unwrap();
gb.clock_until_breakpoint();
let screen_buffer = gb.raw_screen_buffer();
assert_eq!(crc.checksum(screen_buffer), CGB_CRC);
let saved_data = save_state::save_object(&gb).unwrap();
gb = crate::tests::TestingGameBoy::new(file_path, false).unwrap();
save_state::load_object(&mut gb, &saved_data).unwrap();
gb.clock_for_frame();
gb.clock_for_frame();
let screen_buffer = gb.raw_screen_buffer();
assert_eq!(crc.checksum(screen_buffer), CGB_CRC);
}