Search in sources :

Example 41 with ScreenMock

use of com.b3dgs.lionengine.graphic.ScreenMock in project lionengine by b3dgs.

the class LoopHybridTest method testLoop.

/**
 * Test loop.
 */
@Test
void testLoop() {
    ScreenMock.setScreenWait(false);
    final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 100), 16, true));
    final Thread thread = getTask(screen);
    thread.start();
    assertTimeout(1000L, thread::join);
    assertEquals(maxTick.get(), tick.get());
    assertTrue(rendered.get() <= tick.get(), rendered.get() + " " + tick.get());
    assertTrue(extrapolation.get().doubleValue() > 0.0, String.valueOf(extrapolation.get().doubleValue()));
    final int expectedRate = screen.getConfig().getOutput().getRate();
    assertTrue(computed.get() <= expectedRate, String.valueOf(computed.get()));
}
Also used : Screen(com.b3dgs.lionengine.graphic.Screen) Config(com.b3dgs.lionengine.Config) ScreenMock(com.b3dgs.lionengine.graphic.ScreenMock) Resolution(com.b3dgs.lionengine.Resolution) Test(org.junit.jupiter.api.Test)

Example 42 with ScreenMock

use of com.b3dgs.lionengine.graphic.ScreenMock in project lionengine by b3dgs.

the class LoopHybridTest method testMaxRate.

/**
 * Test with max rate.
 */
@Test
void testMaxRate() {
    ScreenMock.setScreenWait(false);
    final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 100), 16, true));
    final Thread thread = getTask(screen);
    thread.start();
    assertTimeout(10_000L, thread::join);
    assertTrue(tick.get() >= maxTick.get(), tick.get() + " " + maxTick.get());
    assertTrue(rendered.get() <= tick.get(), rendered.get() + " " + tick.get());
    assertTrue(rendered.get() > 0, String.valueOf(rendered.get()));
    assertTrue(computed.get() > 0, String.valueOf(computed.get()));
}
Also used : Screen(com.b3dgs.lionengine.graphic.Screen) Config(com.b3dgs.lionengine.Config) ScreenMock(com.b3dgs.lionengine.graphic.ScreenMock) Resolution(com.b3dgs.lionengine.Resolution) Test(org.junit.jupiter.api.Test)

Example 43 with ScreenMock

use of com.b3dgs.lionengine.graphic.ScreenMock in project lionengine by b3dgs.

the class LoopHybridTest 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);
    assertEquals(3, rendered.get());
    final int expectedRate = screen.getConfig().getOutput().getRate();
    assertTrue(computed.get() < expectedRate, String.valueOf(computed.get()));
}
Also used : Screen(com.b3dgs.lionengine.graphic.Screen) Config(com.b3dgs.lionengine.Config) ScreenMock(com.b3dgs.lionengine.graphic.ScreenMock) Resolution(com.b3dgs.lionengine.Resolution) Test(org.junit.jupiter.api.Test)

Example 44 with ScreenMock

use of com.b3dgs.lionengine.graphic.ScreenMock in project lionengine by b3dgs.

the class LoopHybridTest 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, 100), 16, true));
        final Thread thread = getTask(screen);
        thread.start();
        assertTimeout(1000L, latch::await);
        loop.stop();
        assertTimeout(1000L, thread::join);
        assertEquals(1, tick.get());
        assertEquals(0, rendered.get());
        assertEquals(Constant.EXTRP, extrapolation.get().doubleValue());
        assertEquals(-1, computed.get());
    } finally {
        ScreenMock.setScreenWait(false);
    }
}
Also used : Screen(com.b3dgs.lionengine.graphic.Screen) Config(com.b3dgs.lionengine.Config) ScreenMock(com.b3dgs.lionengine.graphic.ScreenMock) Resolution(com.b3dgs.lionengine.Resolution) Test(org.junit.jupiter.api.Test)

Example 45 with ScreenMock

use of com.b3dgs.lionengine.graphic.ScreenMock in project lionengine by b3dgs.

the class LoopUnlockedTest 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());
    assertTrue(computed.get() >= screen.getConfig().getOutput().getRate(), String.valueOf(computed.get()));
}
Also used : Screen(com.b3dgs.lionengine.graphic.Screen) Config(com.b3dgs.lionengine.Config) ScreenMock(com.b3dgs.lionengine.graphic.ScreenMock) Resolution(com.b3dgs.lionengine.Resolution) Test(org.junit.jupiter.api.Test)

Aggregations

Config (com.b3dgs.lionengine.Config)45 Resolution (com.b3dgs.lionengine.Resolution)45 Screen (com.b3dgs.lionengine.graphic.Screen)45 ScreenMock (com.b3dgs.lionengine.graphic.ScreenMock)45 Test (org.junit.jupiter.api.Test)24 Test (org.junit.Test)21