use of de.invesdwin.util.time.date.FDate in project invesdwin-context-persistence by subes.
the class ALiveSegmentedTimeSeriesDBWithCacheTest method testGetPreviousAndNextEntry.
@Test
public void testGetPreviousAndNextEntry() {
for (int i = 0; i < entities.size(); i++) {
final FDate value = IHistoricalEntry.unwrapEntryValue(cache.query().getPreviousEntry(entities.get(entities.size() - 1), i));
final FDate expectedValue = entities.get(entities.size() - i - 1);
Assertions.checkEquals(value, expectedValue, i + ": expected [" + expectedValue + "] got [" + value + "]");
}
for (int i = 0; i < entities.size(); i++) {
final FDate value = IHistoricalEntry.unwrapEntryValue(cache.query().getPreviousEntry(FDate.MAX_DATE, i));
final FDate expectedValue = entities.get(entities.size() - i - 1);
Assertions.checkEquals(value, expectedValue, i + ": expected [" + expectedValue + "] got [" + value + "]");
}
for (int i = 0; i < entities.size(); i++) {
final FDate value = IHistoricalEntry.unwrapEntryValue(cache.query().setFutureEnabled().getPreviousEntry(FDate.MIN_DATE, i));
// filtering query removes the result because it is not a previous result
final FDate expectedValue = null;
Assertions.checkEquals(value, expectedValue, i + ": expected [" + expectedValue + "] got [" + value + "]");
}
for (int i = 0; i < entities.size(); i++) {
final FDate value = IHistoricalEntry.unwrapEntryValue(cache.query().setFutureEnabled().getNextEntry(entities.get(0), i));
final FDate expectedValue = entities.get(i);
Assertions.checkEquals(value, expectedValue, i + ": expected [" + expectedValue + "] got [" + value + "]");
}
for (int i = 0; i < entities.size(); i++) {
final FDate value = IHistoricalEntry.unwrapEntryValue(cache.query().setFutureEnabled().getNextEntry(FDate.MIN_DATE, i));
final FDate expectedValue = entities.get(i);
Assertions.checkEquals(value, expectedValue, i + ": expected [" + expectedValue + "] got [" + value + "]");
}
for (int i = 0; i < entities.size(); i++) {
final FDate value = IHistoricalEntry.unwrapEntryValue(cache.query().setFutureEnabled().getNextEntry(FDate.MAX_DATE, i));
// filtering query removes the result because it is not a previous result
final FDate expectedValue = null;
Assertions.checkEquals(value, expectedValue, i + ": expected [" + expectedValue + "] got [" + value + "]");
}
}
use of de.invesdwin.util.time.date.FDate in project invesdwin-context-persistence by subes.
the class ALiveSegmentedTimeSeriesDBWithCacheTest method testSubListWhenSwitchingFromNonFilterToFilter.
@Test
public void testSubListWhenSwitchingFromNonFilterToFilter() {
final FDate key = new FDate();
final FDate previousValue = cache.query().getPreviousValue(key, 4);
final FDate expectedValue = entities.get(entities.size() - 5);
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);
final Collection<FDate> previousValues = asList(cache.query().getPreviousValues(key, 4));
final List<FDate> expectedValues = entities.subList(2, 6);
Assertions.assertThat(previousValues).isEqualTo(expectedValues);
Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(4);
Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
Assertions.assertThat(countInnerExtractKey).isEqualTo(4);
Assertions.assertThat(countAdjustKey).isEqualTo(0);
}
use of de.invesdwin.util.time.date.FDate in project invesdwin-context-persistence by subes.
the class ALiveSegmentedTimeSeriesDBWithCacheTest method testNoResultsDown.
@Test
public void testNoResultsDown() {
for (final FDate entity : entities) {
Assertions.assertThat(cache.query().setFutureEnabled().getValue(entity.addYears(-100))).isNotNull();
}
Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(0);
Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
}
use of de.invesdwin.util.time.date.FDate in project invesdwin-context-persistence by subes.
the class ALiveSegmentedTimeSeriesDBWithCacheTest method testNextValueWithDistance.
@Test
public void testNextValueWithDistance() {
FDate nextValue = cache.query().setFutureEnabled().getNextValue(FDate.MIN_DATE, entities.size());
Assertions.assertThat(nextValue).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);
nextValue = cache.query().setFutureEnabled().getNextValue(FDate.MIN_DATE, 1);
Assertions.assertThat(nextValue).isEqualTo(entities.get(1));
Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(1);
Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
}
use of de.invesdwin.util.time.date.FDate in project invesdwin-context-persistence by subes.
the class ALiveSegmentedTimeSeriesDBWithCacheTest method testNoResultsUp.
@Test
public void testNoResultsUp() {
for (final FDate entity : entities) {
Assertions.assertThat(cache.query().getValue(entity.addYears(100))).isNotNull();
}
Assertions.assertThat(countReadAllValuesAscendingFrom).isEqualTo(0);
Assertions.assertThat(countReadNewestValueTo).isEqualTo(2);
}
Aggregations