class TestJumpOpcodes(unittest.TestCase): def setUp(self): self.cpu = Cpu(MMU()) self.cpu.mmu.rom = [0] * 128 self.cpu.mmu.load('C:/Users/cjpowell/workspace/Python/gbpy/resources/test_file.gb') def test_jump_to_addr_nn(self): self.cpu._op_c3() self.assertEqual(self.cpu.registers.pc, 0xff00) def test_jump_to_addr_if(self): self.cpu._op_c2() self.assertEqual(self.cpu.registers.pc, 0xff00) self.assertEqual(self.cpu.registers.zero_flag, 0) self.cpu.registers.pc = 0 self.cpu.registers.zero_flag = 1 self.cpu._op_ca() self.assertEqual(self.cpu.registers.pc, 0xff00) self.cpu.registers.pc = 0 self.cpu._op_d2() self.assertEqual(self.cpu.registers.pc, 0xff00) self.assertEqual(self.cpu.registers.carry_flag, 0) self.cpu.registers.pc = 0 self.cpu.registers.carry_flag = 1 self.cpu._op_da() self.assertEqual(self.cpu.registers.pc, 0xff00) def test_jump_to_address_in_HL(self): self.cpu.registers.h = 0 self.cpu.registers.l = 0x41 self.cpu._op_e9() self.assertEqual(self.cpu.registers.pc, 0x24) def test_jump_to_addr_add_n(self): self.cpu._op_18() self.assertEqual(self.cpu.registers.pc, 0xff) def test_jump_to_add_add_n_if(self): self.cpu._op_20() self.assertEqual(self.cpu.registers.pc, 0xff) self.assertEqual(self.cpu.registers.zero_flag, 0) self.cpu.registers.pc = 0 self.cpu.registers.zero_flag = 1 self.cpu._op_28() self.assertEqual(self.cpu.registers.pc, 0xff) self.cpu.registers.pc = 0 self.cpu._op_30() self.assertEqual(self.cpu.registers.pc, 0xff) self.assertEqual(self.cpu.registers.carry_flag, 0) self.cpu.registers.pc = 0 self.cpu.registers.carry_flag = 1 self.cpu._op_38() self.assertEqual(self.cpu.registers.pc, 0xff)