Skip to content

Commit

Permalink
Adjusting allowedVariance for Atan2Pi tests to account for WASM/Unix
Browse files Browse the repository at this point in the history
  • Loading branch information
tannergooding committed Jun 23, 2022
1 parent 03f8ada commit 0dff8a8
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1654,8 +1654,8 @@ public static void AsinPiTest32(float value, float expectedResult, float allowed

[ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.Is32BitProcess))]
[InlineData( float.NaN, float.NaN, float.NaN, 0.0f)]
[InlineData( 0.0f, -1.0f, 1.0f, 0.0f)] // y: sinpi(0) x: cospi(1)
[InlineData( 0.0f, -0.0f, 1.0f, 0.0f)] // y: sinpi(0) x: -cospi(0.5)
[InlineData( 0.0f, -1.0f, 1.0f, CrossPlatformMachineEpsilon32)] // y: sinpi(0) x: cospi(1) ; This should be exact, but has an issue on WASM/Unix
[InlineData( 0.0f, -0.0f, 1.0f, CrossPlatformMachineEpsilon32)] // y: sinpi(0) x: -cospi(0.5) ; This should be exact, but has an issue on WASM/Unix
[InlineData( 0.0f, 0.0f, 0.0f, 0.0f)] // y: sinpi(0) x: cospi(0.5)
[InlineData( 0.0f, 1.0f, 0.0f, 0.0f)] // y: sinpi(0) x: cospi(0)
[InlineData( 0.841470985f, 0.540302306f, 0.318309886f, CrossPlatformMachineEpsilon32)] // y: sinpi(1 / pi) x: cospi(1 / pi)
Expand All @@ -1673,12 +1673,12 @@ public static void AsinPiTest32(float value, float expectedResult, float allowed
[InlineData( 0.813763848f, 0.581195664f, 0.302585093f, CrossPlatformMachineEpsilon32)] // y: sinpi(ln(10)) x: cospi(ln(10))
[InlineData( 0.773942685f, -0.633255651f, 0.718281828f, CrossPlatformMachineEpsilon32)] // y: sinpi(e) x: cospi(e)
[InlineData(-0.430301217f, -0.902685362f, -0.858407346f, CrossPlatformMachineEpsilon32)] // y: sinpi(pi) x: cospi(pi)
[InlineData( 1.0f, float.NegativeInfinity, 1.0f, 0.0f)] // y: sinpi(0.5)
[InlineData( 1.0f, float.NegativeInfinity, 1.0f, CrossPlatformMachineEpsilon32)] // y: sinpi(0.5) ; This should be exact, but has an issue on WASM/Unix
[InlineData( 1.0f, float.PositiveInfinity, 0.0f, 0.0f)] // y: sinpi(0.5)
[InlineData( float.PositiveInfinity, -1.0f, 0.5f, 0.0f)] // x: cospi(1)
[InlineData( float.PositiveInfinity, 1.0f, 0.5f, 0.0f)] // x: cospi(0)
[InlineData( float.PositiveInfinity, float.NegativeInfinity, 0.75f, 0.0f)]
[InlineData( float.PositiveInfinity, float.PositiveInfinity, 0.25f, 0.0f)]
[InlineData( float.PositiveInfinity, -1.0f, 0.5f, CrossPlatformMachineEpsilon32)] // x: cospi(1) ; This should be exact, but has an issue on WASM/Unix
[InlineData( float.PositiveInfinity, 1.0f, 0.5f, CrossPlatformMachineEpsilon32)] // x: cospi(0) ; This should be exact, but has an issue on WASM/Unix
[InlineData( float.PositiveInfinity, float.NegativeInfinity, 0.75f, CrossPlatformMachineEpsilon32)] // ; This should be exact, but has an issue on WASM/Unix
[InlineData( float.PositiveInfinity, float.PositiveInfinity, 0.25f, CrossPlatformMachineEpsilon32)] // ; This should be exact, but has an issue on WASM/Unix
public static void Atan2PiTest32(float y, float x, float expectedResult, float allowedVariance)
{
AssertExtensions.Equal(-expectedResult, (float)NFloat.Atan2Pi(-y, +x), allowedVariance);
Expand Down Expand Up @@ -2330,8 +2330,8 @@ public static void AsinPiTest64(double value, double expectedResult, double allo

[ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.Is64BitProcess))]
[InlineData( double.NaN, double.NaN, double.NaN, 0.0)]
[InlineData( 0.0, -1.0, 1.0, 0.0)] // y: sinpi(0) x: cospi(1)
[InlineData( 0.0, -0.0, 1.0, 0.0)] // y: sinpi(0) x: -cospi(0.5)
[InlineData( 0.0, -1.0, 1.0, CrossPlatformMachineEpsilon64)] // y: sinpi(0) x: cospi(1) ; This should be exact, but has an issue on WASM/Unix
[InlineData( 0.0, -0.0, 1.0, CrossPlatformMachineEpsilon64)] // y: sinpi(0) x: -cospi(0.5) ; This should be exact, but has an issue on WASM/Unix
[InlineData( 0.0, 0.0, 0.0, 0.0)] // y: sinpi(0) x: cospi(0.5)
[InlineData( 0.0, 1.0, 0.0, 0.0)] // y: sinpi(0) x: cospi(0)
[InlineData( 0.84147098480789651, 0.54030230586813972, 0.31830988618379067, CrossPlatformMachineEpsilon64)] // y: sinpi(1 / pi) x: cospi(1 / pi)
Expand All @@ -2349,12 +2349,12 @@ public static void AsinPiTest64(double value, double expectedResult, double allo
[InlineData( 0.81376384817462330, 0.58119566361426737, 0.30258509299404568, CrossPlatformMachineEpsilon64)] // y: sinpi(ln(10)) x: cospi(ln(10))
[InlineData( 0.77394268526670828, -0.63325565131482003, 0.71828182845904524, CrossPlatformMachineEpsilon64)] // y: sinpi(e) x: cospi(e)
[InlineData(-0.43030121700009227, -0.90268536193307107, -0.85840734641020676, CrossPlatformMachineEpsilon64)] // y: sinpi(pi) x: cospi(pi)
[InlineData( 1.0, double.NegativeInfinity, 1.0, 0.0)] // y: sinpi(0.5)
[InlineData( 1.0, double.NegativeInfinity, 1.0, CrossPlatformMachineEpsilon64)] // y: sinpi(0.5) ; This should be exact, but has an issue on WASM/Unix
[InlineData( 1.0, double.PositiveInfinity, 0.0, 0.0)] // y: sinpi(0.5)
[InlineData( double.PositiveInfinity, -1.0, 0.5, 0.0)] // x: cospi(1)
[InlineData( double.PositiveInfinity, 1.0, 0.5, 0.0)] // x: cospi(0)
[InlineData( double.PositiveInfinity, double.NegativeInfinity, 0.75, 0.0)]
[InlineData( double.PositiveInfinity, double.PositiveInfinity, 0.25, 0.0)]
[InlineData( double.PositiveInfinity, -1.0, 0.5, CrossPlatformMachineEpsilon64)] // x: cospi(1) ; This should be exact, but has an issue on WASM/Unix
[InlineData( double.PositiveInfinity, 1.0, 0.5, CrossPlatformMachineEpsilon64)] // x: cospi(0) ; This should be exact, but has an issue on WASM/Unix
[InlineData( double.PositiveInfinity, double.NegativeInfinity, 0.75, CrossPlatformMachineEpsilon64)] // ; This should be exact, but has an issue on WASM/Unix
[InlineData( double.PositiveInfinity, double.PositiveInfinity, 0.25, CrossPlatformMachineEpsilon64)] // ; This should be exact, but has an issue on WASM/Unix
public static void Atan2PiTest(double y, double x, double expectedResult, double allowedVariance)
{
AssertExtensions.Equal(-expectedResult, NFloat.Atan2Pi((NFloat)(-y), (NFloat)(+x)), allowedVariance);
Expand Down
14 changes: 7 additions & 7 deletions src/libraries/System.Runtime/tests/System/DoubleTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1455,8 +1455,8 @@ public static void AsinPiTest(double value, double expectedResult, double allowe

[Theory]
[InlineData( double.NaN, double.NaN, double.NaN, 0.0)]
[InlineData( 0.0, -1.0, 1.0, 0.0)] // y: sinpi(0) x: cospi(1)
[InlineData( 0.0, -0.0, 1.0, 0.0)] // y: sinpi(0) x: -cospi(0.5)
[InlineData( 0.0, -1.0, 1.0, CrossPlatformMachineEpsilon)] // y: sinpi(0) x: cospi(1) ; This should be exact, but has an issue on WASM/Unix
[InlineData( 0.0, -0.0, 1.0, CrossPlatformMachineEpsilon)] // y: sinpi(0) x: -cospi(0.5) ; This should be exact, but has an issue on WASM/Unix
[InlineData( 0.0, 0.0, 0.0, 0.0)] // y: sinpi(0) x: cospi(0.5)
[InlineData( 0.0, 1.0, 0.0, 0.0)] // y: sinpi(0) x: cospi(0)
[InlineData( 0.84147098480789651, 0.54030230586813972, 0.31830988618379067, CrossPlatformMachineEpsilon)] // y: sinpi(1 / pi) x: cospi(1 / pi)
Expand All @@ -1474,12 +1474,12 @@ public static void AsinPiTest(double value, double expectedResult, double allowe
[InlineData( 0.81376384817462330, 0.58119566361426737, 0.30258509299404568, CrossPlatformMachineEpsilon)] // y: sinpi(ln(10)) x: cospi(ln(10))
[InlineData( 0.77394268526670828, -0.63325565131482003, 0.71828182845904524, CrossPlatformMachineEpsilon)] // y: sinpi(e) x: cospi(e)
[InlineData(-0.43030121700009227, -0.90268536193307107, -0.85840734641020676, CrossPlatformMachineEpsilon)] // y: sinpi(pi) x: cospi(pi)
[InlineData( 1.0, double.NegativeInfinity, 1.0, 0.0)] // y: sinpi(0.5)
[InlineData( 1.0, double.NegativeInfinity, 1.0, CrossPlatformMachineEpsilon)] // y: sinpi(0.5) ; This should be exact, but has an issue on WASM/Unix
[InlineData( 1.0, double.PositiveInfinity, 0.0, 0.0)] // y: sinpi(0.5)
[InlineData( double.PositiveInfinity, -1.0, 0.5, 0.0)] // x: cospi(1)
[InlineData( double.PositiveInfinity, 1.0, 0.5, 0.0)] // x: cospi(0)
[InlineData( double.PositiveInfinity, double.NegativeInfinity, 0.75, 0.0)]
[InlineData( double.PositiveInfinity, double.PositiveInfinity, 0.25, 0.0)]
[InlineData( double.PositiveInfinity, -1.0, 0.5, CrossPlatformMachineEpsilon)] // x: cospi(1) ; This should be exact, but has an issue on WASM/Unix
[InlineData( double.PositiveInfinity, 1.0, 0.5, CrossPlatformMachineEpsilon)] // x: cospi(0) ; This should be exact, but has an issue on WASM/Unix
[InlineData( double.PositiveInfinity, double.NegativeInfinity, 0.75, CrossPlatformMachineEpsilon)] // ; This should be exact, but has an issue on WASM/Unix
[InlineData( double.PositiveInfinity, double.PositiveInfinity, 0.25, CrossPlatformMachineEpsilon)] // ; This should be exact, but has an issue on WASM/Unix
public static void Atan2PiTest(double y, double x, double expectedResult, double allowedVariance)
{
AssertExtensions.Equal(-expectedResult, double.Atan2Pi(-y, +x), allowedVariance);
Expand Down
4 changes: 2 additions & 2 deletions src/libraries/System.Runtime/tests/System/HalfTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1825,8 +1825,8 @@ public static IEnumerable<object[]> Atan2Pi_TestData()
yield return new object[] { Half.Zero, Half.One, Half.Zero, Half.Zero }; // y: sinpi(0) x: cospi(0)
yield return new object[] { (Half)0.841470985f, (Half)0.540302306f, (Half)0.318309886f, CrossPlatformMachineEpsilon }; // y: sinpi(1 / pi) x: cospi(1 / pi)
yield return new object[] { (Half)0.978770938f, (Half)0.204957194f, (Half)0.434294482f, CrossPlatformMachineEpsilon }; // y: sinpi(log10(e)) x: cospi(log10(e))
yield return new object[] { Half.One, -Half.Zero, (Half)0.5f, CrossPlatformMachineEpsilon }; // y: sinpi(0.5) x: -cospi(0.5) ; This should be exact, but has an issue on WASM/Unix
yield return new object[] { Half.One, Half.Zero, (Half)0.5f, CrossPlatformMachineEpsilon }; // y: sinpi(0.5) x: cospi(0.5) ; This should be exact, but has an issue on WASM/Unix
yield return new object[] { Half.One, -Half.Zero, (Half)0.5f, Half.Zero }; // y: sinpi(0.5) x: -cospi(0.5)
yield return new object[] { Half.One, Half.Zero, (Half)0.5f, Half.Zero }; // y: sinpi(0.5) x: cospi(0.5)
yield return new object[] { (Half)0.909297427f, -(Half)0.416146837f, (Half)0.636619772f, CrossPlatformMachineEpsilon }; // y: sinpi(2 / pi) x: cospi(2 / pi)
yield return new object[] { (Half)0.821482831f, -(Half)0.570233249f, (Half)0.693147181f, CrossPlatformMachineEpsilon }; // y: sinpi(ln(2)) x: cospi(ln(2))
yield return new object[] { (Half)0.795693202f, -(Half)0.605699867f, (Half)0.707106781f, CrossPlatformMachineEpsilon }; // y: sinpi(1 / sqrt(2)) x: cospi(1 / sqrt(2))
Expand Down
14 changes: 7 additions & 7 deletions src/libraries/System.Runtime/tests/System/SingleTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1385,8 +1385,8 @@ public static void AsinPiTest(float value, float expectedResult, float allowedVa

[Theory]
[InlineData( float.NaN, float.NaN, float.NaN, 0.0f)]
[InlineData( 0.0f, -1.0f, 1.0f, 0.0f)] // y: sinpi(0) x: cospi(1)
[InlineData( 0.0f, -0.0f, 1.0f, 0.0f)] // y: sinpi(0) x: -cospi(0.5)
[InlineData( 0.0f, -1.0f, 1.0f, CrossPlatformMachineEpsilon)] // y: sinpi(0) x: cospi(1) ; This should be exact, but has an issue on WASM/Unix
[InlineData( 0.0f, -0.0f, 1.0f, CrossPlatformMachineEpsilon)] // y: sinpi(0) x: -cospi(0.5) ; This should be exact, but has an issue on WASM/Unix
[InlineData( 0.0f, 0.0f, 0.0f, 0.0f)] // y: sinpi(0) x: cospi(0.5)
[InlineData( 0.0f, 1.0f, 0.0f, 0.0f)] // y: sinpi(0) x: cospi(0)
[InlineData( 0.841470985f, 0.540302306f, 0.318309886f, CrossPlatformMachineEpsilon)] // y: sinpi(1 / pi) x: cospi(1 / pi)
Expand All @@ -1404,12 +1404,12 @@ public static void AsinPiTest(float value, float expectedResult, float allowedVa
[InlineData( 0.813763848f, 0.581195664f, 0.302585093f, CrossPlatformMachineEpsilon)] // y: sinpi(ln(10)) x: cospi(ln(10))
[InlineData( 0.773942685f, -0.633255651f, 0.718281828f, CrossPlatformMachineEpsilon)] // y: sinpi(e) x: cospi(e)
[InlineData(-0.430301217f, -0.902685362f, -0.858407346f, CrossPlatformMachineEpsilon)] // y: sinpi(pi) x: cospi(pi)
[InlineData( 1.0f, float.NegativeInfinity, 1.0f, 0.0f)] // y: sinpi(0.5)
[InlineData( 1.0f, float.NegativeInfinity, 1.0f, CrossPlatformMachineEpsilon)] // y: sinpi(0.5) ; This should be exact, but has an issue on WASM/Unix
[InlineData( 1.0f, float.PositiveInfinity, 0.0f, 0.0f)] // y: sinpi(0.5)
[InlineData( float.PositiveInfinity, -1.0f, 0.5f, 0.0f)] // x: cospi(1)
[InlineData( float.PositiveInfinity, 1.0f, 0.5f, 0.0f)] // x: cospi(0)
[InlineData( float.PositiveInfinity, float.NegativeInfinity, 0.75f, 0.0f)]
[InlineData( float.PositiveInfinity, float.PositiveInfinity, 0.25f, 0.0f)]
[InlineData( float.PositiveInfinity, -1.0f, 0.5f, CrossPlatformMachineEpsilon)] // x: cospi(1) ; This should be exact, but has an issue on WASM/Unix
[InlineData( float.PositiveInfinity, 1.0f, 0.5f, CrossPlatformMachineEpsilon)] // x: cospi(0) ; This should be exact, but has an issue on WASM/Unix
[InlineData( float.PositiveInfinity, float.NegativeInfinity, 0.75f, CrossPlatformMachineEpsilon)] // ; This should be exact, but has an issue on WASM/Unix
[InlineData( float.PositiveInfinity, float.PositiveInfinity, 0.25f, CrossPlatformMachineEpsilon)] // ; This should be exact, but has an issue on WASM/Unix
public static void Atan2PiTest(float y, float x, float expectedResult, float allowedVariance)
{
AssertExtensions.Equal(-expectedResult, float.Atan2Pi(-y, +x), allowedVariance);
Expand Down

0 comments on commit 0dff8a8

Please sign in to comment.