Extract partial sum into an independent function. (#7889)
This commit is contained in:
33
tests/cpp/common/test_numeric.cc
Normal file
33
tests/cpp/common/test_numeric.cc
Normal file
@@ -0,0 +1,33 @@
|
||||
/*!
|
||||
* Copyright 2022, XGBoost contributors.
|
||||
*/
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <numeric>
|
||||
|
||||
#include "../../../src/common/numeric.h"
|
||||
|
||||
namespace xgboost {
|
||||
namespace common {
|
||||
TEST(Numeric, PartialSum) {
|
||||
{
|
||||
std::vector<size_t> values{1, 2, 3, 4};
|
||||
std::vector<size_t> result(values.size() + 1);
|
||||
Context ctx;
|
||||
PartialSum(ctx.Threads(), values.begin(), values.end(), static_cast<size_t>(0), result.begin());
|
||||
std::vector<size_t> sol(values.size() + 1, 0);
|
||||
std::partial_sum(values.begin(), values.end(), sol.begin() + 1);
|
||||
ASSERT_EQ(sol, result);
|
||||
}
|
||||
{
|
||||
std::vector<double> values{1.5, 2.5, 3.5, 4.5};
|
||||
std::vector<double> result(values.size() + 1);
|
||||
Context ctx;
|
||||
PartialSum(ctx.Threads(), values.begin(), values.end(), 0.0, result.begin());
|
||||
std::vector<double> sol(values.size() + 1, 0.0);
|
||||
std::partial_sum(values.begin(), values.end(), sol.begin() + 1);
|
||||
ASSERT_EQ(sol, result);
|
||||
}
|
||||
}
|
||||
} // namespace common
|
||||
} // namespace xgboost
|
||||
@@ -3,6 +3,7 @@
|
||||
*/
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "../../../src/common/numeric.h"
|
||||
#include "../../../src/tree/updater_approx.h"
|
||||
#include "../helpers.h"
|
||||
#include "test_partitioner.h"
|
||||
|
||||
Reference in New Issue
Block a user