Search in sources :

Example 51 with Config

use of com.b3dgs.lionengine.Config in project lionengine by b3dgs.

the class LoopExtrapolatedTest method testNoSync.

/**
 * Test without sync.
 *
 * @throws InterruptedException If error.
 */
@Test(timeout = 1000L)
public void testNoSync() throws InterruptedException {
    ScreenMock.setScreenWait(false);
    final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 0), 16, true));
    screen.getConfig().setSource(new Resolution(320, 240, 50));
    final Thread thread = getTask(screen);
    thread.start();
    thread.join();
    Assert.assertEquals(maxTick.get(), tick.get());
    Assert.assertEquals(tick.get(), rendered.get());
    Assert.assertTrue(String.valueOf(extrapolation.get()), extrapolation.get().doubleValue() < 0.1);
    final int expectedRate = screen.getConfig().getOutput().getRate();
    Assert.assertTrue(String.valueOf(computed.get()), computed.get() > expectedRate);
}
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.Test)

Example 52 with Config

use of com.b3dgs.lionengine.Config in project lionengine by b3dgs.

the class LoopExtrapolatedTest method testLoop.

/**
 * Test loop.
 *
 * @throws InterruptedException If error.
 */
@Test(timeout = 1000L)
public void testLoop() throws InterruptedException {
    ScreenMock.setScreenWait(false);
    final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 50), 16, true));
    screen.getConfig().setSource(new Resolution(320, 240, 50));
    final Thread thread = getTask(screen);
    thread.start();
    thread.join();
    Assert.assertEquals(maxTick.get(), tick.get());
    Assert.assertEquals(tick.get(), rendered.get());
    Assert.assertTrue(String.valueOf(extrapolation.get().doubleValue()), extrapolation.get().doubleValue() > 0.0);
    final int expectedRate = screen.getConfig().getOutput().getRate();
    Assert.assertTrue(String.valueOf(computed.get()), computed.get() <= expectedRate);
}
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.Test)

Example 53 with Config

use of com.b3dgs.lionengine.Config in project lionengine by b3dgs.

the class LoopFrameSkippingTest method testSpikeOfDeath.

/**
 * Test with spike of death.
 *
 * @throws InterruptedException If error.
 */
@Test(timeout = 2000L)
public void testSpikeOfDeath() throws InterruptedException {
    ScreenMock.setScreenWait(false);
    final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 50), 16, true));
    screen.getConfig().setSource(new Resolution(320, 240, 50));
    final long maxFrameTime = Math.round(LoopFrameSkipping.MAX_FRAME_TIME_NANO / Constant.NANO_TO_MILLI);
    pause.set(maxFrameTime * 2);
    final Thread thread = getTask(screen);
    thread.start();
    thread.join();
    final double frameTimeMilli = 1000.0 / screen.getConfig().getSource().getRate();
    Assert.assertEquals(Math.round(Math.floor(maxFrameTime / frameTimeMilli)), tick.get());
    Assert.assertEquals(2, rendered.get());
    final int expectedRate = screen.getConfig().getOutput().getRate();
    Assert.assertTrue(String.valueOf(computed.get()), computed.get() < expectedRate);
}
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.Test)

Example 54 with Config

use of com.b3dgs.lionengine.Config in project lionengine by b3dgs.

the class LoopFrameSkippingTest method testEngineNotStarted.

/**
 * Test with not started engine.
 *
 * @throws InterruptedException If error.
 */
@Test(timeout = 1000L)
public void testEngineNotStarted() throws InterruptedException {
    ScreenMock.setScreenWait(false);
    final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 50), 16, true));
    screen.getConfig().setSource(new Resolution(320, 240, 50));
    maxTick.set(-1);
    final Thread thread = getTask(screen);
    thread.start();
    while (tick.get() < 1) {
    // Continue
    }
    Engine.terminate();
    thread.join();
    Assert.assertEquals(tick.get(), rendered.get());
    final int expectedRate = screen.getConfig().getOutput().getRate();
    Assert.assertTrue(String.valueOf(computed.get()), computed.get() <= expectedRate);
}
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.Test)

Example 55 with Config

use of com.b3dgs.lionengine.Config in project lionengine by b3dgs.

the class LoopFrameSkippingTest method testLoop.

/**
 * Test loop.
 *
 * @throws InterruptedException If error.
 */
@Test(timeout = 1000L)
public void testLoop() throws InterruptedException {
    ScreenMock.setScreenWait(false);
    final Screen screen = new ScreenMock(new Config(new Resolution(320, 240, 50), 16, true));
    screen.getConfig().setSource(new Resolution(320, 240, 50));
    final Thread thread = getTask(screen);
    thread.start();
    thread.join();
    Assert.assertEquals(maxTick.get(), tick.get());
    Assert.assertEquals(tick.get(), rendered.get());
    final int expectedRate = screen.getConfig().getOutput().getRate();
    Assert.assertTrue(String.valueOf(computed.get()), computed.get() <= expectedRate);
    Assert.assertTrue(String.valueOf(computed.get()), computed.get() > 0);
}
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.Test)

Aggregations

Config (com.b3dgs.lionengine.Config)89 Resolution (com.b3dgs.lionengine.Resolution)75 Screen (com.b3dgs.lionengine.graphic.Screen)47 ScreenMock (com.b3dgs.lionengine.graphic.ScreenMock)45 Test (org.junit.jupiter.api.Test)42 Test (org.junit.Test)38 FactoryGraphicMock (com.b3dgs.lionengine.graphic.FactoryGraphicMock)2 Semaphore (java.util.concurrent.Semaphore)2 AtomicReference (java.util.concurrent.atomic.AtomicReference)2 Context (com.b3dgs.lionengine.Context)1 LionEngineException (com.b3dgs.lionengine.LionEngineException)1 FilterBilinear (com.b3dgs.lionengine.core.filter.FilterBilinear)1 FilterBlur (com.b3dgs.lionengine.core.filter.FilterBlur)1 FilterHq2x (com.b3dgs.lionengine.core.filter.FilterHq2x)1 FilterHq3x (com.b3dgs.lionengine.core.filter.FilterHq3x)1 ImageBuffer (com.b3dgs.lionengine.graphic.ImageBuffer)1 Rasterbar (com.b3dgs.lionengine.graphic.engine.Rasterbar)1 Sequencer (com.b3dgs.lionengine.graphic.engine.Sequencer)1 SourceResolutionProvider (com.b3dgs.lionengine.graphic.engine.SourceResolutionProvider)1 FilterBilinear (com.b3dgs.lionengine.graphic.filter.FilterBilinear)1