Fix IsDense. (#5702)

This commit is contained in:
Jiaming Yuan
2020-05-26 08:24:37 +08:00
committed by GitHub
parent e35ad8a074
commit 8438c7d0e4
2 changed files with 25 additions and 5 deletions

View File

@@ -129,3 +129,22 @@ TEST(DeviceDMatrix, Equivalent) {
}
}
}
TEST(DeviceDMatrix, IsDense) {
int num_bins = 16;
auto test = [num_bins] (float sparsity) {
HostDeviceVector<float> data;
std::string interface_str = RandomDataGenerator{10, 10, sparsity}
.Device(0).GenerateArrayInterface(&data);
data::CupyAdapter x{interface_str};
std::unique_ptr<data::DeviceDMatrix> device_dmat{ new data::DeviceDMatrix(
&x, std::numeric_limits<float>::quiet_NaN(), 1, num_bins) };
if (sparsity == 0.0) {
ASSERT_TRUE(device_dmat->IsDense()) << sparsity;
} else {
ASSERT_FALSE(device_dmat->IsDense());
}
};
test(0.0);
test(0.1);
}