use of com.srotya.sidewinder.core.functions.iterative.DownsampleFunction in project sidewinder by srotya.
the class TestDownSamplingIFunction method testBasicSumDownSampling.
@Test
public void testBasicSumDownSampling() throws IOException {
Field tField = new TimeField(measurement, new LinkedByteString().concat(new ByteString("time")), 121213, new HashMap<>());
long ts = 1546755994280L;
for (int i = 0; i < 100; i++) {
tField.addDataPoint(measurement, ts + i * 1000);
}
Field vField = new ValueField(measurement, new LinkedByteString().concat(new ByteString("field1")), 121213, new HashMap<>());
for (int i = 0; i < 100; i++) {
vField.addDataPoint(measurement, i);
}
DataPointIterator itr = new DataPointIterator(tField.queryReader(null, new NoLock()), vField.queryReader(null, new NoLock()));
DownsampleFunction f = new DownsampleFunction(itr, 5, TimeUnit.SECONDS, ((x, y) -> (x + y)));
int c = 0;
while (f.hasNext()) {
DataPoint next = f.next();
if (c < 20) {
assertEquals(ts + c * 1000 * 5, next.getTimestamp());
}
c++;
}
assertEquals(21, c);
itr = new DataPointIterator(tField.queryReader(null, new NoLock()), vField.queryReader(null, new NoLock()));
f = new DownsampleFunction(itr, 10, TimeUnit.SECONDS, ((x, y) -> (x + y) / 2));
c = 0;
while (f.hasNext()) {
DataPoint next = f.next();
if (c < 10) {
assertEquals(ts + c * 1000 * 10, next.getTimestamp());
}
c++;
}
assertEquals(10, c, 1);
}
use of com.srotya.sidewinder.core.functions.iterative.DownsampleFunction in project sidewinder by srotya.
the class TestDownSamplingIFunction method testAverageDownsampling.
@Test
public void testAverageDownsampling() throws IOException {
Field tField = new TimeField(measurement, new LinkedByteString().concat(new ByteString("time")), 121213, new HashMap<>());
long ts = 1546755994280L;
for (int i = 0; i < 100; i++) {
tField.addDataPoint(measurement, ts + i * 1000);
}
Field vField = new ValueField(measurement, new LinkedByteString().concat(new ByteString("field1")), 121213, new HashMap<>());
for (int i = 0; i < 100; i++) {
vField.addDataPoint(measurement, 1L);
}
DataPointIterator itr = new DataPointIterator(tField.queryReader(null, new NoLock()), vField.queryReader(null, new NoLock()));
DownsampleFunction f = new DownsampleFunction(itr, 5, TimeUnit.SECONDS, ((x, y) -> (x + y)));
int c = 0;
while (f.hasNext()) {
DataPoint next = f.next();
if (c < 20) {
assertEquals(ts + c * 1000 * 5, next.getTimestamp());
assertEquals(5, next.getLongValue());
}
c++;
}
assertEquals(21, c);
itr = new DataPointIterator(tField.queryReader(null, new NoLock()), vField.queryReader(null, new NoLock()));
f = new DownsampleFunction(itr, 10, TimeUnit.SECONDS, ((x, y) -> (x + y) / 2));
c = 0;
while (f.hasNext()) {
DataPoint next = f.next();
if (c < 10) {
assertEquals(ts + c * 1000 * 10, next.getTimestamp());
assertEquals(1, next.getLongValue());
}
c++;
}
assertEquals(10, c, 1);
}
Aggregations