Skip to content

Commit f68ca0b

Browse files
committed
TST: improve unit tests
1 parent 19fa94e commit f68ca0b

File tree

1 file changed

+15
-17
lines changed

1 file changed

+15
-17
lines changed

statsmodels/miscmodels/tests/test_generic_mle.py

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
from scipy import stats
1212
from statsmodels.base.model import GenericLikelihoodModel
1313

14-
from numpy.testing import assert_array_less, assert_almost_equal, assert_allclose
14+
from numpy.testing import (assert_array_less, assert_almost_equal,
15+
assert_allclose, assert_)
1516

1617
class MyPareto(GenericLikelihoodModel):
1718
'''Maximum Likelihood Estimation pareto distribution
@@ -183,11 +184,7 @@ def nlnlike(self, params, endog):
183184
alpha = endog
184185
sig = self.signal.pdf(alpha)
185186
bkg = self.background.pdf(alpha)
186-
sumlogl = np.sum(
187-
np.ma.log(
188-
(n_sig * sig) + (n_bkg * bkg)
189-
)
190-
)
187+
sumlogl = np.sum(np.log((n_sig * sig) + (n_bkg * bkg)))
191188
sumlogl -= n_tot
192189
return -sumlogl
193190

@@ -200,28 +197,29 @@ def setup_class(cls):
200197
pdf_a = stats.halfcauchy(loc=0, scale=1)
201198
pdf_b = stats.uniform(loc=0, scale=100)
202199

203-
n_a = 30
204-
n_b = 1000
200+
n_a = 50
201+
n_b = 200
205202
params = [n_a, n_b]
206203

207-
X = np.concatenate([
208-
pdf_a.rvs(size=n_a),
209-
pdf_b.rvs(size=n_b),
210-
])[:, np.newaxis]
204+
X = np.concatenate([pdf_a.rvs(size=n_a),
205+
pdf_b.rvs(size=n_b),
206+
])[:, np.newaxis]
211207
cls.X = X
212208
cls.params = params
213209
cls.pdf_a = pdf_a
214210
cls.pdf_b = pdf_b
215211

216212
def test_fit(self):
213+
np.random.seed(42)
217214
llh_noexog = TwoPeakLLHNoExog(self.X,
218215
signal=self.pdf_a,
219216
background=self.pdf_b)
220217

221218
res = llh_noexog.fit()
222-
assert np.allclose(res.params, self.params, rtol=1e-1)
223-
assert np.isnan(res.df_resid)
219+
assert_allclose(res.params, self.params, rtol=1e-1)
220+
# TODO: nan if exog is None,
221+
assert_(np.isnan(res.df_resid))
224222
res_bs = res.bootstrap(nrep=50)
225-
assert res_bs is not None
226-
smry = res.summary()
227-
assert smry is not None
223+
assert_allclose(res_bs[2].mean(0), self.params, rtol=1e-1)
224+
# SMOKE test,
225+
res.summary()

0 commit comments

Comments
 (0)