use of com.yahoo.bullet.record.BulletRecord in project bullet-core by yahoo.
the class ProjectionOperationsTest method testNullFieldName.
@Test
public void testNullFieldName() {
Projection projection = makeProjection(ImmutablePair.of(null, "test"), ImmutablePair.of("map_field.foo", "foo"));
BulletRecord record = RecordBox.get().add("field", "test").addMap("map_field", Pair.of("foo", "baz")).getRecord();
BulletRecord actual = ProjectionOperations.project(record, projection);
BulletRecord expected = RecordBox.get().add("foo", "baz").getRecord();
Assert.assertEquals(actual, expected);
}
use of com.yahoo.bullet.record.BulletRecord in project bullet-core by yahoo.
the class QuerierTest method testReceiveTimestampNoProjection.
@Test
public void testReceiveTimestampNoProjection() {
Long start = System.currentTimeMillis();
Query query = new Query();
query.setProjection(null);
query.setWindow(WindowUtils.makeReactiveWindow());
BulletConfig config = new BulletConfig();
config.set(BulletConfig.RECORD_INJECT_TIMESTAMP, true);
config.validate();
query.configure(config);
Querier querier = make(Querier.Mode.ALL, query, config);
BulletRecord input = RecordBox.get().add("field", "foo").add("mid", "123").getRecord();
querier.consume(input);
Assert.assertTrue(querier.isClosed());
List<BulletRecord> records = querier.getRecords();
Assert.assertEquals(records.size(), 1);
BulletRecord actual = records.get(0);
Long end = System.currentTimeMillis();
Assert.assertEquals(size(actual), 3);
Assert.assertEquals(actual.get("field"), "foo");
Assert.assertEquals(actual.get("mid"), "123");
Long recordedTimestamp = (Long) actual.get(BulletConfig.DEFAULT_RECORD_INJECT_TIMESTAMP_KEY);
Assert.assertTrue(recordedTimestamp >= start);
Assert.assertTrue(recordedTimestamp <= end);
}
use of com.yahoo.bullet.record.BulletRecord in project bullet-core by yahoo.
the class QuerierTest method testReceiveTimestamp.
@Test
public void testReceiveTimestamp() {
Long start = System.currentTimeMillis();
Query query = new Query();
query.setProjection(ProjectionUtils.makeProjection("field", "bid"));
query.setWindow(WindowUtils.makeReactiveWindow());
BulletConfig config = new BulletConfig();
config.set(BulletConfig.RECORD_INJECT_TIMESTAMP, true);
config.validate();
query.configure(config);
Querier querier = make(Querier.Mode.ALL, query, config);
BulletRecord input = RecordBox.get().add("field", "foo").add("mid", "123").getRecord();
querier.consume(input);
Assert.assertTrue(querier.isClosed());
List<BulletRecord> records = querier.getRecords();
Assert.assertEquals(records.size(), 1);
BulletRecord actual = records.get(0);
Long end = System.currentTimeMillis();
Assert.assertEquals(size(actual), 2);
Assert.assertEquals(actual.get("bid"), "foo");
Long recordedTimestamp = (Long) actual.get(BulletConfig.DEFAULT_RECORD_INJECT_TIMESTAMP_KEY);
Assert.assertTrue(recordedTimestamp >= start);
Assert.assertTrue(recordedTimestamp <= end);
}
use of com.yahoo.bullet.record.BulletRecord in project bullet-core by yahoo.
the class QuerierTest method testAdditiveWindowsDoNotResetInAllMode.
@Test
public void testAdditiveWindowsDoNotResetInAllMode() {
BulletConfig config = new BulletConfig();
RunningQuery runningQuery = makeCountQueryWithAllWindow(config, 2000);
Querier querier = new Querier(Querier.Mode.ALL, runningQuery, config);
querier.initialize();
Assert.assertFalse(querier.isClosed());
Assert.assertTrue(querier.shouldBuffer());
Assert.assertEquals(querier.getWindow().getClass(), AdditiveTumbling.class);
IntStream.range(0, 10).forEach(i -> querier.consume(RecordBox.get().getRecord()));
Assert.assertFalse(querier.isClosed());
List<BulletRecord> result = querier.getResult().getRecords();
Assert.assertEquals(result.size(), 1);
BulletRecord record = result.get(0);
Assert.assertEquals(record.get(GroupOperation.GroupOperationType.COUNT.getName()), 10L);
IntStream.range(0, 10).forEach(i -> querier.consume(RecordBox.get().getRecord()));
result = querier.getResult().getRecords();
Assert.assertEquals(result.size(), 1);
record = result.get(0);
Assert.assertEquals(record.get(GroupOperation.GroupOperationType.COUNT.getName()), 20L);
// This will not reset
querier.reset();
IntStream.range(0, 5).forEach(i -> querier.consume(RecordBox.get().getRecord()));
result = querier.getResult().getRecords();
Assert.assertEquals(result.size(), 1);
record = result.get(0);
Assert.assertEquals(record.get(GroupOperation.GroupOperationType.COUNT.getName()), 25L);
}
use of com.yahoo.bullet.record.BulletRecord in project bullet-core by yahoo.
the class ClipTest method testInvalidDoubles.
@Test
public void testInvalidDoubles() {
BulletRecord record = new RecordBox().addNull("field").add("plus_inf", Double.POSITIVE_INFINITY).add("neg_inf", Double.NEGATIVE_INFINITY).add("not_a_number", Double.NaN).getRecord();
Meta meta = new Meta().add("foo", Double.POSITIVE_INFINITY).add("bar", Double.NaN).add("baz", Double.NEGATIVE_INFINITY);
assertJSONEquals(Clip.of(record).add(meta).asJSON(), makeJSON("{'foo': 'Infinity', 'baz': '-Infinity', 'bar': 'NaN'}", "[{'field': null, 'plus_inf': 'Infinity', 'neg_inf': '-Infinity', 'not_a_number': 'NaN'}]"));
}
Aggregations