use of com.b3dgs.lionengine.Resolution in project lionengine by b3dgs.
the class LoaderTest method testEngineTerminate.
/**
* Test with sequence terminate engine.
*/
@Test
void testEngineTerminate() {
final Resolution output = new Resolution(320, 240, 60);
final Config config = new Config(output, 16, true);
final Thread thread = new Thread(() -> Loader.start(config, SequenceEngineTerminateMock.class).await());
thread.start();
assertTimeout(10_000L, () -> thread.join(50L));
assertTimeout(10_000L, () -> assertTrue(thread.isAlive()));
SequenceEngineTerminateMock.CLOSE.set(true);
assertTimeout(10_000L, () -> thread.join(5_000L));
assertTimeout(10_000L, () -> assertFalse(thread.isAlive()));
}
use of com.b3dgs.lionengine.Resolution in project lionengine by b3dgs.
the class LoaderTest method testBilinear.
/**
* Test with bilinear filter.
*/
@Test
void testBilinear() {
final Resolution output = new Resolution(640, 480, 0);
final Config config = new Config(output, 16, true);
Loader.start(config, SequenceFilterMock.class, new FilterBilinear()).await();
}
use of com.b3dgs.lionengine.Resolution in project lionengine by b3dgs.
the class LoopFrameSkippingTest 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(10_000L, latch::await);
loop.stop();
assertTimeout(10_000L, thread::join);
assertEquals(0, tick.get());
assertEquals(0, rendered.get());
assertEquals(-1, computed.get());
} finally {
ScreenMock.setScreenWait(false);
}
}
use of com.b3dgs.lionengine.Resolution in project lionengine by b3dgs.
the class LoopFrameSkippingTest method testSlowRender.
/**
* Test with slow rendering.
*/
@Test
void testSlowRender() {
ScreenMock.setScreenWait(false);
final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 50), 16, true));
pause.set(50L);
final Thread thread = getTask(screen);
thread.start();
assertTimeout(10_000L, thread::join);
assertTrue(tick.get() >= maxTick.get(), tick.get() + " " + maxTick.get());
final boolean min = rendered.get() >= Math.round(Math.floor(tick.get() / 2.0));
final boolean max = rendered.get() <= Math.round(Math.ceil(tick.get() / 2.0));
assertTrue(min || max, tick.get() + " " + rendered.get());
final int expectedRate = screen.getConfig().getOutput().getRate();
assertTrue(computed.get() < expectedRate / 2, String.valueOf(computed.get()));
assertTrue(computed.get() > expectedRate / 2 - expectedRate, String.valueOf(computed.get()));
}
use of com.b3dgs.lionengine.Resolution in project lionengine by b3dgs.
the class LoopLockedTest method testNoSyncFullscreen.
/**
* Test without sync.
*/
@Test
void testNoSyncFullscreen() {
ScreenMock.setScreenWait(false);
final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 0), 16, false));
loop.notifyRateChanged(0);
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()));
}
Aggregations