Description
When the PlaneAngle.normalize() method is called to normalize between 0 and 1 turns and is passed a very small number compared to the 1, then the method returns a number exactly equal to the angle upper bound. This breaks the API contract since the return value must be strictly less than the upper bound. Ex:
PlaneAngle angle = PlaneAngle.ofTurns(-1e-18); double normalized = angle.normalize(PlaneAngle.PI).toTurns(); // normalized is equal to 1 but it should be 0 since 1 - 1e-18 = 1, which is equivalent to 0 in turns
Pull request: https://github.com/apache/commons-numbers/pull/30
Attachments
Issue Links
- links to