Skip to content
25 changes: 19 additions & 6 deletions cpp/tests/groupby/groupby_test_util.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: Copyright (c) 2020-2024, NVIDIA CORPORATION.
* SPDX-FileCopyrightText: Copyright (c) 2020-2025, NVIDIA CORPORATION.
* SPDX-License-Identifier: Apache-2.0
*/

Expand Down Expand Up @@ -27,8 +27,12 @@ void test_single_agg(cudf::column_view const& keys,
cudf::sorted keys_are_sorted,
std::vector<cudf::order> const& column_order,
std::vector<cudf::null_order> const& null_precedence,
cudf::sorted reference_keys_are_sorted)
cudf::sorted reference_keys_are_sorted,
std::source_location const& location)
{
SCOPED_TRACE("Original failure location: " + std::string{location.file_name()} + ":" +
std::to_string(location.line()));

auto const [sorted_expect_keys, sorted_expect_vals] = [&]() {
if (reference_keys_are_sorted == cudf::sorted::NO) {
auto const sort_expect_order =
Expand Down Expand Up @@ -86,7 +90,8 @@ void test_single_agg(cudf::column_view const& keys,
void test_sum_agg(cudf::column_view const& keys,
cudf::column_view const& values,
cudf::column_view const& expected_keys,
cudf::column_view const& expected_values)
cudf::column_view const& expected_values,
std::source_location const& location)
{
auto const do_test = [&](auto const use_sort_option) {
test_single_agg(keys,
Expand All @@ -95,7 +100,12 @@ void test_sum_agg(cudf::column_view const& keys,
expected_values,
cudf::make_sum_aggregation<cudf::groupby_aggregation>(),
use_sort_option,
cudf::null_policy::INCLUDE);
cudf::null_policy::INCLUDE,
cudf::sorted::NO,
{},
{},
cudf::sorted::NO,
location);
};
do_test(force_use_sort_impl::YES);
do_test(force_use_sort_impl::NO);
Expand All @@ -109,12 +119,15 @@ void test_single_scan(cudf::column_view const& keys,
cudf::null_policy include_null_keys,
cudf::sorted keys_are_sorted,
std::vector<cudf::order> const& column_order,
std::vector<cudf::null_order> const& null_precedence)
std::vector<cudf::null_order> const& null_precedence,
std::source_location const& location)
{
SCOPED_TRACE("Original failure location: " + std::string{location.file_name()} + ":" +
std::to_string(location.line()));

std::vector<cudf::groupby::scan_request> requests;
requests.emplace_back();
requests[0].values = values;

requests[0].aggregations.push_back(std::move(agg));

cudf::groupby::groupby gb_obj(
Expand Down
14 changes: 9 additions & 5 deletions cpp/tests/groupby/groupby_test_util.hpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: Copyright (c) 2020-2024, NVIDIA CORPORATION.
* SPDX-FileCopyrightText: Copyright (c) 2020-2025, NVIDIA CORPORATION.
* SPDX-License-Identifier: Apache-2.0
*/

Expand All @@ -8,6 +8,8 @@
#include <cudf/groupby.hpp>
#include <cudf/types.hpp>

#include <source_location>

enum class force_use_sort_impl : bool { NO, YES };

void test_single_agg(cudf::column_view const& keys,
Expand All @@ -20,12 +22,13 @@ void test_single_agg(cudf::column_view const& keys,
cudf::sorted keys_are_sorted = cudf::sorted::NO,
std::vector<cudf::order> const& column_order = {},
std::vector<cudf::null_order> const& null_precedence = {},
cudf::sorted reference_keys_are_sorted = cudf::sorted::NO);

cudf::sorted reference_keys_are_sorted = cudf::sorted::NO,
std::source_location const& location = std::source_location::current());
void test_sum_agg(cudf::column_view const& keys,
cudf::column_view const& values,
cudf::column_view const& expected_keys,
cudf::column_view const& expected_values);
cudf::column_view const& expected_values,
std::source_location const& location = std::source_location::current());

void test_single_scan(cudf::column_view const& keys,
cudf::column_view const& values,
Expand All @@ -35,4 +38,5 @@ void test_single_scan(cudf::column_view const& keys,
cudf::null_policy include_null_keys = cudf::null_policy::EXCLUDE,
cudf::sorted keys_are_sorted = cudf::sorted::NO,
std::vector<cudf::order> const& column_order = {},
std::vector<cudf::null_order> const& null_precedence = {});
std::vector<cudf::null_order> const& null_precedence = {},
std::source_location const& location = std::source_location::current());
Loading