Browse Source

Begin work on rotate & shift tests

master
Forest Belton 2 years ago
parent
commit
48b831825c
1 changed files with 146 additions and 0 deletions
  1. +146
    -0
      tests/insn/test_shift.py

+ 146
- 0
tests/insn/test_shift.py View File

@ -0,0 +1,146 @@
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

Loading…
Cancel
Save