|
4 | 4 | from scipy import special |
5 | 5 |
|
6 | 6 | from pymc.distributions import ( |
| 7 | + AsymmetricLaplace, |
7 | 8 | Bernoulli, |
8 | 9 | Beta, |
9 | 10 | BetaBinomial, |
|
35 | 36 | Normal, |
36 | 37 | Pareto, |
37 | 38 | Poisson, |
| 39 | + SkewNormal, |
38 | 40 | StudentT, |
39 | 41 | Triangular, |
40 | 42 | TruncatedNormal, |
@@ -764,3 +766,59 @@ def test_moyal_moment(mu, sigma, size, expected): |
764 | 766 | with Model() as model: |
765 | 767 | Moyal("x", mu=mu, sigma=sigma, size=size) |
766 | 768 | assert_moment_is_expected(model, expected) |
| 769 | + |
| 770 | + |
| 771 | +@pytest.mark.parametrize( |
| 772 | + "alpha, mu, sigma, size, expected", |
| 773 | + [ |
| 774 | + (1.0, 1.0, 1.0, None, 1.56418958), |
| 775 | + (1, np.ones(5), 1, None, np.full(5, 1.56418958)), |
| 776 | + (np.ones(5), 1, np.ones(5), None, np.full(5, 1.56418958)), |
| 777 | + ( |
| 778 | + np.arange(5), |
| 779 | + np.arange(1, 6), |
| 780 | + np.arange(1, 6), |
| 781 | + None, |
| 782 | + (1.0, 3.12837917, 5.14094894, 7.02775903, 8.87030861), |
| 783 | + ), |
| 784 | + ( |
| 785 | + np.arange(5), |
| 786 | + np.arange(1, 6), |
| 787 | + np.arange(1, 6), |
| 788 | + (2, 5), |
| 789 | + np.full((2, 5), (1.0, 3.12837917, 5.14094894, 7.02775903, 8.87030861)), |
| 790 | + ), |
| 791 | + ], |
| 792 | +) |
| 793 | +def test_skewnormal_moment(alpha, mu, sigma, size, expected): |
| 794 | + with Model() as model: |
| 795 | + SkewNormal("x", alpha=alpha, mu=mu, sigma=sigma, size=size) |
| 796 | + assert_moment_is_expected(model, expected) |
| 797 | + |
| 798 | + |
| 799 | +@pytest.mark.parametrize( |
| 800 | + "b, kappa, mu, size, expected", |
| 801 | + [ |
| 802 | + (1.0, 1.0, 1.0, None, 1.0), |
| 803 | + (1.0, np.ones(5), 1.0, None, np.full(5, 1.0)), |
| 804 | + (np.arange(1, 6), 1.0, np.ones(5), None, np.full(5, 1.0)), |
| 805 | + ( |
| 806 | + np.arange(1, 6), |
| 807 | + np.arange(1, 6), |
| 808 | + np.arange(1, 6), |
| 809 | + None, |
| 810 | + (1.0, 1.25, 2.111111111111111, 3.0625, 4.04), |
| 811 | + ), |
| 812 | + ( |
| 813 | + np.arange(1, 6), |
| 814 | + np.arange(1, 6), |
| 815 | + np.arange(1, 6), |
| 816 | + (2, 5), |
| 817 | + np.full((2, 5), (1.0, 1.25, 2.111111111111111, 3.0625, 4.04)), |
| 818 | + ), |
| 819 | + ], |
| 820 | +) |
| 821 | +def test_asymmetriclaplace_moment(b, kappa, mu, size, expected): |
| 822 | + with Model() as model: |
| 823 | + AsymmetricLaplace("x", b=b, kappa=kappa, mu=mu, size=size) |
| 824 | + assert_moment_is_expected(model, expected) |
0 commit comments