@@ -3900,6 +3900,7 @@ class TestArrayDataStatistics : public ::testing::Test {
39003900 void SetUp () {
39013901 valids_ = {1 , 0 , 1 , 1 };
39023902 null_count_ = std::count (valids_.begin (), valids_.end (), 0 );
3903+ distinct_count_ = 3.0 ;
39033904 average_byte_width_ = 4.0 ;
39043905 null_buffer_ = *internal::BytesToBits (valids_);
39053906 values_ = {1 , 0 , 3 , -4 };
@@ -3910,6 +3911,7 @@ class TestArrayDataStatistics : public ::testing::Test {
39103911 null_count_);
39113912 data_->statistics = std::make_shared<ArrayStatistics>();
39123913 data_->statistics ->null_count = null_count_;
3914+ data_->statistics ->distinct_count = distinct_count_;
39133915 data_->statistics ->average_byte_width = average_byte_width_;
39143916 data_->statistics ->is_average_byte_width_exact = true ;
39153917 data_->statistics ->min = min_;
@@ -3921,6 +3923,7 @@ class TestArrayDataStatistics : public ::testing::Test {
39213923 protected:
39223924 std::vector<uint8_t > valids_;
39233925 size_t null_count_;
3926+ double distinct_count_;
39243927 double average_byte_width_;
39253928 std::shared_ptr<Buffer> null_buffer_;
39263929 std::vector<int32_t > values_;
@@ -3937,6 +3940,10 @@ TEST_F(TestArrayDataStatistics, MoveConstructor) {
39373940 ASSERT_TRUE (moved_data.statistics ->null_count .has_value ());
39383941 ASSERT_EQ (null_count_, moved_data.statistics ->null_count .value ());
39393942
3943+ ASSERT_TRUE (moved_data.statistics ->distinct_count .has_value ());
3944+ ASSERT_DOUBLE_EQ (distinct_count_,
3945+ std::get<double >(moved_data.statistics ->distinct_count .value ()));
3946+
39403947 ASSERT_TRUE (moved_data.statistics ->average_byte_width .has_value ());
39413948 ASSERT_DOUBLE_EQ (average_byte_width_,
39423949 moved_data.statistics ->average_byte_width .value ());
@@ -3959,6 +3966,10 @@ TEST_F(TestArrayDataStatistics, CopyConstructor) {
39593966 ASSERT_TRUE (copied_data.statistics ->null_count .has_value ());
39603967 ASSERT_EQ (null_count_, copied_data.statistics ->null_count .value ());
39613968
3969+ ASSERT_TRUE (copied_data.statistics ->distinct_count .has_value ());
3970+ ASSERT_DOUBLE_EQ (distinct_count_,
3971+ std::get<double >(copied_data.statistics ->distinct_count .value ()));
3972+
39623973 ASSERT_TRUE (copied_data.statistics ->average_byte_width .has_value ());
39633974 ASSERT_DOUBLE_EQ (average_byte_width_,
39643975 copied_data.statistics ->average_byte_width .value ());
@@ -3983,6 +3994,10 @@ TEST_F(TestArrayDataStatistics, MoveAssignment) {
39833994 ASSERT_TRUE (moved_data.statistics ->null_count .has_value ());
39843995 ASSERT_EQ (null_count_, moved_data.statistics ->null_count .value ());
39853996
3997+ ASSERT_TRUE (moved_data.statistics ->distinct_count .has_value ());
3998+ ASSERT_DOUBLE_EQ (distinct_count_,
3999+ std::get<double >(moved_data.statistics ->distinct_count .value ()));
4000+
39864001 ASSERT_TRUE (moved_data.statistics ->average_byte_width .has_value ());
39874002 ASSERT_DOUBLE_EQ (average_byte_width_,
39884003 moved_data.statistics ->average_byte_width .value ());
@@ -4006,6 +4021,10 @@ TEST_F(TestArrayDataStatistics, CopyAssignment) {
40064021 ASSERT_TRUE (copied_data.statistics ->null_count .has_value ());
40074022 ASSERT_EQ (null_count_, copied_data.statistics ->null_count .value ());
40084023
4024+ ASSERT_TRUE (copied_data.statistics ->distinct_count .has_value ());
4025+ ASSERT_DOUBLE_EQ (distinct_count_,
4026+ std::get<double >(copied_data.statistics ->distinct_count .value ()));
4027+
40094028 ASSERT_TRUE (copied_data.statistics ->average_byte_width .has_value ());
40104029 ASSERT_DOUBLE_EQ (average_byte_width_,
40114030 copied_data.statistics ->average_byte_width .value ());
0 commit comments