You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
18 lines
874 B
18 lines
874 B
# file for distribution-specific tests with new infrastructure (UnivariateDistribution)
|
|
import numpy as np
|
|
from numpy.testing import assert_allclose
|
|
from scipy import stats
|
|
|
|
class TestBinomial:
|
|
def test_gh23708_binomial_logcdf_method_complement(self):
|
|
# gh-23708 found that `logcdf` method='complement' was inaccurate in the tails
|
|
x = np.asarray([0., 18.])
|
|
X = stats.Binomial(n=np.asarray([18.]), p=np.asarray(0.71022842))
|
|
assert_allclose(X.logcdf(x, method='complement'), X.logcdf(x), rtol=1e-15)
|
|
assert_allclose(X.logccdf(x, method='complement'), X.logccdf(x), rtol=1e-15)
|
|
|
|
# going even deeper into the tails
|
|
X = stats.Binomial(n=100, p=0.5)
|
|
assert_allclose(X.logcdf(0, method='complement'), X.logpmf(0), rtol=1e-15)
|
|
assert_allclose(X.logccdf(99, method='complement'), X.logpmf(100), rtol=1e-15)
|