### Question:
AngleCalc { double calcAzimuth( double lat1, double lon1, double lat2, double lon2 ) { double orientation = -calcOrientation(lat1, lon1, lat2, lon2); orientation = Helper.round4(orientation + Math.PI / 2); if (orientation < 0) orientation += 2 * Math.PI; return Math.toDegrees(orientation); }  double calcOrientation( double lat1, double lon1, double lat2, double lon2 ); double convertAzimuth2xaxisAngle(double azimuth); double alignOrientation( double baseOrientation, double orientation );  }### Answer:
@Test public void testCalcAzimuth() { assertEquals(45.0, ac.calcAzimuth(0, 0, 1, 1), 0.001); assertEquals(90.0, ac.calcAzimuth(0, 0, 0, 1), 0.001); assertEquals(180.0, ac.calcAzimuth(0, 0, -1, 0), 0.001); assertEquals(270.0, ac.calcAzimuth(0, 0, 0, -1), 0.001); assertEquals(0.0, ac.calcAzimuth(49.942, 11.580, 49.944, 11.580), 0.001); }