@Test public void testFindClosestInArray() throws Exception { double[] values = {-175, -50, 50, 175}; assertEquals(0, RegularGaussianGrid.findClosestInArray(values, -178)); assertEquals(1, RegularGaussianGrid.findClosestInArray(values, -60)); assertEquals(2, RegularGaussianGrid.findClosestInArray(values, 30)); assertEquals(3, RegularGaussianGrid.findClosestInArray(values, 160)); assertEquals(3, RegularGaussianGrid.findClosestInArray(values, 179)); }
@Test public void testRegularGird() throws Exception { RegularGaussianGrid gaussianGrid = new RegularGaussianGrid(64); assertEquals(64, gaussianGrid.getNumRows()); assertEquals(128, gaussianGrid.getNumCols(0)); assertEquals(128, gaussianGrid.getNumCols(32)); assertEquals(128, gaussianGrid.getNumCols(63)); assertEquals(2, gaussianGrid.getRowIndex(270)); assertEquals(64 * 128, gaussianGrid.getNumBins()); assertEquals(0, gaussianGrid.getFirstBinIndex(0)); assertEquals(10 * 128, gaussianGrid.getFirstBinIndex(10)); assertEquals(50 * 128, gaussianGrid.getFirstBinIndex(50)); assertEquals(-51.62573, gaussianGrid.getCenterLat(50), 1.0e-6); assertEquals(-87.86379, gaussianGrid.getCenterLat(63), 1.0e-6); // binIndex=300 -> row=2,col=44 assertEquals(82.31291, gaussianGrid.getCenterLatLon(300)[0], 1.0e-6); assertEquals(-54.84375, gaussianGrid.getCenterLatLon(300)[1], 1.0e-6); // lat=45.0,lon=90.0 -> row=15,col=96 -> 2016 assertEquals(2016, gaussianGrid.getBinIndex(45.0, 90.0)); }