diff options
Diffstat (limited to 'libcxx/test/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.bin/eval_param.pass.cpp')
| -rw-r--r-- | libcxx/test/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.bin/eval_param.pass.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/libcxx/test/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.bin/eval_param.pass.cpp b/libcxx/test/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.bin/eval_param.pass.cpp new file mode 100644 index 00000000000..9727949a48a --- /dev/null +++ b/libcxx/test/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.bin/eval_param.pass.cpp @@ -0,0 +1,72 @@ +//===----------------------------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// <random> + +// template<class IntType = int> +// class binomial_distribution + +// template<class _URNG> result_type operator()(_URNG& g, const param_type& parm); + +#include <random> +#include <cassert> + +#include <iostream> + +int main() +{ + { + typedef std::binomial_distribution<> D; + typedef D::param_type P; + typedef std::minstd_rand0 G; + G g; + D d(16, .75); + P p(16, .25); + int count = 0; + int r = 0; + for (int i = 0; i < 100; ++i) + { + D::result_type u = d(g, p); + r += u; + } + assert(int(r/100. + .5) == 4); + } + { + typedef std::binomial_distribution<> D; + typedef D::param_type P; + typedef std::minstd_rand0 G; + G g; + D d(16, .75); + P p(16, .5); + int count = 0; + int r = 0; + for (int i = 0; i < 100; ++i) + { + D::result_type u = d(g, p); + r += u; + } + assert(int(r/100. + .5) == 8); + } + { + typedef std::binomial_distribution<> D; + typedef D::param_type P; + typedef std::minstd_rand0 G; + G g; + D d(16, .75); + P p(16, .75); + int count = 0; + int r = 0; + for (int i = 0; i < 100; ++i) + { + D::result_type u = d(g, p); + r += u; + } + assert(int(r/100. + .5) == 12); + } +} |

