Skip to content

Commit cc451b6

Browse files
authored
Expand CPU quantile property tests and remove redundant cases (#12155)
1 parent d6bcff3 commit cc451b6

3 files changed

Lines changed: 559 additions & 408 deletions

File tree

tests/cpp/common/test_hist_util.cc

Lines changed: 0 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -121,85 +121,6 @@ TEST(ParallelGHistBuilder, Reset) { ParallelGHistBuilderReset(); }
121121

122122
TEST(ParallelGHistBuilder, ReduceHist) { ParallelGHistBuilderReduceHist(); }
123123

124-
TEST(HistUtil, DenseCutsCategorical) {
125-
Context ctx;
126-
int categorical_sizes[] = {2, 6, 8, 12};
127-
int num_bins = 256;
128-
int sizes[] = {25, 100, 1000};
129-
for (auto n : sizes) {
130-
for (auto num_categories : categorical_sizes) {
131-
auto x = GenerateRandomCategoricalSingleColumn(n, num_categories);
132-
std::vector<float> x_sorted(x);
133-
std::sort(x_sorted.begin(), x_sorted.end());
134-
auto dmat = GetDMatrixFromData(x, n, 1);
135-
HistogramCuts cuts = SketchOnDMatrix(&ctx, dmat.get(), num_bins);
136-
auto cuts_from_sketch = cuts.Values();
137-
EXPECT_GT(cuts_from_sketch.front(), x_sorted.front());
138-
EXPECT_GE(cuts_from_sketch.back(), x_sorted.back());
139-
EXPECT_EQ(cuts_from_sketch.size(), static_cast<size_t>(num_categories));
140-
}
141-
}
142-
}
143-
144-
TEST(HistUtil, DenseCutsAccuracyTest) {
145-
Context ctx;
146-
int bin_sizes[] = {2, 16, 256, 512};
147-
int sizes[] = {100};
148-
int num_columns = 5;
149-
for (auto num_rows : sizes) {
150-
auto x = GenerateRandom(num_rows, num_columns);
151-
auto dmat = GetDMatrixFromData(x, num_rows, num_columns);
152-
for (auto num_bins : bin_sizes) {
153-
HistogramCuts cuts = SketchOnDMatrix(&ctx, dmat.get(), num_bins);
154-
ValidateCuts(cuts, dmat.get(), num_bins);
155-
}
156-
}
157-
}
158-
159-
TEST(HistUtil, DenseCutsAccuracyTestWeights) {
160-
int bin_sizes[] = {2, 16, 256, 512};
161-
int sizes[] = {100, 1000, 1500};
162-
int num_columns = 5;
163-
Context ctx;
164-
for (auto num_rows : sizes) {
165-
auto x = GenerateRandom(num_rows, num_columns);
166-
auto dmat = GetDMatrixFromData(x, num_rows, num_columns);
167-
auto w = GenerateRandomWeights(num_rows);
168-
dmat->Info().weights_.HostVector() = w;
169-
for (auto num_bins : bin_sizes) {
170-
{
171-
HistogramCuts cuts = SketchOnDMatrix(&ctx, dmat.get(), num_bins, true);
172-
ValidateCuts(cuts, dmat.get(), num_bins);
173-
}
174-
{
175-
HistogramCuts cuts = SketchOnDMatrix(&ctx, dmat.get(), num_bins, false);
176-
ValidateCuts(cuts, dmat.get(), num_bins);
177-
}
178-
}
179-
}
180-
}
181-
182-
TEST(HistUtil, SortedWeightedExactCuts) {
183-
Context ctx;
184-
std::vector<float> x{0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f};
185-
std::vector<float> weights{3.0f, 0.25f, 7.0f, 2.0f, 0.5f, 4.0f};
186-
auto dmat = GetDMatrixFromData(x, x.size(), 1);
187-
dmat->Info().weights_.HostVector() = weights;
188-
189-
auto sorted_cuts = SketchOnDMatrix(&ctx, dmat.get(), x.size(), true);
190-
auto row_cuts = SketchOnDMatrix(&ctx, dmat.get(), x.size(), false);
191-
192-
ASSERT_EQ(sorted_cuts.Ptrs(), row_cuts.Ptrs());
193-
ASSERT_EQ(sorted_cuts.Values().size(), row_cuts.Values().size());
194-
ASSERT_EQ(sorted_cuts.Values().size(), x.size());
195-
for (std::size_t i = 1; i < x.size(); ++i) {
196-
EXPECT_FLOAT_EQ(sorted_cuts.Values()[i - 1], x[i]);
197-
EXPECT_FLOAT_EQ(sorted_cuts.Values()[i - 1], row_cuts.Values()[i - 1]);
198-
}
199-
EXPECT_GT(sorted_cuts.Values().back(), x.back());
200-
EXPECT_FLOAT_EQ(sorted_cuts.Values().back(), row_cuts.Values().back());
201-
}
202-
203124
void TestQuantileWithHessian(bool use_sorted) {
204125
int bin_sizes[] = {2, 16, 256, 512};
205126
int sizes[] = {1000, 1500};
@@ -424,13 +345,4 @@ TEST(HistUtil, GroupWeightsEquivalentToRowWeights) {
424345
TestGroupWeightsEquivalentToRowWeights(false);
425346
}
426347

427-
TEST(HistUtil, SketchCategoricalFeatures) {
428-
Context ctx;
429-
TestCategoricalSketch(1000, 256, 32, false, [&ctx](DMatrix* p_fmat, int32_t num_bins) {
430-
return SketchOnDMatrix(&ctx, p_fmat, num_bins);
431-
});
432-
TestCategoricalSketch(1000, 256, 32, true, [&ctx](DMatrix* p_fmat, int32_t num_bins) {
433-
return SketchOnDMatrix(&ctx, p_fmat, num_bins);
434-
});
435-
}
436348
} // namespace xgboost::common

0 commit comments

Comments
 (0)