|
22 | 22 | DensityDist,
|
23 | 23 | Dirichlet,
|
24 | 24 | DiscreteUniform,
|
| 25 | + DiscreteWeibull, |
25 | 26 | ExGaussian,
|
26 | 27 | Exponential,
|
27 | 28 | Flat,
|
@@ -110,7 +111,6 @@ def test_all_distributions_have_moments():
|
110 | 111 |
|
111 | 112 | # Distributions that have been refactored but don't yet have moments
|
112 | 113 | not_implemented |= {
|
113 |
| - dist_module.discrete.DiscreteWeibull, |
114 | 114 | dist_module.multivariate.DirichletMultinomial,
|
115 | 115 | dist_module.multivariate.Wishart,
|
116 | 116 | }
|
@@ -752,6 +752,26 @@ def test_discrete_uniform_moment(lower, upper, size, expected):
|
752 | 752 | assert_moment_is_expected(model, expected)
|
753 | 753 |
|
754 | 754 |
|
| 755 | +@pytest.mark.parametrize( |
| 756 | + "q, beta, size, expected", |
| 757 | + [ |
| 758 | + (0.5, 0.5, None, 0), |
| 759 | + (0.6, 0.1, 5, (20,) * 5), |
| 760 | + (np.linspace(0.25, 0.99, 4), 0.42, None, [0, 0, 6, 23862]), |
| 761 | + ( |
| 762 | + np.linspace(0.5, 0.99, 3), |
| 763 | + [[1, 1.25, 1.75], [1.25, 0.75, 0.5]], |
| 764 | + None, |
| 765 | + [[0, 0, 10], [0, 2, 4755]], |
| 766 | + ), |
| 767 | + ], |
| 768 | +) |
| 769 | +def test_discrete_weibull_moment(q, beta, size, expected): |
| 770 | + with Model() as model: |
| 771 | + DiscreteWeibull("x", q=q, beta=beta, size=size) |
| 772 | + assert_moment_is_expected(model, expected) |
| 773 | + |
| 774 | + |
755 | 775 | @pytest.mark.parametrize(
|
756 | 776 | "a, size, expected",
|
757 | 777 | [
|
|
0 commit comments