### Question:
UtmConverter { public static GeoCoordinate toLatLon(double easting, double northing, int zone, boolean southHemi) { easting -= 500000.0; easting /= UTMScaleFactor; if (southHemi) { northing -= 10000000.0; } northing /= UTMScaleFactor; double cmeridian = utmCentralMeridian(zone); double[] latLng = mapXYToLatLon(easting, northing, cmeridian); double lat = toDegrees(latLng[0]); double lng = toDegrees(latLng[1]); return new ImmutableGeoCoordinate(lat, lng); } private  UtmConverter(); static UtmCoordinate toUtm(GeoCoordinate coordinate); static GeoCoordinate toLatLon(double easting, double northing, int zone, boolean southHemi); static int utmZone(GeoCoordinate coordinate); static char utmBand(double lat); static GeoCoordinate gridZoneToLatLon(String gridZone);  }### Answer:
@Test public void testToLatLon() { GeoCoordinate result = UtmConverter.toLatLon(411566, 5656059, 33, false); assertEquals(51.049259, result.getLatitude(), 0.0001); assertEquals(13.73836, result.getLongitude(), 0.0001); }