]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/compute/test/test_mersenne_twister_engine.cpp
1 //---------------------------------------------------------------------------//
2 // Copyright (c) 2013 Kyle Lutz <kyle.r.lutz@gmail.com>
4 // Distributed under the Boost Software License, Version 1.0
5 // See accompanying file LICENSE_1_0.txt or copy at
6 // http://www.boost.org/LICENSE_1_0.txt
8 // See http://boostorg.github.com/compute for more information.
9 //---------------------------------------------------------------------------//
11 #define BOOST_TEST_MODULE TestMersenneTwisterEngine
12 #include <boost/test/unit_test.hpp>
14 #include <boost/compute/random/mersenne_twister_engine.hpp>
15 #include <boost/compute/container/vector.hpp>
17 #include "check_macros.hpp"
18 #include "context_setup.hpp"
20 BOOST_AUTO_TEST_CASE(generate_uint
)
22 using boost::compute::uint_
;
24 boost::compute::mt19937
rng(queue
);
26 boost::compute::vector
<uint_
> vector(10, context
);
28 rng
.generate(vector
.begin(), vector
.end(), queue
);
45 BOOST_AUTO_TEST_CASE(discard_uint
)
47 using boost::compute::uint_
;
49 boost::compute::mt19937
rng(queue
);
51 boost::compute::vector
<uint_
> vector(5, context
);
53 rng
.discard(5, queue
);
54 rng
.generate(vector
.begin(), vector
.end(), queue
);
66 BOOST_AUTO_TEST_CASE(copy_ctor
)
68 using boost::compute::uint_
;
70 boost::compute::mt19937
rng(queue
);
71 boost::compute::mt19937
rng_copy(rng
);
73 boost::compute::vector
<uint_
> vector(10, context
);
75 rng_copy
.generate(vector
.begin(), vector
.end(), queue
);
92 BOOST_AUTO_TEST_CASE(assign_op
)
94 using boost::compute::uint_
;
96 boost::compute::mt19937
rng(queue
);
97 boost::compute::mt19937
rng_copy(queue
);
99 boost::compute::vector
<uint_
> vector(10, context
);
101 rng_copy
.discard(5, queue
);
103 rng_copy
.generate(vector
.begin(), vector
.end(), queue
);
120 BOOST_AUTO_TEST_SUITE_END()