|
4 | 4 | from scipy import special
|
5 | 5 |
|
6 | 6 | from pymc.distributions import (
|
| 7 | + AsymmetricLaplace, |
7 | 8 | Bernoulli,
|
8 | 9 | Beta,
|
9 | 10 | Binomial,
|
|
29 | 30 | Normal,
|
30 | 31 | Pareto,
|
31 | 32 | Poisson,
|
| 33 | + SkewNormal, |
32 | 34 | StudentT,
|
33 | 35 | TruncatedNormal,
|
34 | 36 | Uniform,
|
@@ -612,3 +614,59 @@ def test_discrete_uniform_moment(lower, upper, size, expected):
|
612 | 614 | with Model() as model:
|
613 | 615 | DiscreteUniform("x", lower=lower, upper=upper, size=size)
|
614 | 616 | assert_moment_is_expected(model, expected)
|
| 617 | + |
| 618 | + |
| 619 | +@pytest.mark.parametrize( |
| 620 | + "alpha, mu, sigma, size, expected", |
| 621 | + [ |
| 622 | + (1.0, 1.0, 1.0, None, 1.56418958), |
| 623 | + (1, np.ones(5), 1, None, np.full(5, 1.56418958)), |
| 624 | + (np.ones(5), 1, np.ones(5), None, np.full(5, 1.56418958)), |
| 625 | + ( |
| 626 | + np.arange(5), |
| 627 | + np.arange(1, 6), |
| 628 | + np.arange(1, 6), |
| 629 | + None, |
| 630 | + (1.0, 3.12837917, 5.14094894, 7.02775903, 8.87030861), |
| 631 | + ), |
| 632 | + ( |
| 633 | + np.arange(5), |
| 634 | + np.arange(1, 6), |
| 635 | + np.arange(1, 6), |
| 636 | + (2, 5), |
| 637 | + np.full((2, 5), (1.0, 3.12837917, 5.14094894, 7.02775903, 8.87030861)), |
| 638 | + ), |
| 639 | + ], |
| 640 | +) |
| 641 | +def test_skewnormal_moment(alpha, mu, sigma, size, expected): |
| 642 | + with Model() as model: |
| 643 | + SkewNormal("x", alpha=alpha, mu=mu, sigma=sigma, size=size) |
| 644 | + assert_moment_is_expected(model, expected) |
| 645 | + |
| 646 | + |
| 647 | +@pytest.mark.parametrize( |
| 648 | + "b, kappa, mu, size, expected", |
| 649 | + [ |
| 650 | + (1.0, 1.0, 1.0, None, 1.0), |
| 651 | + (1.0, np.ones(5), 1.0, None, np.full(5, 1.0)), |
| 652 | + (np.arange(1, 6), 1.0, np.ones(5), None, np.full(5, 1.0)), |
| 653 | + ( |
| 654 | + np.arange(1, 6), |
| 655 | + np.arange(1, 6), |
| 656 | + np.arange(1, 6), |
| 657 | + None, |
| 658 | + (1.0, 1.25, 2.111111111111111, 3.0625, 4.04), |
| 659 | + ), |
| 660 | + ( |
| 661 | + np.arange(1, 6), |
| 662 | + np.arange(1, 6), |
| 663 | + np.arange(1, 6), |
| 664 | + (2, 5), |
| 665 | + np.full((2, 5), (1.0, 1.25, 2.111111111111111, 3.0625, 4.04)), |
| 666 | + ), |
| 667 | + ], |
| 668 | +) |
| 669 | +def test_asymmetriclaplace_moment(b, kappa, mu, size, expected): |
| 670 | + with Model() as model: |
| 671 | + AsymmetricLaplace("x", b=b, kappa=kappa, mu=mu, size=size) |
| 672 | + assert_moment_is_expected(model, expected) |
0 commit comments