### Question:
CGIARProvider implements ElevationProvider { protected String getFileName(double lat, double lon) { lon = 1 + (180 + lon) / degree; int lonInt = (int) lon; lat = 1 + (60 - lat) / degree; int latInt = (int) lat; if (Math.abs(latInt - lat) < invPrecision / degree) latInt--; String str = "srtm_"; str += lonInt < 10 ? "0" : ""; str += lonInt; str += latInt < 10 ? "_0" : "_"; str += latInt; return str; }  static void main(String[] args); @Override void setCalcMean(boolean eleCalcMean); void setAutoRemoveTemporaryFiles(boolean autoRemoveTemporary); void setDownloader(Downloader downloader); @Override ElevationProvider setCacheDir(File cacheDir); @Override ElevationProvider setBaseURL(String baseUrl); @Override ElevationProvider setDAType(DAType daType); @Override double getEle(double lat, double lon); @Override void release(); @Override String toString();  }### Answer:
@Test public void testFileName() { assertEquals("srtm_36_02", instance.getFileName(52, -0.1)); assertEquals("srtm_35_02", instance.getFileName(50, -10)); assertEquals("srtm_36_23", instance.getFileName(-52, -0.1)); assertEquals("srtm_35_22", instance.getFileName(-50, -10)); assertEquals("srtm_39_03", instance.getFileName(49.9, 11.5)); assertEquals("srtm_34_08", instance.getFileName(20, -11)); assertEquals("srtm_34_08", instance.getFileName(20, -14)); assertEquals("srtm_34_08", instance.getFileName(20, -15)); assertEquals("srtm_37_02", instance.getFileName(52.1943832, 0.1363176)); }