ZonalStatisticsCalculator { public static ZonalStatisticsCalculatorBuilder builder(){ return new ZonalStatisticsCalculatorBuilder(); } private  ZonalStatisticsCalculator(ZonalStatisticsCalculatorBuilder builder); static ZonalStatisticsCalculatorBuilder builder(); List<ZonalStatistics> getZonalStatistics(); static Map<String, Integer[]> createZoneMasks(Path pathToZoneDataset, String field, VortexGrid grid);  }
@Test void CreateGridCellsCreatesGridCells(){ double x = -180; double y = 90; double dx = 0.5; double dy = -0.5; int nx = 3; int ny = 3; List<GridCell> gridCells = Grid.builder() .originX(x) .originY(y) .dx(dx) .dy(dy) .nx(nx) .ny(ny) .build() .getGridCells(); Point2D point = new Point2D.Double(-179.75, 89.75); GridCell gridCell = gridCells.get(0); boolean isContained = gridCell.contains(point); assertTrue(isContained); assertEquals(9, gridCells.size()); }