Package com.pearson.entech.elasticsearch.search.facet.approx.datehistogram

Source Code of com.pearson.entech.elasticsearch.search.facet.approx.datehistogram.TimeZoneRoundingCacheTest

package com.pearson.entech.elasticsearch.search.facet.approx.datehistogram;

import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertTrue;

import org.elasticsearch.common.joda.TimeZoneRounding;
import org.elasticsearch.common.joda.time.Chronology;
import org.elasticsearch.common.joda.time.DateTimeZone;
import org.elasticsearch.common.joda.time.chrono.ISOChronology;
import org.junit.Test;

public class TimeZoneRoundingCacheTest {

    @Test
    public void testCacheMonotonically() throws Exception {
        final int cacheSize = 1000;
        final int reps = 2000;
        final long[] input = new long[reps];
        final long[] expected = new long[reps];
        final long[] actual = new long[reps];
        final Chronology chronology = ISOChronology.getInstanceUTC();
        final TimeZoneRounding tzRounding = new TimeZoneRounding.Builder(chronology.secondOfMinute())
                .preZone(DateTimeZone.forID("Australia/Sydney"))
                .build();
        final TimeZoneRoundingCache cache = new TimeZoneRoundingCache(tzRounding, cacheSize);

        for(int i = 0; i < reps; i++) {
            input[i] = System.currentTimeMillis() / 1000;
            Thread.sleep(1);
        }

        final long start1 = System.currentTimeMillis();
        for(int i = 0; i < reps; i++) {
            expected[i] = tzRounding.calc(input[i]);
        }
        final long time1 = System.currentTimeMillis() - start1;

        final long start2 = System.currentTimeMillis();
        for(int i = 0; i < reps; i++) {
            actual[i] = cache.round(input[i]);
        }
        final long time2 = System.currentTimeMillis() - start2;

        assertTrue(time2 < time1);
        assertArrayEquals(expected, actual);
    }
}
TOP

Related Classes of com.pearson.entech.elasticsearch.search.facet.approx.datehistogram.TimeZoneRoundingCacheTest

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.