public void add(final int val) { recentDesiredResizes.add(val); }
public void add(T val) { add(val, System.currentTimeMillis()); }
@Test public void testGetsSubSetOfRecentVals() { TimeWindowedList list = new TimeWindowedList<Object>(Duration.ONE_SECOND); list.add("a", 0L); list.add("b", 100L); assertEquals(list.getValuesInWindow(100L, HUNDRED_MILLISECONDS), timestampedValues("a", 0L, "b", 100L)); assertEquals(list.getValuesInWindow(101L, ONE_MILLISECOND), timestampedValues("b", 100L)); }
@Test public void testKeepsOnlyRecentVals() { TimeWindowedList list = new TimeWindowedList<Object>(MutableMap.of("timePeriod", 1000L)); list.add("a", 0L); list.add("b", 100L); assertEquals(list.getValues(1000L), timestampedValues("a", 0L, "b", 100L)); assertEquals(list.getValues(1100L), timestampedValues("b", 100L)); assertEquals(list.getValues(1101L), Lists.newArrayList()); }
@Test public void testKeepsMinExpiredVals() { TimeWindowedList list = new TimeWindowedList<Object>(MutableMap.of("timePeriod", 1000L, "minExpiredVals", 1)); list.add("a", 0L); list.add("b", 100L); assertEquals(list.getValues(1001L), timestampedValues("a", 0L, "b", 100L)); assertEquals(list.getValues(1101L), timestampedValues("b", 100L)); }
@Test public void testKeepsMinVals() { TimeWindowedList list = new TimeWindowedList<Object>(MutableMap.of("timePeriod", 1L, "minVals", 2)); assertEquals(list.getValues(2L), timestampedValues()); list.add("a", 0L); assertEquals(list.getValues(2L), timestampedValues("a", 0L)); list.add("b", 100L); assertEquals(list.getValues(102L), timestampedValues("a", 0L, "b", 100L)); list.add("c", 200L); assertEquals(list.getValues(202L), timestampedValues("b", 100L, "c", 200L)); }
@Test public void testGetsSubSetOfValsIncludingOneMinExpiredVal() { TimeWindowedList list = new TimeWindowedList<Object>(MutableMap.of("timePeriod", 1000L, "minExpiredVals", 1)); list.add("a", 0L); list.add("b", 100L); assertEquals(list.getValuesInWindow(100L, HUNDRED_MILLISECONDS), timestampedValues("a", 0L, "b", 100L)); assertEquals(list.getValuesInWindow(101L, TWO_MILLISECONDS), timestampedValues("a", 0L, "b", 100L)); assertEquals(list.getValuesInWindow(102L, ONE_MILLISECOND), timestampedValues("b", 100L)); assertEquals(list.getValuesInWindow(1001L, ONE_MILLISECOND), timestampedValues("b", 100L)); }
@Test public void testZeroSizeWindowWithOneExpiredContainsOnlyMostRecentValue() { TimeWindowedList list = new TimeWindowedList<Object>(MutableMap.of("timePeriod", 0L, "minExpiredVals", 1)); list.add("a", 0L); assertEquals(list.getValuesInWindow(0L, HUNDRED_MILLISECONDS), timestampedValues("a", 0L)); assertEquals(list.getValuesInWindow(2L, ONE_MILLISECOND), timestampedValues("a", 0L)); list.add("b", 100L); assertEquals(list.getValuesInWindow(100L, ONE_MILLISECOND), timestampedValues("b", 100L)); assertEquals(list.getValuesInWindow(102L, ONE_MILLISECOND), timestampedValues("b", 100L)); }