//---------------------------------------------------------------------------// // Copyright (c) 2014 Roshan // // Distributed under the Boost Software License, Version 1.0 // See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt // // See http://boostorg.github.com/compute for more information. //---------------------------------------------------------------------------// #define BOOST_TEST_MODULE TestDiscreteDistribution #include #include #include #include #include #include #include #include #include "context_setup.hpp" BOOST_AUTO_TEST_CASE(discrete_distribution_doctest) { using boost::compute::uint_; using boost::compute::lambda::_1; boost::compute::vector vec(100, context); //! [generate] // initialize the default random engine boost::compute::default_random_engine engine(queue); // initialize weights int weights[] = {2, 2}; // setup the discrete distribution to produce integers 0 and 1 // with equal weights boost::compute::discrete_distribution distribution(weights, weights+2); // generate the random values and store them to 'vec' distribution.generate(vec.begin(), vec.end(), engine, queue); // ! [generate] BOOST_CHECK_EQUAL( boost::compute::count_if( vec.begin(), vec.end(), _1 > 1, queue ), size_t(0) ); } BOOST_AUTO_TEST_SUITE_END()