use super::*;
#[test]
fn oamarray_write_readcorrect() {
let mut data = [Entry::default(); 64];
let mut oam = OamArray::new();
for entry in data.iter_mut().enumerate() {
entry.1.set_y(entry.0 as u8);
entry.1.set_tile_num(((entry.0 + 1) as u8).into());
entry
.1
.set_attributes(entry::Attributes::from_bits_truncate(entry.0 as u8 + 2));
entry.1.set_x(entry.0 as u8 + 3);
let base_addr = (entry.0 as u8) << 2;
oam.write_data(base_addr + 0, entry.1.y());
oam.write_data(base_addr + 1, entry.1.tile_num().into());
oam.write_data(base_addr + 2, entry.1.attributes().bits());
oam.write_data(base_addr + 3, entry.1.x());
}
for entry in data.iter().enumerate() {
assert_eq!(entry.1.y(), oam.y(entry.0 as u8));
assert_eq!(entry.1.tile_num(), oam.tile_number(entry.0 as u8));
assert_eq!(entry.1.attributes(), oam.attributes(entry.0 as u8));
assert_eq!(entry.1.x(), oam.x(entry.0 as u8));
}
}