use of com.pholser.junit.quickcheck.Property in project emuRox by rossdrew.
the class Mos6502CompilerTest method testImmediateInstructions.
@Property
public void testImmediateInstructions(@InRange(min = "0", max = "255") int byteValue) {
final String hexByte = Integer.toHexString(byteValue);
OpCode.streamOf(AddressingMode.IMMEDIATE).forEach((opcode) -> {
final Mos6502Compiler compiler = new Mos6502Compiler(opcode.getOpCodeName() + " " + IMMEDIATE_VALUE_PREFIX + hexByte);
Program program = compiler.compileProgram();
int[] bytes = program.getProgramAsByteArray();
assertArrayEquals("Output for '" + opcode.toString() + "' was wrong.", new int[] { opcode.getByteValue(), byteValue }, bytes);
});
}
use of com.pholser.junit.quickcheck.Property in project emuRox by rossdrew.
the class Mos6502CompilerTest method testZeroPageXInstructions.
@Property
public void testZeroPageXInstructions(@InRange(min = "0", max = "255") int byteValue) {
final String hexByte = Integer.toHexString(byteValue);
OpCode.streamOf(AddressingMode.ZERO_PAGE_X).forEach((opcode) -> {
final Mos6502Compiler compiler = new Mos6502Compiler(opcode.getOpCodeName() + " " + VALUE_PREFIX + hexByte + ",X");
Program program = compiler.compileProgram();
int[] bytes = program.getProgramAsByteArray();
assertArrayEquals("Output for '" + opcode.toString() + "' was wrong.", new int[] { opcode.getByteValue(), byteValue }, bytes);
});
}
use of com.pholser.junit.quickcheck.Property in project emuRox by rossdrew.
the class Mos6502CompilerTest method testAbsoluteInstructions.
@Property
public void testAbsoluteInstructions(@InRange(min = "256", max = "65535") int wordValue) {
final String hexWord = Integer.toHexString(wordValue);
final int highByte = (wordValue >> 8) & 0xFF;
final int lowByte = wordValue & 0xFF;
OpCode.streamOf(AddressingMode.ABSOLUTE).forEach((opcode) -> {
final Mos6502Compiler compiler = new Mos6502Compiler(opcode.getOpCodeName() + " " + VALUE_PREFIX + hexWord);
Program program = compiler.compileProgram();
int[] bytes = program.getProgramAsByteArray();
assertArrayEquals("Output for '" + opcode.toString() + "' was wrong.", new int[] { opcode.getByteValue(), highByte, lowByte }, bytes);
});
}
use of com.pholser.junit.quickcheck.Property in project emuRox by rossdrew.
the class Mos6502CompilerTest method testAccumulatorInstructions.
@Property
public void testAccumulatorInstructions(@InRange(min = "0", max = "255") int byteValue) {
final String hexByte = Integer.toHexString(byteValue);
OpCode.streamOf(AddressingMode.ACCUMULATOR).forEach((opcode) -> {
final Mos6502Compiler compiler = new Mos6502Compiler(opcode.getOpCodeName() + " " + ACCUMULATOR_PREFIX + hexByte);
Program program = compiler.compileProgram();
int[] bytes = program.getProgramAsByteArray();
assertArrayEquals("Output for '" + opcode.toString() + "' was wrong.", new int[] { opcode.getByteValue(), byteValue }, bytes);
});
}
use of com.pholser.junit.quickcheck.Property in project emuRox by rossdrew.
the class Mos6502CompilerTest method testZeroPageInstructions.
@Property
public void testZeroPageInstructions(@InRange(min = "0", max = "255") int byteValue) {
final String hexByte = Integer.toHexString(byteValue);
OpCode.streamOf(AddressingMode.ZERO_PAGE).forEach((opcode) -> {
final Mos6502Compiler compiler = new Mos6502Compiler(opcode.getOpCodeName() + " " + VALUE_PREFIX + hexByte);
Program program = compiler.compileProgram();
int[] bytes = program.getProgramAsByteArray();
assertArrayEquals("Output for '" + opcode.toString() + "' was wrong.", new int[] { opcode.getByteValue(), byteValue }, bytes);
});
}
Aggregations