Package wpn.hdri.ss.engine

Source Code of wpn.hdri.ss.engine.ITEngineStressTest

package wpn.hdri.ss.engine;

import org.apache.log4j.Logger;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import wpn.hdri.ss.EngineTestBootstrap;
import wpn.hdri.ss.data.Timestamp;

import java.util.concurrent.TimeUnit;

import static junit.framework.Assert.assertTrue;
import static org.mockito.Mockito.spy;

/**
* @author Igor Khokhriakov <igor.khokhriakov@hzg.de>
* @since 14.06.13
*/
public class ITEngineStressTest {
    public static final int _1M = 999999 + 2;//force persistent file creation
    public static final int _10K = 10000;
    public static final int _100K = 100000;

    private final Logger mockLogger = spy(new Logger(ITEngineStressTest.class.getSimpleName()) {
        @Override
        public void info(Object message) {
            System.out.println(message);
        }

        @Override
        public void error(Object message, Throwable t) {
            System.err.println(message);
        }

        @Override
        public void error(Object message) {
            System.err.println(message);
        }
    });

    private Engine engine;

    @Before
    public void before() {
        EngineTestBootstrap bootstrap = new EngineTestBootstrap();
        bootstrap.bootstrap();
        engine = bootstrap.getEngine();
    }

    @After
    public void after() {
        engine.clear();
        engine = null;
    }

    @Test
    public void testGetLatestSnapshot() throws Exception {
        for (int i = 0; i < _100K; i++) {
            engine.getLatestValues(AttributesManager.DEFAULT_ATTR_GROUP);
        }

        long start = System.nanoTime();
        for (int i = 0; i < _10K; i++) {
            engine.getLatestValues(AttributesManager.DEFAULT_ATTR_GROUP);
        }
        long stop = System.nanoTime();

        long delta = stop - start;
        long average = delta / _10K;
        System.out.println("Average time in getLatestValues (nano) = " + average);
        System.out.println("Average time in getLatestValues (millis) = " + TimeUnit.MILLISECONDS.convert(average, TimeUnit.NANOSECONDS));
        System.out.println("Average time in getLatestValues (seconds) = " + TimeUnit.SECONDS.convert(average, TimeUnit.NANOSECONDS));

        assertTrue(average < _100K);
    }

    @Test
    public void testGetSnapshot() {
        Timestamp timestamp = new Timestamp(System.currentTimeMillis() - 1000);
        for (int i = 0; i < _100K; i++) {
            engine.getValues(timestamp, AttributesManager.DEFAULT_ATTR_GROUP);
        }

        long start = System.nanoTime();
        for (int i = 0; i < _10K; i++) {
            engine.getValues(timestamp, AttributesManager.DEFAULT_ATTR_GROUP);
        }
        long stop = System.nanoTime();

        long delta = stop - start;
        long average = delta / _10K;
        System.out.println("Average time in getLatestValues (nano) = " + average);
        System.out.println("Average time in getLatestValues (millis) = " + TimeUnit.MILLISECONDS.convert(average, TimeUnit.NANOSECONDS));
        System.out.println("Average time in getLatestValues (seconds) = " + TimeUnit.SECONDS.convert(average, TimeUnit.NANOSECONDS));

        assertTrue(average < _100K);
    }

    @Test
    public void testGetDataUpdates() {
        Timestamp timestamp = new Timestamp(System.currentTimeMillis() - 1000);
        for (int i = 0; i < _100K; i++) {
            engine.getAllAttributeValues(timestamp, AttributesManager.DEFAULT_ATTR_GROUP);
        }


        long start = System.nanoTime();
        for (int i = 0; i < _10K; i++) {
            engine.getAllAttributeValues(timestamp, AttributesManager.DEFAULT_ATTR_GROUP);
        }
        long stop = System.nanoTime();

        long delta = stop - start;
        long average = delta / _10K;
        System.out.println("Average time in getLatestValues (nano) = " + average);
        System.out.println("Average time in getLatestValues (millis) = " + TimeUnit.MILLISECONDS.convert(average, TimeUnit.NANOSECONDS));
        System.out.println("Average time in getLatestValues (seconds) = " + TimeUnit.SECONDS.convert(average, TimeUnit.NANOSECONDS));

        assertTrue(average < _100K);
    }

    @Test
    public void testGetData() {
        for (int i = 0; i < _100K; i++) {
            engine.getAllAttributeValues(Timestamp.DEEP_PAST, AttributesManager.DEFAULT_ATTR_GROUP);
        }

        long start = System.nanoTime();
        for (int i = 0; i < _10K; i++) {
            engine.getAllAttributeValues(Timestamp.DEEP_PAST, AttributesManager.DEFAULT_ATTR_GROUP);
        }
        long stop = System.nanoTime();

        long delta = stop - start;
        long average = delta / _10K;
        System.out.println("Average time in getLatestValues (nano) = " + average);
        System.out.println("Average time in getLatestValues (millis) = " + TimeUnit.MILLISECONDS.convert(average, TimeUnit.NANOSECONDS));
        System.out.println("Average time in getLatestValues (seconds) = " + TimeUnit.SECONDS.convert(average, TimeUnit.NANOSECONDS));

        assertTrue(average < _100K);
    }

    public static void main(String... args) throws Exception {
        ITEngineStressTest testSuite = new ITEngineStressTest();
        testSuite.before();

        testSuite.testGetData();

        testSuite.after();
    }
}
TOP

Related Classes of wpn.hdri.ss.engine.ITEngineStressTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.