### Question:
AbstractGeoCoordinate implements GeoCoordinate { @Override public double[] getBoundingBox(double distance) { Validate.isTrue(distance >= 0, "distance must be equal/greater zero"); double lat1 = getLatitude() - distance / 111.2; double lat2 = getLatitude() + distance / 111.2; double lng1 = getLongitude() - distance / Math.abs(Math.cos(Math.toRadians(getLatitude())) * 111.2); double lng2 = getLongitude() + distance / Math.abs(Math.cos(Math.toRadians(getLatitude())) * 111.2); return new double[] {lat1, lng1, lat2, lng2}; }  @Override double distance(GeoCoordinate other); @Override String toDmsString(); @Override double[] getBoundingBox(double distance); @Override GeoCoordinate getCoordinate(double distance, double bearing); @Override String toString(); @Override int hashCode(); @Override boolean equals(Object obj);  }### Answer:
@Test public void testBoundingBox() { double[] boundingBox = new ImmutableGeoCoordinate(52.52437, 13.41053).getBoundingBox(10); assertEquals(4, boundingBox.length); assertEquals(52.4343, boundingBox[0], 0.001); assertEquals(13.2625, boundingBox[1], 0.001); assertEquals(52.6144, boundingBox[2], 0.001); assertEquals(13.5585, boundingBox[3], 0.001); }