Skip to content

Commit 910b49e

Browse files
committed
some test refactoring
1 parent 548882a commit 910b49e

File tree

5 files changed

+46
-44
lines changed

5 files changed

+46
-44
lines changed

tests/src/main.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ mod input;
33
mod labels;
44
mod pushdown;
55
mod rng;
6+
mod score;
67
mod sps;
78
mod util;
89
mod video;
@@ -63,18 +64,17 @@ fn main() {
6364

6465
// other stuff
6566

66-
let rng_seed = labels::get("rng_seed") as usize;
67-
let main_loop = labels::get("mainLoop");
68-
let practise_type = labels::get("practiseType") as usize;
69-
let game_mode = labels::get("gameMode") as usize;
70-
let level_number = labels::get("levelNumber") as usize;
71-
let b_modifier = labels::get("typeBModifier") as usize;
72-
let mode_typeb = labels::get("MODE_TYPEB") as u8;
73-
7467
if options.foo {
7568
let mut emu = util::emulator(None);
7669
let mut view = video::Video::new();
7770

71+
let rng_seed = labels::get("rng_seed") as usize;
72+
let main_loop = labels::get("mainLoop");
73+
let practise_type = labels::get("practiseType") as usize;
74+
let game_mode = labels::get("gameMode") as usize;
75+
let level_number = labels::get("levelNumber") as usize;
76+
let b_modifier = labels::get("typeBModifier") as usize;
77+
let mode_typeb = labels::get("MODE_TYPEB") as u8;
7878

7979
rng::seeds().iter().for_each(|seed| {
8080

tests/src/pushdown.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
use crate::{labels, util};
1+
use crate::{labels, util, score};
22

33
pub fn test() {
44
let mut emu = util::emulator(None);
55

66
for pushdown in 2..15 {
77
[0..1000, 24500..25500].into_iter().for_each(|range| {
88
for score in range {
9-
util::set_score(&mut emu, score);
9+
score::set(&mut emu, score);
1010

1111
emu.registers.pc = labels::get("addPushDownPoints");
1212
emu.memory.iram_raw[labels::get("holdDownPoints") as usize] = pushdown;
@@ -15,7 +15,7 @@ pub fn test() {
1515

1616
let reference = pushdown_impl(pushdown, score as u16) as u32;
1717

18-
assert_eq!(reference, util::get_score(&mut emu) - score);
18+
assert_eq!(reference, score::get(&mut emu) - score);
1919
}
2020
});
2121
}

tests/src/rng.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
use crate::{util, labels};
22
use std::collections::HashSet;
33

4+
pub fn test() {
5+
assert_eq!(
6+
seeds(),
7+
include_str!("./rng_seeds.txt")
8+
.split(',')
9+
.map(|s| s.trim().parse::<u16>().expect(s))
10+
.collect::<HashSet<_>>()
11+
);
12+
}
13+
414
pub fn seeds() -> HashSet<u16> {
515
let mut emu = util::emulator(None);
616
let rng_seed = labels::get("rng_seed");
@@ -33,13 +43,3 @@ pub fn seeds() -> HashSet<u16> {
3343

3444
seeds
3545
}
36-
37-
pub fn test() {
38-
assert_eq!(
39-
seeds(),
40-
include_str!("./rng_seeds.txt")
41-
.split(',')
42-
.map(|s| s.trim().parse::<u16>().expect(s))
43-
.collect::<HashSet<_>>()
44-
);
45-
}

tests/src/score.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
use rusticnes_core::nes::NesState;
2+
use crate::labels;
3+
4+
pub fn set(emu: &mut NesState, score: u32) {
5+
let score_addr = labels::get("score");
6+
let binscore_addr = labels::get("binScore");
7+
let bcd_str = format!("{:06}", score);
8+
let bcd_a = i64::from_str_radix(&bcd_str[0..2], 16).unwrap();
9+
let bcd_b = i64::from_str_radix(&bcd_str[2..4], 16).unwrap();
10+
let bcd_c = i64::from_str_radix(&bcd_str[4..6], 16).unwrap();
11+
12+
emu.memory.iram_raw[(score_addr + 2) as usize] = bcd_a as u8;
13+
emu.memory.iram_raw[(score_addr + 1) as usize] = bcd_b as u8;
14+
emu.memory.iram_raw[score_addr as usize] = bcd_c as u8;
15+
emu.memory.iram_raw[binscore_addr as usize] = score as u8;
16+
emu.memory.iram_raw[(binscore_addr + 1) as usize] = (score >> 8) as u8;
17+
emu.memory.iram_raw[(binscore_addr + 2) as usize] = (score >> 16) as u8;
18+
}
19+
20+
pub fn get(emu: &mut NesState) -> u32 {
21+
let binscore_addr = labels::get("binScore");
22+
emu.memory.iram_raw[binscore_addr as usize] as u32
23+
+ ((emu.memory.iram_raw[(binscore_addr + 1) as usize] as u32) << 8)
24+
+ ((emu.memory.iram_raw[(binscore_addr + 2) as usize] as u32) << 16)
25+
}

tests/src/util.rs

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -42,26 +42,3 @@ pub fn print_step(emu: &mut NesState) {
4242

4343
println!("{}", opcode_info::disassemble_instruction(emu.cpu.opcode, 0, 0).0);
4444
}
45-
46-
pub fn set_score(emu: &mut NesState, score: u32) {
47-
let score_addr = labels::get("score");
48-
let binscore_addr = labels::get("binScore");
49-
let bcd_str = format!("{:06}", score);
50-
let bcd_a = i64::from_str_radix(&bcd_str[0..2], 16).unwrap();
51-
let bcd_b = i64::from_str_radix(&bcd_str[2..4], 16).unwrap();
52-
let bcd_c = i64::from_str_radix(&bcd_str[4..6], 16).unwrap();
53-
54-
emu.memory.iram_raw[(score_addr + 2) as usize] = bcd_a as u8;
55-
emu.memory.iram_raw[(score_addr + 1) as usize] = bcd_b as u8;
56-
emu.memory.iram_raw[score_addr as usize] = bcd_c as u8;
57-
emu.memory.iram_raw[binscore_addr as usize] = score as u8;
58-
emu.memory.iram_raw[(binscore_addr + 1) as usize] = (score >> 8) as u8;
59-
emu.memory.iram_raw[(binscore_addr + 2) as usize] = (score >> 16) as u8;
60-
}
61-
62-
pub fn get_score(emu: &mut NesState) -> u32 {
63-
let binscore_addr = labels::get("binScore");
64-
emu.memory.iram_raw[binscore_addr as usize] as u32
65-
+ ((emu.memory.iram_raw[(binscore_addr + 1) as usize] as u32) << 8)
66-
+ ((emu.memory.iram_raw[(binscore_addr + 2) as usize] as u32) << 16)
67-
}

0 commit comments

Comments
 (0)