Browse Source

Added Erf and Erfc unit test coverage.

Signed-off-by: Christoph Ruegg <git@cdrnet.ch>
pull/36/head
Jurgen Van Gael 17 years ago
committed by Christoph Ruegg
parent
commit
c4e31af95f
  1. 15
      src/Managed.UnitTests/SpecialFunctionsTest/ErfTests.cs
  2. 4
      src/Managed/SpecialFunctions/Erf.cs

15
src/Managed.UnitTests/SpecialFunctionsTest/ErfTests.cs

@ -35,7 +35,10 @@ namespace MathNet.Numerics.UnitTests.SpecialFunctionTests
public class ErfTests
{
[Test]
[Row(double.NaN, double.NaN)]
[Row(-1.0, -0.84270079294971486934122063508260925929606699796630291)]
[Row(0.0, 0.0)]
[Row(1e-15, 0.0000000000000011283791670955126615773132947717431253912942469337536)]
[Row(0.1, 0.1124629160182848984047122510143040617233925185058162)]
[Row(0.2, 0.22270258921047846617645303120925671669511570710081967)]
[Row(0.3, 0.32862675945912741618961798531820303325847175931290341)]
@ -48,13 +51,17 @@ namespace MathNet.Numerics.UnitTests.SpecialFunctionTests
[Row(3.0, 0.99997790950300141455862722387041767962015229291260075)]
[Row(4.0, 0.99999998458274209971998114784032651311595142785474641)]
[Row(5.0, 0.99999999999846254020557196514981165651461662110988195)]
[Row(6.0, 0.99999999999999997848026328750108688340664960081261537)]
[Row(double.PositiveInfinity, 1.0)]
[Row(double.NegativeInfinity, -1.0)]
public void ErfCanMatchLargePrecision(double x, double f)
{
AssertHelpers.AlmostEqual(f, SpecialFunctions.Erf(x), 15);
}
[Test]
[Row(double.NaN, double.NaN)]
[Row(-1.0, 1.8427007929497148693412206350826092592960669979663028)]
[Row(0.0, 1.0)]
[Row(0.1, 0.88753708398171510159528774898569593827660748149418343)]
[Row(0.2, 0.77729741078952153382354696879074328330488429289918085)]
@ -68,7 +75,15 @@ namespace MathNet.Numerics.UnitTests.SpecialFunctionTests
[Row(3.0, 0.00002209049699858544137277612958232037984770708739924966)]
[Row(4.0, 0.000000015417257900280018852159673486884048572145253589191167)]
[Row(5.0, 0.0000000000015374597944280348501883434853833788901180503147233804)]
[Row(6.0, 2.1519736712498913116593350399187384630477514061688559e-17)]
[Row(10.0, 2.0884875837625447570007862949577886115608181193211634e-45)]
[Row(15.0, 7.2129941724512066665650665586929271099340909298253858e-100)]
[Row(20.0, 5.3958656116079009289349991679053456040882726709236071e-176)]
[Row(30.0, 2.5646562037561116000333972775014471465488897227786155e-393)]
[Row(50.0, 2.0709207788416560484484478751657887929322509209953988e-1088)]
[Row(80.0, 2.3100265595063985852034904366341042118385080919280966e-2782)]
[Row(double.PositiveInfinity, 0.0)]
[Row(double.NegativeInfinity, 2.0)]
public void ErfcCanMatchLargePrecision(double x, double f)
{
AssertHelpers.AlmostEqual(f, SpecialFunctions.Erfc(x), 13);

4
src/Managed/SpecialFunctions/Erf.cs

@ -71,7 +71,7 @@ namespace MathNet.Numerics
return -1;
}
if (Double.IsNaN(x) || Double.IsNaN(x))
if (Double.IsNaN(x))
{
return Double.NaN;
}
@ -105,7 +105,7 @@ namespace MathNet.Numerics
return 2;
}
if (Double.IsNaN(x) || Double.IsNaN(x))
if (Double.IsNaN(x))
{
return Double.NaN;
}

Loading…
Cancel
Save