Search in sources :

Example 6 with FDate

use of de.invesdwin.util.time.date.FDate in project invesdwin-context-persistence by subes.

the class ALiveSegmentedTimeSeriesDBWithCacheTest method testOneResult.

@Test
public void testOneResult() {
    for (final FDate entity : entities) {
        Assertions.assertThat(cache.query().getValue(entity.addYears(5))).isNotNull();
    }
    Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(0);
    Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
}
Also used : FDate(de.invesdwin.util.time.date.FDate) ATest(de.invesdwin.context.test.ATest) Test(org.junit.jupiter.api.Test)

Example 7 with FDate

use of de.invesdwin.util.time.date.FDate in project invesdwin-context-persistence by subes.

the class ALiveSegmentedTimeSeriesDBWithCacheTest method testNextKey.

@Test
public void testNextKey() {
    FDate nextKey = cache.query().setFutureEnabled().getNextKey(FDate.MIN_DATE, entities.size());
    Assertions.assertThat(nextKey).isEqualTo(entities.get(entities.size() - 1));
    Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(1);
    // loading newest entity is faster than always loading all entities
    Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
    nextKey = cache.query().setFutureEnabled().getNextKey(FDate.MIN_DATE, 1);
    Assertions.assertThat(nextKey).isEqualTo(entities.get(1));
    Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(1);
    Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
}
Also used : FDate(de.invesdwin.util.time.date.FDate) ATest(de.invesdwin.context.test.ATest) Test(org.junit.jupiter.api.Test)

Example 8 with FDate

use of de.invesdwin.util.time.date.FDate in project invesdwin-context-persistence by subes.

the class ALiveSegmentedTimeSeriesDBWithCacheTest method testPreviousValueWithQueryCacheWithAlwaysSameKey.

@Test
public void testPreviousValueWithQueryCacheWithAlwaysSameKey() {
    for (int size = 1; size < entities.size(); size++) {
        final FDate previousValue = cache.query().getPreviousValue(entities.get(entities.size() - 1), size);
        final FDate expectedValue = entities.get(entities.size() - size - 1);
        Assertions.assertThat(previousValue).isEqualTo(expectedValue);
    }
    Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(4);
    Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
    Assertions.assertThat(countInnerExtractKey).isEqualTo(4);
    Assertions.assertThat(countAdjustKey).isEqualTo(0);
}
Also used : FDate(de.invesdwin.util.time.date.FDate) ATest(de.invesdwin.context.test.ATest) Test(org.junit.jupiter.api.Test)

Example 9 with FDate

use of de.invesdwin.util.time.date.FDate in project invesdwin-context-persistence by subes.

the class ALiveSegmentedTimeSeriesDBWithCacheTest method testPreviousValueWithQueryCacheWithJumpingAround.

@Test
public void testPreviousValueWithQueryCacheWithJumpingAround() {
    // first
    FDate previousValue = cache.query().getPreviousValue(entities.get(0), 1);
    FDate expectedValue = entities.get(0);
    Assertions.assertThat(previousValue).isEqualTo(expectedValue);
    Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(0);
    Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
    Assertions.assertThat(countInnerExtractKey).isEqualTo(0);
    Assertions.assertThat(countAdjustKey).isEqualTo(0);
    // last
    previousValue = cache.query().getPreviousValue(entities.get(entities.size() - 1), 1);
    expectedValue = entities.get(entities.size() - 2);
    Assertions.assertThat(previousValue).isEqualTo(expectedValue);
    Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(1);
    Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
    Assertions.assertThat(countInnerExtractKey).isEqualTo(1);
    Assertions.assertThat(countAdjustKey).isEqualTo(0);
    // first +1
    previousValue = cache.query().getPreviousValue(entities.get(1), 1);
    expectedValue = entities.get(0);
    Assertions.assertThat(previousValue).isEqualTo(expectedValue);
    Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(2);
    Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
    Assertions.assertThat(countInnerExtractKey).isEqualTo(2);
    Assertions.assertThat(countAdjustKey).isEqualTo(0);
    // last -1
    previousValue = cache.query().getPreviousValue(entities.get(entities.size() - 2), 1);
    expectedValue = entities.get(entities.size() - 3);
    Assertions.assertThat(previousValue).isEqualTo(expectedValue);
    Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(2);
    Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
    Assertions.assertThat(countInnerExtractKey).isEqualTo(2);
    Assertions.assertThat(countAdjustKey).isEqualTo(0);
}
Also used : FDate(de.invesdwin.util.time.date.FDate) ATest(de.invesdwin.context.test.ATest) Test(org.junit.jupiter.api.Test)

Example 10 with FDate

use of de.invesdwin.util.time.date.FDate in project invesdwin-context-persistence by subes.

the class ALiveSegmentedTimeSeriesDBWithCacheTest method testNextKeyWithAllValues.

@Test
public void testNextKeyWithAllValues() {
    returnAllInReadAllValuesAscendingFrom = true;
    FDate nextKey = cache.query().setFutureEnabled().getNextKey(FDate.MIN_DATE, entities.size());
    Assertions.assertThat(nextKey).isEqualTo(entities.get(entities.size() - 1));
    Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(1);
    // loading newest entity is faster than always loading all entities
    Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
    nextKey = cache.query().setFutureEnabled().getNextKey(FDate.MIN_DATE, 1);
    Assertions.assertThat(nextKey).isEqualTo(entities.get(1));
    Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(1);
    Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
}
Also used : FDate(de.invesdwin.util.time.date.FDate) ATest(de.invesdwin.context.test.ATest) Test(org.junit.jupiter.api.Test)

Aggregations

FDate (de.invesdwin.util.time.date.FDate)1046 Test (org.junit.jupiter.api.Test)942 ATest (de.invesdwin.context.test.ATest)921 ArrayList (java.util.ArrayList)255 IEvaluateGenericFDate (de.invesdwin.util.math.expression.lambda.IEvaluateGenericFDate)97 Instant (de.invesdwin.util.time.Instant)78 LoopInterruptedCheck (de.invesdwin.util.concurrent.loop.LoopInterruptedCheck)63 APushingHistoricalCacheAdjustKeyProvider (de.invesdwin.util.collections.loadingcache.historical.key.APushingHistoricalCacheAdjustKeyProvider)54 HashSet (java.util.HashSet)36 NoSuchElementException (java.util.NoSuchElementException)34 TimeRange (de.invesdwin.util.time.range.TimeRange)27 File (java.io.File)26 ICloseableIterable (de.invesdwin.util.collections.iterable.ICloseableIterable)20 List (java.util.List)20 Pair (de.invesdwin.util.bean.tuple.Pair)18 APullingHistoricalCacheAdjustKeyProvider (de.invesdwin.util.collections.loadingcache.historical.key.APullingHistoricalCacheAdjustKeyProvider)18 Collection (java.util.Collection)18 PreparedStatement (java.sql.PreparedStatement)16 ResultSet (java.sql.ResultSet)15 Duration (de.invesdwin.util.time.duration.Duration)13