use of com.pholser.junit.quickcheck.Property in project emuRox by rossdrew.
the class Mos6502CompilerTest method testZeroPageYInstructions.
@Property
public void testZeroPageYInstructions(@InRange(min = "0", max = "255") int byteValue) {
final String hexByte = Integer.toHexString(byteValue);
OpCode.streamOf(AddressingMode.ZERO_PAGE_Y).forEach((opcode) -> {
final Mos6502Compiler compiler = new Mos6502Compiler(opcode.getOpCodeName() + " " + VALUE_PREFIX + hexByte + ",Y");
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 testAbsoluteXInstructions.
@Property
public void testAbsoluteXInstructions(@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_X).forEach((opcode) -> {
final Mos6502Compiler compiler = new Mos6502Compiler(opcode.getOpCodeName() + " " + VALUE_PREFIX + hexWord + ",X");
Program program = compiler.compileProgram();
int[] bytes = program.getProgramAsByteArray();
assertArrayEquals("Output for '" + opcode.toString() + " 0x" + hexWord + "' 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 testIndirectXInstructions.
@Property
public void testIndirectXInstructions(@InRange(min = "0", max = "255") int byteValue) {
final String hexByte = Integer.toHexString(byteValue);
OpCode.streamOf(AddressingMode.INDIRECT_X).forEach((opcode) -> {
final Mos6502Compiler compiler = new Mos6502Compiler(opcode.getOpCodeName() + " (" + VALUE_PREFIX + hexByte + ",X)");
Program program = compiler.compileProgram();
int[] bytes = program.getProgramAsByteArray();
assertArrayEquals(new int[] { opcode.getByteValue(), byteValue }, bytes);
});
}
use of com.pholser.junit.quickcheck.Property in project emuRox by rossdrew.
the class Mos6502Properties method testInvalidImmediateADC.
@Property(trials = 100)
public void testInvalidImmediateADC(@When(satisfies = "#_ < 0 || #_ > 255") int value) {
Program program = new Program().with(LDA_I, value);
memory.setBlock(0, program.getProgramAsByteArray());
processor.step();
Registers registers = processor.getRegisters();
assertNotEquals(value, registers.getRegister(Registers.Register.ACCUMULATOR));
assertEquals(program.getLength(), registers.getPC());
}
use of com.pholser.junit.quickcheck.Property in project MaterialDateTimePicker by wdullaer.
the class DefaultDateRangeLimiterPropertyTest method setToNearestShouldBeInSelectableDays.
@Property
public void setToNearestShouldBeInSelectableDays(@InRange(min = "01/01/1900", max = "12/31/2099", format = "MM/dd/yyyy") Date date, @InRange(min = "01/01/1900", max = "12/31/2099", format = "MM/dd/yyyy") Date[] dates) {
DefaultDateRangeLimiter limiter = new DefaultDateRangeLimiter();
Calendar day = Calendar.getInstance();
day.setTime(date);
Calendar[] selectables = datesToCalendars(dates);
limiter.setSelectableDays(selectables);
// selectableDays are manipulated a bit by the limiter
selectables = limiter.getSelectableDays();
// selectables == null when the input is empty
if (selectables == null)
Assert.assertEquals(day.getTimeInMillis(), limiter.setToNearestDate(day).getTimeInMillis());
else
Assert.assertTrue(Arrays.asList(selectables).contains(limiter.setToNearestDate(day)));
}
Aggregations