2
0
mirror of https://github.com/boostorg/compute.git synced 2026-01-27 06:42:19 +00:00
Files
compute/test/test_clamp_range.cpp
Kyle Lutz 9a350f65cf Change clamp_range() test to use float
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.
2013-04-27 10:20:47 -04:00

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()