package mil.nga.giat.geowave.core.store.filter;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.List;
import mil.nga.giat.geowave.core.index.sfc.data.BasicNumericDataset;
import mil.nga.giat.geowave.core.index.sfc.data.NumericData;
import mil.nga.giat.geowave.core.index.sfc.data.NumericRange;
import mil.nga.giat.geowave.core.index.sfc.data.NumericValue;
import mil.nga.giat.geowave.core.store.dimension.NumericDimensionField;
import mil.nga.giat.geowave.core.store.filter.BasicQueryFilter.BasicQueryCompareOperation;
import mil.nga.giat.geowave.core.store.query.BasicQueryTest;
import org.junit.Test;
public class DistributedQueryFilterTest
{
@Test
public void test() {
List<DistributableQueryFilter> filters = new ArrayList<DistributableQueryFilter>();
filters.add(new BasicQueryFilter(
new BasicNumericDataset(
new NumericData[] {
new NumericValue(
0.4)
}),
new NumericDimensionField[] {
new BasicQueryTest.ExampleDimensionOne()
},
BasicQueryCompareOperation.CONTAINS));
filters.add(new DedupeFilter());
DistributableFilterList list = new DistributableFilterList(
false,
filters);
list.fromBinary(list.toBinary());
assertFalse(list.logicalAnd);
assertEquals(
((BasicQueryFilter) list.filters.get(0)).compareOp,
BasicQueryCompareOperation.CONTAINS);
assertEquals(
((BasicQueryFilter) list.filters.get(0)).constraints,
new BasicNumericDataset(
new NumericData[] {
new NumericRange(
0.4,
0.4)
}));
filters = new ArrayList<DistributableQueryFilter>();
filters.add(new BasicQueryFilter(
new BasicNumericDataset(
new NumericData[] {
new NumericValue(
0.5)
}),
new NumericDimensionField[] {
new BasicQueryTest.ExampleDimensionOne()
},
BasicQueryCompareOperation.INTERSECTS));
filters.add(new DedupeFilter());
list = new DistributableFilterList(
true,
filters);
list.fromBinary(list.toBinary());
assertTrue(list.logicalAnd);
assertEquals(
((BasicQueryFilter) list.filters.get(0)).compareOp,
BasicQueryCompareOperation.INTERSECTS);
assertEquals(
((BasicQueryFilter) list.filters.get(0)).constraints,
new BasicNumericDataset(
new NumericData[] {
new NumericRange(
0.5,
0.5)
}));
}
}