public void Test_S1ChordAngle_ArithmeticPrecision() { // Verifies that S1ChordAngle is capable of adding and subtracting angles // extremely accurately up to Pi/2 radians. (Accuracy continues to be good // well beyond this value but degrades as angles approach Pi.) S1ChordAngle kEps = S1ChordAngle.FromRadians(1e-15); S1ChordAngle k90 = S1ChordAngle.Right; S1ChordAngle k90MinusEps = k90 - kEps; S1ChordAngle k90PlusEps = k90 + kEps; double kMaxError = 2 * S2.DoubleEpsilon; Assert2.Near(k90MinusEps.Radians(), S2.M_PI_2 - kEps.Radians(), kMaxError); Assert2.Near(k90PlusEps.Radians(), S2.M_PI_2 + kEps.Radians(), kMaxError); Assert2.Near((k90 - k90MinusEps).Radians(), kEps.Radians(), kMaxError); Assert2.Near((k90PlusEps - k90).Radians(), kEps.Radians(), kMaxError); Assert2.Near((k90MinusEps + kEps).Radians(), S2.M_PI_2, kMaxError); }