|
6 | 6 | from pymc import Bernoulli, Flat, HalfFlat, Normal, TruncatedNormal, Uniform
|
7 | 7 | from pymc.distributions import (
|
8 | 8 | Beta,
|
| 9 | + Binomial, |
9 | 10 | Cauchy,
|
10 | 11 | ChiSquared,
|
11 | 12 | Exponential,
|
|
15 | 16 | Kumaraswamy,
|
16 | 17 | Laplace,
|
17 | 18 | LogNormal,
|
| 19 | + Poisson, |
18 | 20 | StudentT,
|
19 | 21 | Weibull,
|
20 | 22 | )
|
@@ -224,7 +226,13 @@ def test_laplace_moment(mu, b, size, expected):
|
224 | 226 | (0, 1, 1, None, 0),
|
225 | 227 | (0, np.ones(5), 1, None, np.zeros(5)),
|
226 | 228 | (np.arange(5), 10, np.arange(1, 6), None, np.arange(5)),
|
227 |
| - (np.arange(5), 10, np.arange(1, 6), (2, 5), np.full((2, 5), np.arange(5))), |
| 229 | + ( |
| 230 | + np.arange(5), |
| 231 | + 10, |
| 232 | + np.arange(1, 6), |
| 233 | + (2, 5), |
| 234 | + np.full((2, 5), np.arange(5)), |
| 235 | + ), |
228 | 236 | ],
|
229 | 237 | )
|
230 | 238 | def test_studentt_moment(mu, nu, sigma, size, expected):
|
@@ -333,11 +341,44 @@ def test_gamma_moment(alpha, beta, size, expected):
|
333 | 341 | np.arange(1, 6),
|
334 | 342 | np.arange(2, 7),
|
335 | 343 | (2, 5),
|
336 |
| - np.full((2, 5), np.arange(2, 7) * special.gamma(1 + 1 / np.arange(1, 6))), |
| 344 | + np.full( |
| 345 | + (2, 5), |
| 346 | + np.arange(2, 7) * special.gamma(1 + 1 / np.arange(1, 6)), |
| 347 | + ), |
337 | 348 | ),
|
338 | 349 | ],
|
339 | 350 | )
|
340 | 351 | def test_weibull_moment(alpha, beta, size, expected):
|
341 | 352 | with Model() as model:
|
342 | 353 | Weibull("x", alpha=alpha, beta=beta, size=size)
|
343 | 354 | assert_moment_is_expected(model, expected)
|
| 355 | + |
| 356 | + |
| 357 | +@pytest.mark.parametrize( |
| 358 | + "n, p, size, expected", |
| 359 | + [ |
| 360 | + (7, 0.7, None, 5), |
| 361 | + (7, 0.3, 5, np.full(5, 2)), |
| 362 | + (10, np.arange(1, 6) / 10, None, np.arange(1, 6)), |
| 363 | + (10, np.arange(1, 6) / 10, (2, 5), np.full((2, 5), np.arange(1, 6))), |
| 364 | + ], |
| 365 | +) |
| 366 | +def test_binomial_moment(n, p, size, expected): |
| 367 | + with Model() as model: |
| 368 | + Binomial("x", n=n, p=p, size=size) |
| 369 | + assert_moment_is_expected(model, expected) |
| 370 | + |
| 371 | + |
| 372 | +@pytest.mark.parametrize( |
| 373 | + "mu, size, expected", |
| 374 | + [ |
| 375 | + (2.7, None, 2), |
| 376 | + (2.3, 5, np.full(5, 2)), |
| 377 | + (np.arange(1, 5), None, np.arange(1, 5)), |
| 378 | + (np.arange(1, 5), (2, 4), np.full((2, 4), np.arange(1, 5))), |
| 379 | + ], |
| 380 | +) |
| 381 | +def test_poisson_moment(mu, size, expected): |
| 382 | + with Model() as model: |
| 383 | + Poisson("x", mu=mu, size=size) |
| 384 | + assert_moment_is_expected(model, expected) |
0 commit comments