@@ -653,8 +653,8 @@ public void testTrivialAzimuthB()
653
653
double azimuthRadians = Math .toRadians (90.0 );
654
654
double distanceRadians = Math .toRadians (360.0 );
655
655
LatLon end = LatLon .rhumbEndPosition (begin , azimuthRadians , distanceRadians );
656
- assertEquals ("Trivial Azimuth B (lat)" , 2.204291436880279e-14 , end .getLatitude ().degrees , THRESHOLD );
657
- assertEquals ("Trivial Azimuth B (lon)" , - 96.67061650574995 , end .getLongitude ().degrees ,
656
+ assertEquals ("Trivial Azimuth B (lat)" , 0.0 , end .getLatitude ().degrees , THRESHOLD );
657
+ assertEquals ("Trivial Azimuth B (lon)" , 0.0 , end .getLongitude ().degrees ,
658
658
1e-1 ); // Custom threshold
659
659
}
660
660
@@ -681,6 +681,24 @@ public void testKnownPointsB()
681
681
assertEquals ("Known points B (lat)" , 56.9679782407693 , end .getLatitude ().degrees , THRESHOLD );
682
682
assertEquals ("Known points B (lon)" , 95.78434282105843 , end .getLongitude ().degrees , THRESHOLD );
683
683
}
684
+
685
+ //////////////////////////////////////////////////////////
686
+ // Test problem points.
687
+ //////////////////////////////////////////////////////////
688
+
689
+ public void testProblemPointsA ()
690
+ {
691
+ // This specific lat/lon and distance identified a floating point error
692
+ Angle initialLat = Angle .fromDegrees (4.076552742498428 );
693
+ Angle initialLon = Angle .fromDegrees (-21.377644877408443 );
694
+ Angle azimuth = Angle .fromDegrees (90.0 );
695
+ Angle distance = Angle .fromDegrees (8.963656110719409 );
696
+ LatLon begin = LatLon .fromRadians (initialLat .getRadians (), initialLon .getRadians ());
697
+ LatLon end = LatLon .rhumbEndPosition (begin , azimuth , distance );
698
+ assertEquals ("Problem points A (lat)" , initialLat .getDegrees (), end .getLatitude ().getDegrees (), THRESHOLD );
699
+ assertEquals ("Problem points A (lon)" , -12.391252821313167 , end .getLongitude ().getDegrees (), THRESHOLD );
700
+ }
701
+
684
702
}
685
703
686
704
public static class EllipsoidalDistanceTests extends TestCase
0 commit comments