package mil.nga.giat.geowave.core.index.sfc.data; 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 org.junit.Assert; import org.junit.Test; public class BasicNumericDatasetTest { private double DELTA = 1e-15; private BasicNumericDataset basicNumericDatasetRanges = new BasicNumericDataset( new NumericData[] { new NumericRange( 10, 50), new NumericRange( 25, 95), new NumericRange( -50, 50) }); private BasicNumericDataset basicNumericDatasetValues = new BasicNumericDataset( new NumericData[] { new NumericValue( 25), new NumericValue( 60), new NumericValue( 0) }); @Test public void testNumericRangesMinValues() { int expectedCount = 3; double[] expectedMinValues = new double[] { 10, 25, -50 }; double[] mins = basicNumericDatasetRanges.getMinValuesPerDimension(); Assert.assertEquals( expectedCount, basicNumericDatasetRanges.getDimensionCount()); for (int i = 0; i < basicNumericDatasetRanges.getDimensionCount(); i++) { Assert.assertEquals( expectedMinValues[i], mins[i], DELTA); } } @Test public void testNumericRangesMaxValues() { int expectedCount = 3; double[] expectedMaxValues = new double[] { 50, 95, 50 }; double[] max = basicNumericDatasetRanges.getMaxValuesPerDimension(); Assert.assertEquals( expectedCount, basicNumericDatasetRanges.getDimensionCount()); for (int i = 0; i < basicNumericDatasetRanges.getDimensionCount(); i++) { Assert.assertEquals( expectedMaxValues[i], max[i], DELTA); } } @Test public void testNumericRangesCentroidValues() { int expectedCount = 3; double[] expectedCentroidValues = new double[] { 30, 60, 0 }; double[] centroid = basicNumericDatasetRanges.getCentroidPerDimension(); Assert.assertEquals( expectedCount, basicNumericDatasetRanges.getDimensionCount()); for (int i = 0; i < basicNumericDatasetRanges.getDimensionCount(); i++) { Assert.assertEquals( expectedCentroidValues[i], centroid[i], DELTA); } } @Test public void testNumericValuesAllValues() { int expectedCount = 3; double[] expectedValues = new double[] { 25, 60, 0 }; double[] mins = basicNumericDatasetValues.getMinValuesPerDimension(); double[] max = basicNumericDatasetValues.getMaxValuesPerDimension(); double[] centroid = basicNumericDatasetValues.getCentroidPerDimension(); Assert.assertEquals( expectedCount, basicNumericDatasetValues.getDimensionCount()); for (int i = 0; i < basicNumericDatasetValues.getDimensionCount(); i++) { Assert.assertEquals( expectedValues[i], mins[i], DELTA); Assert.assertEquals( expectedValues[i], max[i], DELTA); Assert.assertEquals( expectedValues[i], centroid[i], DELTA); } } }