📁 File Manager Pro
v10.0.3 | PHP: 7.4.33
Server: LiteSpeed
2026-07-12 03:31:43
📂
/ (Root)
/
opt
/
alt
/
tests
/
alt-php80-pecl-stats_2.1.0-2.fac78cf.el8
/
tests
📍 /opt/alt/tests/alt-php80-pecl-stats_2.1.0-2.fac78cf.el8/tests
🔄 Refresh
✏️
Editing: stats_dens_pmf_hypergeometric.phpt
Read Only
--TEST-- stats_dens_pmf_hypergeometric() --FILE-- <?php /* * Definition from Wikipedia * (see https://en.wikipedia.org/wiki/Hypergeometric_distribution) * * P(X=k) = binom(k, K) * binom(n-k, N-K) / binom(n, N) * where * N is the population size, * K is the number of success states in the population, * n is the number of draws, * k is the number of observed successes. * * Implementation in php_stats.c * * stats_dens_pmf_hypergeometric(n1, n2, N1, N2) * = binom(n1, N1) * binom(n2, N2) / binom(n1+n2, N1+N2) * * so the relation between both definitions is * n1 = k is the number of observed successes, * n2 = n - k is the number of observed failures, * N1 = K is the number of success states in the population, * N2 = N - K is the number of failure states in the population. */ // check for each n1 foreach (range(0, 3) as $n1) { var_dump(stats_dens_pmf_hypergeometric($n1, 1, 2, 3)); } // check for each n2 foreach (range(0, 3) as $n2) { var_dump(stats_dens_pmf_hypergeometric(1, $n2, 2, 3)); } // check for each N1 foreach (range(0, 3) as $N1) { var_dump(stats_dens_pmf_hypergeometric(1, 1, $N1, 3)); } // check for each N2 foreach (range(1, 3) as $N2) { var_dump(round(stats_dens_pmf_hypergeometric(1, 1, 2, $N2), 6)); } // error cases var_dump(stats_dens_pmf_hypergeometric(1, 3, 1, 2)); // n1 + n2 > N1 + N2 ?> --EXPECTF-- float(0.6) float(0.6) float(0.3) float(0) float(0.4) float(0.6) float(0.6) float(0.4) float(0) float(0.5) float(0.6) float(0.6) float(0.666667) float(0.666667) float(0.6) Warning: stats_dens_pmf_hypergeometric(): possible division by zero - n1+n2 >= N1+N2 in %s on line %d float(NAN)
💾 Save Changes
❌ Cancel