### Question:
CGIARProvider extends AbstractTiffElevationProvider { int down(double val) { int intVal = (int) (val / LAT_DEGREE) * LAT_DEGREE; if (!(val >= 0 || intVal - val < invPrecision)) intVal = intVal - LAT_DEGREE; return intVal; } CGIARProvider();  CGIARProvider(String cacheDir); static void main(String[] args); @Override String toString();  }### Answer:
@Test public void testDown() { assertEquals(50, instance.down(52.5)); assertEquals(0, instance.down(0.1)); assertEquals(0, instance.down(0.01)); assertEquals(-5, instance.down(-0.01)); assertEquals(-5, instance.down(-2)); assertEquals(-10, instance.down(-5.1)); assertEquals(50, instance.down(50)); assertEquals(45, instance.down(49)); }