import pytest from tests.insn.helpers import * def test_rlca(): cpu = CPU() cpu.set_reg8(R8.A, 0x80) RLCA().exec(cpu) assert cpu.get_reg8(R8.A) == 0x01 assert cpu.carry == 1 assert cpu.cycles == 4 RLCA().exec(cpu) assert cpu.get_reg8(R8.A) == 0x02 assert cpu.carry == 0 assert cpu.cycles == 8 def test_rla(): cpu = CPU() cpu.set_reg8(R8.A, 0x80) RLA().exec(cpu) assert cpu.get_reg8(R8.A) == 0x00 assert cpu.carry == 1 assert cpu.cycles == 4 RLA().exec(cpu) assert cpu.get_reg8(R8.A) == 0x01 assert cpu.carry == 0 assert cpu.cycles == 8 def test_rrca(): cpu = CPU() cpu.set_reg8(R8.A, 0x01) RRCA().exec(cpu) assert cpu.get_reg8(R8.A) == 0x80 assert cpu.carry == 1 assert cpu.cycles == 4 RRCA().exec(cpu) assert cpu.get_reg8(R8.A) == 0x40 assert cpu.carry == 0 assert cpu.cycles == 8 def test_rra(): cpu = CPU() cpu.set_reg8(R8.A, 0x01) RRA().exec(cpu) assert cpu.get_reg8(R8.A) == 0x00 assert cpu.carry == 1 assert cpu.cycles == 4 RRA().exec(cpu) assert cpu.get_reg8(R8.A) == 0x80 assert cpu.carry == 0 assert cpu.cycles == 8 @pytest.mark.parametrize("r", R8) def test_rlc_r(r): cpu = CPU() cpu.set_reg8(r, 0x80) RLC_R(r).exec(cpu) assert cpu.get_reg8(r) == 0x01 assert cpu.carry == 1 assert cpu.cycles == 8 RLC_R(r).exec(cpu) assert cpu.get_reg8(r) == 0x02 assert cpu.carry == 0 assert cpu.cycles == 16 @pytest.mark.parametrize("r", R8) def test_rl_r(r): cpu = CPU() cpu.set_reg8(r, 0x80) RL_R(r).exec(cpu) assert cpu.get_reg8(r) == 0x00 assert cpu.carry == 1 assert cpu.cycles == 8 RL_R(r).exec(cpu) assert cpu.get_reg8(r) == 0x01 assert cpu.carry == 0 assert cpu.cycles == 16 @pytest.mark.parametrize("r", R8) def test_rrc_r(r): cpu = CPU() cpu.set_reg8(r, 0x01) RRC_R(r).exec(cpu) assert cpu.get_reg8(r) == 0x80 assert cpu.carry == 1 assert cpu.cycles == 8 RRC_R(r).exec(cpu) assert cpu.get_reg8(r) == 0x40 assert cpu.carry == 0 assert cpu.cycles == 16 @pytest.mark.parametrize("r", R8) def test_rr_r(r): cpu = CPU() cpu.set_reg8(r, 0x01) RR_R(r).exec(cpu) assert cpu.get_reg8(r) == 0x00 assert cpu.carry == 1 assert cpu.cycles == 8 RR_R(r).exec(cpu) assert cpu.get_reg8(r) == 0x80 assert cpu.carry == 0 assert cpu.cycles == 16 # TODO: Test RLC_HL, RL_HL, RRC_HL, RR_HL