aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2013-06-22 21:07:02 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2013-06-22 21:07:02 +0000
commit07bba3b144e10e4296154f34a405b12d6af33798 (patch)
tree5373a5fcd9791a9d9210d1c1d6f90dbed71b4bd9 /libstdc++-v3/testsuite
parent11e8f687dff42b0ef93f940b8c2ce772962735d3 (diff)
downloadgcc-07bba3b144e10e4296154f34a405b12d6af33798.zip
gcc-07bba3b144e10e4296154f34a405b12d6af33798.tar.gz
gcc-07bba3b144e10e4296154f34a405b12d6af33798.tar.bz2
re PR libstdc++/57674 (wrong distribution for std::binomial_distribution::operator()(g,param))
2013-06-22 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/57674 * include/bits/random.h (binomial_distribution<>::_M_waiting): Add double parameter. * include/bits/random.tcc (binomial_distribution<>::operator() (_UniformRandomNumberGenerator&, const param_type&)): Pass __param._M_q to _M_waiting. (_M_waiting): Adjust. * testsuite/26_numerics/random/binomial_distribution/ operators/values.cc: Add tests. From-SVN: r200341
Diffstat (limited to 'libstdc++-v3/testsuite')
-rw-r--r--libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc b/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc
index 89e84ca..4633a06 100644
--- a/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc
+++ b/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc
@@ -43,6 +43,17 @@ void test01()
std::binomial_distribution<> bd3(10, 0.75);
auto bbd3 = std::bind(bd3, eng);
testDiscreteDist(bbd3, [](int n) { return binomial_pdf(n, 10, 0.75); } );
+
+ // libstdc++/57674
+ std::binomial_distribution<> bd4(1, 0.8);
+ const std::binomial_distribution<>::param_type pm4(1, 0.3);
+ auto bbd4 = std::bind(bd4, eng, pm4);
+ testDiscreteDist(bbd4, [](int n) { return binomial_pdf(n, 1, 0.3); } );
+
+ std::binomial_distribution<> bd5(100, 0.3);
+ const std::binomial_distribution<>::param_type pm5(100, 0.8);
+ auto bbd5 = std::bind(bd5, eng, pm5);
+ testDiscreteDist(bbd5, [](int n) { return binomial_pdf(n, 100, 0.8); } );
}
int main()