use of com.b3dgs.lionengine.graphic.ScreenMock in project lionengine by b3dgs.
the class LoopFrameSkippingTest method testSpikeOfDeath.
/**
* Test with spike of death.
*/
@Test
void testSpikeOfDeath() {
ScreenMock.setScreenWait(false);
final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 50), 16, true));
final long maxFrameTime = Math.round(LoopFrameSkipping.MAX_FRAME_TIME_NANO / Constant.NANO_TO_MILLI);
pause.set(maxFrameTime + 50L);
final Thread thread = getTask(screen);
thread.start();
assertTimeout(10_000L, thread::join);
final double frameTimeMilli = 1000.0 / 50L;
assertEquals(Math.round(Math.floor(maxFrameTime / frameTimeMilli)), tick.get());
assertEquals(2, rendered.get());
final int expectedRate = screen.getConfig().getOutput().getRate();
assertTrue(computed.get() < expectedRate, String.valueOf(computed.get()));
}
use of com.b3dgs.lionengine.graphic.ScreenMock in project lionengine by b3dgs.
the class LoopLockedTest method testLoop.
/**
* Test loop.
*/
@Test
void testLoop() {
ScreenMock.setScreenWait(false);
final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 50), 16, true));
final Thread thread = getTask(screen);
thread.start();
assertTimeout(1000L, thread::join);
assertEquals(maxTick.get(), tick.get());
assertEquals(tick.get(), rendered.get());
final int expectedRate = screen.getConfig().getOutput().getRate();
assertTrue(computed.get() <= expectedRate, String.valueOf(computed.get()));
}
use of com.b3dgs.lionengine.graphic.ScreenMock in project lionengine by b3dgs.
the class LoopLockedTest method testUnready.
/**
* Test with not ready screen.
*/
@Test
void testUnready() {
ScreenMock.setScreenWait(true);
try {
final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 50), 16, true));
final Thread thread = getTask(screen);
thread.start();
assertTimeout(1000L, latch::await);
loop.stop();
assertTimeout(1000L, thread::join);
assertEquals(0, tick.get());
assertEquals(0, rendered.get());
assertEquals(-1, computed.get());
} finally {
ScreenMock.setScreenWait(false);
}
}
use of com.b3dgs.lionengine.graphic.ScreenMock in project lionengine by b3dgs.
the class LoopLockedTest method testNoSync.
/**
* Test without sync.
*/
@Test
void testNoSync() {
ScreenMock.setScreenWait(false);
final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 0), 16, true));
final Thread thread = getTask(screen);
thread.start();
assertTimeout(1000L, thread::join);
assertEquals(maxTick.get(), tick.get());
assertEquals(tick.get(), rendered.get());
final int expectedRate = screen.getConfig().getOutput().getRate();
assertTrue(computed.get() > expectedRate, String.valueOf(computed.get()));
}
use of com.b3dgs.lionengine.graphic.ScreenMock in project lionengine by b3dgs.
the class LoopExtrapolatedTest method testNoSync.
/**
* Test without sync.
*/
@Test
void testNoSync() {
ScreenMock.setScreenWait(false);
final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 0), 16, true));
final Thread thread = getTask(screen);
thread.start();
assertTimeout(1000L, thread::join);
assertEquals(maxTick.get(), tick.get());
assertEquals(tick.get(), rendered.get());
assertTrue(extrapolation.get().doubleValue() < 0.1, String.valueOf(extrapolation.get()));
final int expectedRate = screen.getConfig().getOutput().getRate();
assertTrue(computed.get() > expectedRate, String.valueOf(computed.get()));
}
Aggregations