Skip to content

Commit

Permalink
More tests with less lines
Browse files Browse the repository at this point in the history
  • Loading branch information
gonidelis committed Sep 10, 2024
1 parent 58024f6 commit 3427c58
Show file tree
Hide file tree
Showing 14 changed files with 170 additions and 533 deletions.
25 changes: 7 additions & 18 deletions thrust/testing/adjacent_difference.cu
Original file line number Diff line number Diff line change
Expand Up @@ -11,39 +11,28 @@ void TestAdjacentDifferenceSimple()
{
using T = typename Vector::value_type;

Vector input(4);
Vector input{1, 4, 6, 7};
Vector output(4);
input[0] = 1;
input[1] = 4;
input[2] = 6;
input[3] = 7;

typename Vector::iterator result;

result = thrust::adjacent_difference(input.begin(), input.end(), output.begin());

ASSERT_EQUAL(result - output.begin(), 4);
ASSERT_EQUAL(output[0], T(1));
ASSERT_EQUAL(output[1], T(3));
ASSERT_EQUAL(output[2], T(2));
ASSERT_EQUAL(output[3], T(1));
Vector ref{1, 3, 2, 1};
ASSERT_EQUAL(output, ref);

result = thrust::adjacent_difference(input.begin(), input.end(), output.begin(), thrust::plus<T>());

ASSERT_EQUAL(result - output.begin(), 4);
ASSERT_EQUAL(output[0], T(1));
ASSERT_EQUAL(output[1], T(5));
ASSERT_EQUAL(output[2], T(10));
ASSERT_EQUAL(output[3], T(13));
ref = {1, 5, 10, 13};
ASSERT_EQUAL(output, ref);

// test in-place operation, result and first are permitted to be the same
result = thrust::adjacent_difference(input.begin(), input.end(), input.begin());

ASSERT_EQUAL(result - input.begin(), 4);
ASSERT_EQUAL(input[0], T(1));
ASSERT_EQUAL(input[1], T(3));
ASSERT_EQUAL(input[2], T(2));
ASSERT_EQUAL(input[3], T(1));
ref = {1, 3, 2, 1};
ASSERT_EQUAL(input, ref);
}
DECLARE_VECTOR_UNITTEST(TestAdjacentDifferenceSimple);

Expand Down
32 changes: 4 additions & 28 deletions thrust/testing/binary_search.cu
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,7 @@ THRUST_DISABLE_MSVC_POSSIBLE_LOSS_OF_DATA_WARNING_BEGIN
template <class Vector>
void TestScalarLowerBoundSimple()
{
Vector vec(5);

vec[0] = 0;
vec[1] = 2;
vec[2] = 5;
vec[3] = 7;
vec[4] = 8;
Vector vec{0, 2, 5, 7, 8};

ASSERT_EQUAL(thrust::lower_bound(vec.begin(), vec.end(), 0) - vec.begin(), 0);
ASSERT_EQUAL(thrust::lower_bound(vec.begin(), vec.end(), 1) - vec.begin(), 1);
Expand Down Expand Up @@ -74,13 +68,7 @@ DECLARE_UNITTEST(TestScalarLowerBoundDispatchImplicit);
template <class Vector>
void TestScalarUpperBoundSimple()
{
Vector vec(5);

vec[0] = 0;
vec[1] = 2;
vec[2] = 5;
vec[3] = 7;
vec[4] = 8;
Vector vec{0, 2, 5, 7, 8};

ASSERT_EQUAL(thrust::upper_bound(vec.begin(), vec.end(), 0) - vec.begin(), 1);
ASSERT_EQUAL(thrust::upper_bound(vec.begin(), vec.end(), 1) - vec.begin(), 1);
Expand Down Expand Up @@ -134,13 +122,7 @@ DECLARE_UNITTEST(TestScalarUpperBoundDispatchImplicit);
template <class Vector>
void TestScalarBinarySearchSimple()
{
Vector vec(5);

vec[0] = 0;
vec[1] = 2;
vec[2] = 5;
vec[3] = 7;
vec[4] = 8;
Vector vec{0, 2, 5, 7, 8};

ASSERT_EQUAL(thrust::binary_search(vec.begin(), vec.end(), 0), true);
ASSERT_EQUAL(thrust::binary_search(vec.begin(), vec.end(), 1), false);
Expand Down Expand Up @@ -194,13 +176,7 @@ DECLARE_UNITTEST(TestScalarBinarySearchDispatchImplicit);
template <class Vector>
void TestScalarEqualRangeSimple()
{
Vector vec(5);

vec[0] = 0;
vec[1] = 2;
vec[2] = 5;
vec[3] = 7;
vec[4] = 8;
Vector vec{0, 2, 5, 7, 8};

ASSERT_EQUAL(thrust::equal_range(vec.begin(), vec.end(), 0).first - vec.begin(), 0);
ASSERT_EQUAL(thrust::equal_range(vec.begin(), vec.end(), 1).first - vec.begin(), 1);
Expand Down
32 changes: 4 additions & 28 deletions thrust/testing/binary_search_descending.cu
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,7 @@ void TestScalarLowerBoundDescendingSimple()
{
using T = typename Vector::value_type;

Vector vec(5);

vec[0] = 8;
vec[1] = 7;
vec[2] = 5;
vec[3] = 2;
vec[4] = 0;
Vector vec{8, 7, 5, 2, 0};

ASSERT_EQUAL_QUIET(vec.begin() + 4, thrust::lower_bound(vec.begin(), vec.end(), T{0}, thrust::greater<T>()));
ASSERT_EQUAL_QUIET(vec.begin() + 4, thrust::lower_bound(vec.begin(), vec.end(), T{1}, thrust::greater<T>()));
Expand All @@ -40,13 +34,7 @@ void TestScalarUpperBoundDescendingSimple()
{
using T = typename Vector::value_type;

Vector vec(5);

vec[0] = 8;
vec[1] = 7;
vec[2] = 5;
vec[3] = 2;
vec[4] = 0;
Vector vec{8, 7, 5, 2, 0};

ASSERT_EQUAL_QUIET(vec.begin() + 5, thrust::upper_bound(vec.begin(), vec.end(), T{0}, thrust::greater<T>()));
ASSERT_EQUAL_QUIET(vec.begin() + 4, thrust::upper_bound(vec.begin(), vec.end(), T{1}, thrust::greater<T>()));
Expand All @@ -66,13 +54,7 @@ void TestScalarBinarySearchDescendingSimple()
{
using T = typename Vector::value_type;

Vector vec(5);

vec[0] = 8;
vec[1] = 7;
vec[2] = 5;
vec[3] = 2;
vec[4] = 0;
Vector vec{8, 7, 5, 2, 0};

ASSERT_EQUAL(true, thrust::binary_search(vec.begin(), vec.end(), T{0}, thrust::greater<T>()));
ASSERT_EQUAL(false, thrust::binary_search(vec.begin(), vec.end(), T{1}, thrust::greater<T>()));
Expand All @@ -92,13 +74,7 @@ void TestScalarEqualRangeDescendingSimple()
{
using T = typename Vector::value_type;

Vector vec(5);

vec[0] = 8;
vec[1] = 7;
vec[2] = 5;
vec[3] = 2;
vec[4] = 0;
Vector vec{8, 7, 5, 2, 0};

ASSERT_EQUAL_QUIET(vec.begin() + 4, thrust::equal_range(vec.begin(), vec.end(), T{0}, thrust::greater<T>()).first);
ASSERT_EQUAL_QUIET(vec.begin() + 4, thrust::equal_range(vec.begin(), vec.end(), T{1}, thrust::greater<T>()).first);
Expand Down
72 changes: 11 additions & 61 deletions thrust/testing/binary_search_vector.cu
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,7 @@ struct vector_like
template <class Vector>
void TestVectorLowerBoundSimple()
{
Vector vec(5);

vec[0] = 0;
vec[1] = 2;
vec[2] = 5;
vec[3] = 7;
vec[4] = 8;
Vector vec{0, 2, 5, 7, 8};

Vector input(10);
thrust::sequence(input.begin(), input.end());
Expand All @@ -47,16 +41,8 @@ void TestVectorLowerBoundSimple()

ASSERT_EQUAL((output_end - integral_output.begin()), 10);

ASSERT_EQUAL(integral_output[0], 0);
ASSERT_EQUAL(integral_output[1], 1);
ASSERT_EQUAL(integral_output[2], 1);
ASSERT_EQUAL(integral_output[3], 2);
ASSERT_EQUAL(integral_output[4], 2);
ASSERT_EQUAL(integral_output[5], 2);
ASSERT_EQUAL(integral_output[6], 3);
ASSERT_EQUAL(integral_output[7], 3);
ASSERT_EQUAL(integral_output[8], 4);
ASSERT_EQUAL(integral_output[9], 5);
IntVector ref{0, 1, 1, 2, 2, 2, 3, 3, 4, 5};
ASSERT_EQUAL(integral_output, ref);

// // test with interator output type
// using IteratorVector = typename vector_like<Vector, typename Vector::iterator>::type;
Expand Down Expand Up @@ -120,13 +106,7 @@ DECLARE_UNITTEST(TestVectorLowerBoundDispatchImplicit);
template <class Vector>
void TestVectorUpperBoundSimple()
{
Vector vec(5);

vec[0] = 0;
vec[1] = 2;
vec[2] = 5;
vec[3] = 7;
vec[4] = 8;
Vector vec{0, 2, 5, 7, 8};

Vector input(10);
thrust::sequence(input.begin(), input.end());
Expand All @@ -141,16 +121,8 @@ void TestVectorUpperBoundSimple()

ASSERT_EQUAL((output_end - integral_output.begin()), 10);

ASSERT_EQUAL(integral_output[0], 1);
ASSERT_EQUAL(integral_output[1], 1);
ASSERT_EQUAL(integral_output[2], 2);
ASSERT_EQUAL(integral_output[3], 2);
ASSERT_EQUAL(integral_output[4], 2);
ASSERT_EQUAL(integral_output[5], 3);
ASSERT_EQUAL(integral_output[6], 3);
ASSERT_EQUAL(integral_output[7], 4);
ASSERT_EQUAL(integral_output[8], 5);
ASSERT_EQUAL(integral_output[9], 5);
IntVector ref{1, 1, 2, 2, 2, 3, 3, 4, 5, 5};
ASSERT_EQUAL(integral_output, ref);

// // test with interator output type
// using IteratorVector = typename vector_like<Vector, typename Vector::iterator>::type;
Expand Down Expand Up @@ -214,13 +186,7 @@ DECLARE_UNITTEST(TestVectorUpperBoundDispatchImplicit);
template <class Vector>
void TestVectorBinarySearchSimple()
{
Vector vec(5);

vec[0] = 0;
vec[1] = 2;
vec[2] = 5;
vec[3] = 7;
vec[4] = 8;
Vector vec{0, 2, 5, 7, 8};

Vector input(10);
thrust::sequence(input.begin(), input.end());
Expand All @@ -236,16 +202,8 @@ void TestVectorBinarySearchSimple()

ASSERT_EQUAL((bool_output_end - bool_output.begin()), 10);

ASSERT_EQUAL(bool_output[0], true);
ASSERT_EQUAL(bool_output[1], false);
ASSERT_EQUAL(bool_output[2], true);
ASSERT_EQUAL(bool_output[3], false);
ASSERT_EQUAL(bool_output[4], false);
ASSERT_EQUAL(bool_output[5], true);
ASSERT_EQUAL(bool_output[6], false);
ASSERT_EQUAL(bool_output[7], true);
ASSERT_EQUAL(bool_output[8], true);
ASSERT_EQUAL(bool_output[9], false);
BoolVector bool_ref{true, false, true, false, false, true, false, true, true, false};
ASSERT_EQUAL(bool_output, bool_ref);

// test with integral output type
IntVector integral_output(10, 2);
Expand All @@ -254,16 +212,8 @@ void TestVectorBinarySearchSimple()

ASSERT_EQUAL((int_output_end - integral_output.begin()), 10);

ASSERT_EQUAL(integral_output[0], 1);
ASSERT_EQUAL(integral_output[1], 0);
ASSERT_EQUAL(integral_output[2], 1);
ASSERT_EQUAL(integral_output[3], 0);
ASSERT_EQUAL(integral_output[4], 0);
ASSERT_EQUAL(integral_output[5], 1);
ASSERT_EQUAL(integral_output[6], 0);
ASSERT_EQUAL(integral_output[7], 1);
ASSERT_EQUAL(integral_output[8], 1);
ASSERT_EQUAL(integral_output[9], 0);
IntVector int_ref{1, 0, 1, 0, 0, 1, 0, 1, 1, 0};
ASSERT_EQUAL(integral_output, int_ref);
}
DECLARE_VECTOR_UNITTEST(TestVectorBinarySearchSimple);

Expand Down
Loading

0 comments on commit 3427c58

Please sign in to comment.