mirror of
https://github.com/boostorg/compute.git
synced 2026-01-27 06:42:19 +00:00
This changes the clamp_range() test to use float values instead of int values. The OpenCL clamp() function is only defined for float values and this test caused kernel compilation errors on certain platforms. Also updates the test to use the new global context.
50 lines
1.5 KiB
C++
50 lines
1.5 KiB
C++
//---------------------------------------------------------------------------//
|
|
// Copyright (c) 2013 Kyle Lutz <kyle.r.lutz@gmail.com>
|
|
//
|
|
// 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 TestClampRange
|
|
#include <boost/test/unit_test.hpp>
|
|
|
|
#include <boost/compute/system.hpp>
|
|
#include <boost/compute/algorithm/detail/clamp_range.hpp>
|
|
#include <boost/compute/container/vector.hpp>
|
|
|
|
#include "context_setup.hpp"
|
|
|
|
namespace compute = boost::compute;
|
|
|
|
BOOST_AUTO_TEST_CASE(clamp_float_range)
|
|
{
|
|
float data[] = { 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f };
|
|
compute::vector<float> input(data, data + 8, context);
|
|
|
|
compute::vector<float> result(8, context);
|
|
compute::detail::clamp_range(
|
|
input.begin(),
|
|
input.end(),
|
|
result.begin(),
|
|
3.f, // low
|
|
6.f, // high
|
|
queue
|
|
);
|
|
|
|
compute::copy(result.begin(), result.end(), data, queue);
|
|
|
|
BOOST_CHECK_EQUAL(data[0], 3.f);
|
|
BOOST_CHECK_EQUAL(data[1], 3.f);
|
|
BOOST_CHECK_EQUAL(data[2], 3.f);
|
|
BOOST_CHECK_EQUAL(data[3], 4.f);
|
|
BOOST_CHECK_EQUAL(data[4], 5.f);
|
|
BOOST_CHECK_EQUAL(data[5], 6.f);
|
|
BOOST_CHECK_EQUAL(data[6], 6.f);
|
|
BOOST_CHECK_EQUAL(data[7], 6.f);
|
|
}
|
|
|
|
BOOST_AUTO_TEST_SUITE_END()
|