//---------------------------------------------------------------------------// // Copyright (c) 2013 Kyle Lutz // // 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://kylelutz.github.com/compute for more information. //---------------------------------------------------------------------------// #define BOOST_TEST_MODULE TestTuple #include #include #include #include #include #include #include #include #include #include BOOST_AUTO_TEST_CASE(vector_tuple_int_float) { boost::compute::vector > vector; vector.push_back(boost::make_tuple(1, 2.1f)); vector.push_back(boost::make_tuple(2, 3.2f)); vector.push_back(boost::make_tuple(3, 4.3f)); } BOOST_AUTO_TEST_CASE(copy_vector_tuple) { boost::compute::device device = boost::compute::system::default_device(); boost::compute::context context(device); // create vector of tuples on device boost::compute::vector > input(context); input.push_back(boost::make_tuple('a', 1, 2.3f)); input.push_back(boost::make_tuple('c', 3, 4.5f)); input.push_back(boost::make_tuple('f', 6, 7.8f)); // copy on device boost::compute::vector > output(context); boost::compute::copy( input.begin(), input.end(), output.begin() ); // copy to host std::vector > host_output(3); boost::compute::copy( input.begin(), input.end(), host_output.begin() ); // check tuple data BOOST_CHECK_EQUAL(host_output[0], boost::make_tuple('a', 1, 2.3f)); BOOST_CHECK_EQUAL(host_output[1], boost::make_tuple('c', 3, 4.5f)); BOOST_CHECK_EQUAL(host_output[2], boost::make_tuple('f', 6, 7.8f)); }