use of org.bboxdb.commons.math.BoundingBox in project bboxdb by jnidzwetzki.
the class TestQueryProcessing method testBBoxQuery2.
/**
* Simple BBox query - across multiple tables
* @throws StorageManagerException
* @throws RejectedException
* @throws IOException
*/
@Test(timeout = 60000)
public void testBBoxQuery2() throws StorageManagerException, RejectedException, IOException {
final TupleStoreManager storageManager = storageRegistry.getTupleStoreManager(TABLE_1);
final Tuple tuple1 = new Tuple("1", new BoundingBox(1.0, 2.0, 1.0, 2.0), "value".getBytes());
final Tuple tuple2 = new Tuple("2", new BoundingBox(1.5, 2.5, 1.5, 2.5), "value2".getBytes());
final Tuple tuple3 = new Tuple("1", new BoundingBox(1.0, 2.0, 1.0, 2.0), "value1".getBytes());
storageManager.put(tuple1);
storageManager.initNewMemtable();
storageManager.put(tuple2);
storageManager.initNewMemtable();
storageManager.put(tuple3);
storageManager.initNewMemtable();
final BoundingBox queryBoundingBox = new BoundingBox(0.0, 5.0, 0.0, 5.0);
final Operator spatialIndexReadOperator = new FullTablescanOperator(storageManager);
final Operator queryPlan = new BoundingBoxSelectOperator(queryBoundingBox, spatialIndexReadOperator);
final Iterator<JoinedTuple> iterator = queryPlan.iterator();
final List<JoinedTuple> resultList = Lists.newArrayList(iterator);
final List<Tuple> resultTupleList = resultList.stream().map(t -> t.convertToSingleTupleIfPossible()).collect(Collectors.toList());
queryPlan.close();
Assert.assertEquals(2, resultList.size());
Assert.assertFalse(resultTupleList.contains(tuple1));
Assert.assertTrue(resultTupleList.contains(tuple2));
Assert.assertTrue(resultTupleList.contains(tuple3));
}
use of org.bboxdb.commons.math.BoundingBox in project bboxdb by jnidzwetzki.
the class TestQueryProcessing method testJoinWithChangedTuple1.
/**
* Simple Join
* @throws StorageManagerException
* @throws RejectedException
*/
@Test(timeout = 60000)
public void testJoinWithChangedTuple1() throws StorageManagerException, RejectedException {
final TupleStoreManager storageManager1 = storageRegistry.getTupleStoreManager(TABLE_1);
final TupleStoreManager storageManager2 = storageRegistry.getTupleStoreManager(TABLE_2);
final Tuple tuple1 = new Tuple("1a", new BoundingBox(1.0, 2.0, 1.0, 2.0), "value1".getBytes());
final Tuple tuple2 = new Tuple("2a", new BoundingBox(4.0, 5.0, 4.0, 5.0), "value2".getBytes());
// Tuple 3 and tuple 4 have the same key
final Tuple tuple3 = new Tuple("1b", new BoundingBox(1.5, 2.5, 1.5, 2.5), "value3".getBytes());
final Tuple tuple4 = new Tuple("1b", new BoundingBox(2.5, 5.5, 2.5, 5.5), "value4".getBytes());
// Table1
storageManager1.put(tuple1);
storageManager1.put(tuple2);
// Table2
storageManager2.put(tuple3);
storageManager2.put(tuple4);
final SpatialIndexReadOperator operator1 = new SpatialIndexReadOperator(storageManager1, BoundingBox.FULL_SPACE);
final SpatialIndexReadOperator operator2 = new SpatialIndexReadOperator(storageManager2, BoundingBox.FULL_SPACE);
final IndexedSpatialJoinOperator joinQueryProcessor1 = new IndexedSpatialJoinOperator(operator1, operator2);
final Iterator<JoinedTuple> iterator = joinQueryProcessor1.iterator();
final List<JoinedTuple> resultList = Lists.newArrayList(iterator);
joinQueryProcessor1.close();
Assert.assertEquals(1, resultList.size());
Assert.assertEquals(2, resultList.get(0).getNumberOfTuples());
Assert.assertEquals(2, resultList.get(0).getBoundingBox().getDimension());
Assert.assertEquals(new BoundingBox(4.0d, 5.0d, 4.0d, 5.0d), resultList.get(0).getBoundingBox());
}
use of org.bboxdb.commons.math.BoundingBox in project bboxdb by jnidzwetzki.
the class TestSSTableMetadataBuilder method testSSTableIndexBuilder2.
/**
* Build index with one tuple
*/
@Test(timeout = 60000)
public void testSSTableIndexBuilder2() {
final SSTableMetadataBuilder ssTableIndexBuilder = new SSTableMetadataBuilder();
final BoundingBox boundingBox1 = new BoundingBox(1d, 2d);
final Tuple tuple1 = new Tuple("abc", boundingBox1, "".getBytes());
ssTableIndexBuilder.addTuple(tuple1);
final TupleStoreMetaData metadata = ssTableIndexBuilder.getMetaData();
Assert.assertArrayEquals(boundingBox1.toDoubleArray(), metadata.getBoundingBoxData(), 0.001d);
Assert.assertEquals(metadata.getOldestTupleVersionTimestamp(), metadata.getNewestTupleVersionTimestamp());
Assert.assertEquals(1, metadata.getTuples());
Assert.assertEquals(tuple1.getReceivedTimestamp(), metadata.getNewestTupleInsertedTimstamp());
}
use of org.bboxdb.commons.math.BoundingBox in project bboxdb by jnidzwetzki.
the class TestSSTableMetadataBuilder method testSSTableIndexBuilder3.
/**
* Build index with two tuples
*/
@Test(timeout = 60000)
public void testSSTableIndexBuilder3() {
final SSTableMetadataBuilder ssTableIndexBuilder = new SSTableMetadataBuilder();
final BoundingBox boundingBox1 = new BoundingBox(1d, 2d);
final Tuple tuple1 = new Tuple("abc", boundingBox1, "".getBytes());
final Tuple tuple2 = new Tuple("def", boundingBox1, "".getBytes());
ssTableIndexBuilder.addTuple(tuple1);
ssTableIndexBuilder.addTuple(tuple2);
final TupleStoreMetaData metadata = ssTableIndexBuilder.getMetaData();
Assert.assertArrayEquals(boundingBox1.toDoubleArray(), metadata.getBoundingBoxData(), 0.001d);
Assert.assertEquals(2, metadata.getTuples());
}
use of org.bboxdb.commons.math.BoundingBox in project bboxdb by jnidzwetzki.
the class TestRegionIdMapper method testMappingDisappears3.
/**
* Wait until mapping disappears
* @throws InterruptedException
* @throws TimeoutException
*/
@Test(timeout = 10000)
public void testMappingDisappears3() throws TimeoutException, InterruptedException {
final DistributionRegionIdMapper regionIdMapper = new DistributionRegionIdMapper(DISTRIBUTION_REGION_NAME);
regionIdMapper.addMapping(3, new BoundingBox(15d, 18d, 15d, 18d));
final Runnable runable = new Runnable() {
@Override
public void run() {
try {
Thread.sleep(2000);
regionIdMapper.removeMapping(3);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
final Thread thread = new Thread(runable);
thread.start();
regionIdMapper.waitUntilMappingDisappears(3, 5, TimeUnit.SECONDS);
}
Aggregations