18
18
HalfFlat ,
19
19
HalfNormal ,
20
20
HalfStudentT ,
21
+ HyperGeometric ,
21
22
Kumaraswamy ,
22
23
Laplace ,
23
24
Logistic ,
@@ -157,7 +158,9 @@ def test_halfstudentt_moment(nu, sigma, size, expected):
157
158
assert_moment_is_expected (model , expected )
158
159
159
160
160
- @pytest .mark .skip (reason = "aeppl interval transform fails when both edges are None" )
161
+ @pytest .mark .skip (
162
+ reason = "aeppl interval transform fails when both edges are None"
163
+ )
161
164
@pytest .mark .parametrize (
162
165
"mu, sigma, lower, upper, size, expected" ,
163
166
[
@@ -169,7 +172,9 @@ def test_halfstudentt_moment(nu, sigma, size, expected):
169
172
)
170
173
def test_truncatednormal_moment (mu , sigma , lower , upper , size , expected ):
171
174
with Model () as model :
172
- TruncatedNormal ("x" , mu = mu , sigma = sigma , lower = lower , upper = upper , size = size )
175
+ TruncatedNormal (
176
+ "x" , mu = mu , sigma = sigma , lower = lower , upper = upper , size = size
177
+ )
173
178
assert_moment_is_expected (model , expected )
174
179
175
180
@@ -417,7 +422,12 @@ def test_poisson_moment(mu, size, expected):
417
422
(10 , 0.7 , None , 4 ),
418
423
(10 , 0.7 , 5 , np .full (5 , 4 )),
419
424
(np .full (3 , 10 ), np .arange (1 , 4 ) / 10 , None , np .array ([90 , 40 , 23 ])),
420
- (10 , np .arange (1 , 4 ) / 10 , (2 , 3 ), np .full ((2 , 3 ), np .array ([90 , 40 , 23 ]))),
425
+ (
426
+ 10 ,
427
+ np .arange (1 , 4 ) / 10 ,
428
+ (2 , 3 ),
429
+ np .full ((2 , 3 ), np .array ([90 , 40 , 23 ])),
430
+ ),
421
431
],
422
432
)
423
433
def test_negative_binomial_moment (n , p , size , expected ):
@@ -461,7 +471,13 @@ def test_zero_inflated_poisson_moment(psi, theta, size, expected):
461
471
(0.2 , 7 , 0.7 , None , 4 ),
462
472
(0.2 , 7 , 0.3 , 5 , np .full (5 , 2 )),
463
473
(0.6 , 25 , np .arange (1 , 6 ) / 10 , None , np .arange (1 , 6 )),
464
- (0.6 , 25 , np .arange (1 , 6 ) / 10 , (2 , 5 ), np .full ((2 , 5 ), np .arange (1 , 6 ))),
474
+ (
475
+ 0.6 ,
476
+ 25 ,
477
+ np .arange (1 , 6 ) / 10 ,
478
+ (2 , 5 ),
479
+ np .full ((2 , 5 ), np .arange (1 , 6 )),
480
+ ),
465
481
],
466
482
)
467
483
def test_zero_inflated_binomial_moment (psi , n , p , size , expected ):
@@ -503,3 +519,24 @@ def test_geometric_moment(p, size, expected):
503
519
with Model () as model :
504
520
Geometric ("x" , p = p , size = size )
505
521
assert_moment_is_expected (model , expected )
522
+
523
+
524
+ @pytest .mark .parametrize (
525
+ "N, k, n, size, expected" ,
526
+ [
527
+ (50 , 10 , 20 , None , 4 ),
528
+ (50 , 10 , 23 , 5 , np .full (5 , 5 )),
529
+ (50 , 10 , np .arange (23 , 28 ), None , np .full (5 , 5 )),
530
+ (
531
+ 50 ,
532
+ 10 ,
533
+ np .arange (18 , 23 ),
534
+ (2 , 5 ),
535
+ np .full ((2 , 5 ), 4 ),
536
+ ),
537
+ ],
538
+ )
539
+ def test_hyper_geometric_moment (N , k , n , size , expected ):
540
+ with Model () as model :
541
+ HyperGeometric ("x" , N = N , k = k , n = n , size = size )
542
+ assert_moment_is_expected (model , expected )
0 commit comments