diff --git a/src/UnitTests/SpecialFunctionsTests/GammaTests.cs b/src/UnitTests/SpecialFunctionsTests/GammaTests.cs index 94ea8681..0bbaea59 100644 --- a/src/UnitTests/SpecialFunctionsTests/GammaTests.cs +++ b/src/UnitTests/SpecialFunctionsTests/GammaTests.cs @@ -94,33 +94,43 @@ namespace MathNet.Numerics.UnitTests.SpecialFunctionsTests /// /// Gamma lower regularized. /// - /// Value of A parameter. - /// Input X value. - /// Function result. - [TestCase(double.NaN, Double.NaN, Double.NaN)] - [TestCase(0.1, 1.0, 0.97587265627367222115949155252812057714751052498477013)] - [TestCase(0.1, 2.0, 0.99432617602018847196075251078067514034772764693462125)] - [TestCase(0.1, 8.0, 0.99999507519205198048686442150578226823401842046310854)] - [TestCase(1.5, 1.0, 0.42759329552912016600095238564127189392715996802703368)] - [TestCase(1.5, 2.0, 0.73853587005088937779717792402407879809718939080920993)] - [TestCase(1.5, 8.0, 0.99886601571021467734329986257903021041757398191304284)] - [TestCase(2.5, 1.0, 0.15085496391539036377410688601371365034788861473418704)] - [TestCase(2.5, 2.0, 0.45058404864721976739416885516693969548484517509263197)] - [TestCase(2.5, 8.0, 0.99315592607757956900093935107222761316136944145439676)] - [TestCase(5.5, 1.0, 0.0015041182825838038421585211353488839717739161316985392)] - [TestCase(5.5, 2.0, 0.030082976121226050615171484772387355162056796585883967)] - [TestCase(5.5, 8.0, 0.85886911973294184646060071855669224657735916933487681)] - public void GammaLowerRegularized(double a, double x, double f) + [TestCase(double.NaN, Double.NaN, Double.NaN, 14)] + [TestCase(0.1, 1.0, 0.97587265627367222115949155252812057714751052498477013, 14)] + [TestCase(0.1, 2.0, 0.99432617602018847196075251078067514034772764693462125, 14)] + [TestCase(0.1, 8.0, 0.99999507519205198048686442150578226823401842046310854, 14)] + [TestCase(1.5, 1.0, 0.42759329552912016600095238564127189392715996802703368, 14)] + [TestCase(1.5, 2.0, 0.73853587005088937779717792402407879809718939080920993, 14)] + [TestCase(1.5, 8.0, 0.99886601571021467734329986257903021041757398191304284, 14)] + [TestCase(2.5, 1.0, 0.15085496391539036377410688601371365034788861473418704, 14)] + [TestCase(2.5, 2.0, 0.45058404864721976739416885516693969548484517509263197, 14)] + [TestCase(2.5, 8.0, 0.99315592607757956900093935107222761316136944145439676, 14)] + [TestCase(5.5, 1.0, 0.0015041182825838038421585211353488839717739161316985392, 14)] + [TestCase(5.5, 2.0, 0.030082976121226050615171484772387355162056796585883967, 14)] + [TestCase(5.5, 8.0, 0.85886911973294184646060071855669224657735916933487681, 14)] + [TestCase(100, 0.5, 0.0, 14)] + [TestCase(100, 1.5, 0.0, 14)] + [TestCase(100, 90, 0.1582209891864301681049696996709105316998233457433473, 12)] + [TestCase(100, 100, 0.5132987982791486648573142565640291634709251499279450, 12)] + [TestCase(100, 110, 0.8417213299399129061982996209829688531933500308658222, 12)] + [TestCase(100, 200, 1.0, 14)] + [TestCase(500, 0.5, 0.0, 14)] + [TestCase(500, 1.5, 0.0, 14)] + [TestCase(500, 200, 0.0, 14)] + [TestCase(500, 450, 0.0107172380912897415573958770655204965434869949241480, 12)] + [TestCase(500, 500, 0.5059471461707603580470479574412058032802735425634263, 12)] + [TestCase(500, 550, 0.9853855918737048059548470006900844665580616318702748, 12)] + [TestCase(500, 700, 1.0, 14)] + [TestCase(1000, 10000, 1.0, 14)] + [TestCase(1e+50, 1e+48, 0.0, 14)] + [TestCase(1e+50, 1e+52, 1.0, 14)] + public void GammaLowerRegularized(double a, double x, double f, int digits) { - AssertHelpers.AlmostEqual(f, SpecialFunctions.GammaLowerRegularized(a, x), 14); + AssertHelpers.AlmostEqual(f, SpecialFunctions.GammaLowerRegularized(a, x), digits); } /// /// Gamma lower incomplete. /// - /// Value of A parameter. - /// Input X value. - /// Function result. [TestCase(double.NaN, Double.NaN, Double.NaN)] [TestCase(0.1, 1.0, 9.2839720283798852469443229940217320532607158711056334)] [TestCase(0.1, 2.0, 9.4595297305559030536119885480983751098528458886962883)] @@ -142,35 +152,45 @@ namespace MathNet.Numerics.UnitTests.SpecialFunctionsTests /// /// Gamma upper regularized. /// - /// Value of A parameter. - /// Input X value. - /// Function result. - [TestCase(double.NaN, Double.NaN, Double.NaN)] - [TestCase(0.1, 1.0, 0.024127343726327778840508447471879422852489475015229)] - [TestCase(0.1, 2.0, 0.0056738239798115280392474892193248596522723530653781)] - [TestCase(0.1, 8.0, 0.0000049248079480195131355784942177317659815795368919702)] - [TestCase(1.5, 1.0, 0.57240670447087983399904761435872810607284003197297)] - [TestCase(1.5, 2.0, 0.26146412994911062220282207597592120190281060919079)] - [TestCase(1.5, 8.0, 0.0011339842897853226567001374209697895824260180869567)] - [TestCase(2.5, 1.0, 0.84914503608460963622589311398628634965211138526581)] - [TestCase(2.5, 2.0, 0.54941595135278023260583114483306030451515482490737)] - [TestCase(2.5, 8.0, 0.0068440739224204309990606489277723868386305585456026)] - [TestCase(5.5, 1.0, 0.9984958817174161961578414788646511160282260838683)] - [TestCase(5.5, 2.0, 0.96991702387877394938482851522761264483794320341412)] - [TestCase(5.5, 8.0, 0.14113088026705815353939928144330775342264083066512)] - public void GammaUpperRegularized(double a, double x, double f) + [TestCase(double.NaN, Double.NaN, Double.NaN, 14)] + [TestCase(0.1, 1.0, 0.0241273437263277773829694356333550393309597428392044, 14)] + [TestCase(0.1, 2.0, 0.0056738239798115280392474892193248596522723530653781, 14)] + [TestCase(0.1, 8.0, 0.0000049248079480195131355784942177317659815795368919702, 14)] + [TestCase(1.5, 1.0, 0.57240670447087983399904761435872810607284003197297, 14)] + [TestCase(1.5, 2.0, 0.26146412994911062220282207597592120190281060919079, 14)] + [TestCase(1.5, 8.0, 0.0011339842897853226567001374209697895824260180869567, 14)] + [TestCase(2.5, 1.0, 0.84914503608460963622589311398628634965211138526581, 14)] + [TestCase(2.5, 2.0, 0.54941595135278023260583114483306030451515482490737, 14)] + [TestCase(2.5, 8.0, 0.0068440739224204309990606489277723868386305585456026, 14)] + [TestCase(5.5, 1.0, 0.9984958817174161961578414788646511160282260838683, 14)] + [TestCase(5.5, 2.0, 0.96991702387877394938482851522761264483794320341412, 14)] + [TestCase(5.5, 8.0, 0.14113088026705815353939928144330775342264083066512, 14)] + [TestCase(100, 0.5, 1.0, 14)] + [TestCase(100, 1.5, 1.0, 14)] + [TestCase(100, 90, 0.8417790108135698318950303003290894683001766542566526, 12)] + [TestCase(100, 100, 0.4867012017208513351426857434359708365290748500720549, 12)] + [TestCase(100, 110, 0.1582786700600870938017003790170311468066499691341777, 12)] + [TestCase(100, 200, 0.0, 14)] + [TestCase(500, 0.5, 1.0, 14)] + [TestCase(500, 1.5, 1.0, 14)] + [TestCase(500, 200, 1.0, 14)] + [TestCase(500, 450, 0.9892827619087102584426041229344795034565130050758519, 12)] + [TestCase(500, 500, 0.4940528538292396419529520425587941967197264574365736, 12)] + [TestCase(500, 550, 0.0146144081262951940451529993099155334419383681297251, 12)] + [TestCase(500, 700, 0.0, 14)] + [TestCase(1000, 10000, 0.0, 14)] + [TestCase(1e+50, 1e+48, 1.0, 14)] + [TestCase(1e+50, 1e+52, 0.0, 14)] + public void GammaUpperRegularized(double a, double x, double f, int digits) { - AssertHelpers.AlmostEqual(f, SpecialFunctions.GammaUpperRegularized(a, x), 14); + AssertHelpers.AlmostEqual(f, SpecialFunctions.GammaUpperRegularized(a, x), digits); } /// /// Gamma upper incomplete. /// - /// Value of A parameter. - /// Input X value. - /// Function result. [TestCase(double.NaN, Double.NaN, Double.NaN)] - [TestCase(0.1, 1.0, 0.22953567028884603886365690180350044765300023528467)] + [TestCase(0.1, 1.0, 0.2295356702888460382790772147651768201739736396141314)] [TestCase(0.1, 2.0, 0.053977968112828232195991347726857391060870217694027)] [TestCase(0.1, 8.0, 0.000046852198327948595220974570460669512682180005810156)] [TestCase(1.5, 1.0, 0.50728223381177330984514007570018045349008617228036)]