MCPcopy Create free account
hub / github.com/apache/arrow / TEST_F

Function TEST_F

cpp/src/arrow/array/array_test.cc:104–182  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

102}
103
104TEST_F(TestArray, TestNullCount) {
105 // These are placeholders
106 auto data = std::make_shared<Buffer>(nullptr, 0);
107 auto null_bitmap = std::make_shared<Buffer>(nullptr, 0);
108
109 std::shared_ptr<Int32Array> arr(new Int32Array(100, data, null_bitmap, 10));
110 ASSERT_EQ(10, arr->ComputeLogicalNullCount());
111 ASSERT_EQ(10, arr->null_count());
112 ASSERT_TRUE(arr->data()->MayHaveNulls());
113 ASSERT_TRUE(arr->data()->MayHaveLogicalNulls());
114
115 std::shared_ptr<Int32Array> arr_no_nulls(new Int32Array(100, data));
116 ASSERT_EQ(0, arr_no_nulls->ComputeLogicalNullCount());
117 ASSERT_EQ(0, arr_no_nulls->null_count());
118 ASSERT_FALSE(arr_no_nulls->data()->MayHaveNulls());
119 ASSERT_FALSE(arr_no_nulls->data()->MayHaveLogicalNulls());
120
121 std::shared_ptr<Int32Array> arr_default_null_count(
122 new Int32Array(100, data, null_bitmap));
123 ASSERT_EQ(kUnknownNullCount, arr_default_null_count->data()->null_count);
124 ASSERT_TRUE(arr_default_null_count->data()->MayHaveNulls());
125 ASSERT_TRUE(arr_default_null_count->data()->MayHaveLogicalNulls());
126
127 RunEndEncodedBuilder ree_builder(pool_, std::make_shared<Int32Builder>(pool_),
128 std::make_shared<Int32Builder>(pool_),
129 run_end_encoded(int32(), int32()));
130 ASSERT_OK(ree_builder.AppendScalar(*MakeScalar<int32_t>(2), 2));
131 ASSERT_OK(ree_builder.AppendNull());
132 ASSERT_OK(ree_builder.AppendScalar(*MakeScalar<int32_t>(4), 3));
133 ASSERT_OK(ree_builder.AppendNulls(2));
134 ASSERT_OK(ree_builder.AppendScalar(*MakeScalar<int32_t>(8), 5));
135 ASSERT_OK(ree_builder.AppendNulls(7));
136 ASSERT_OK_AND_ASSIGN(auto ree, ree_builder.Finish());
137
138 ASSERT_EQ(0, ree->null_count());
139 ASSERT_EQ(10, ree->ComputeLogicalNullCount());
140 ASSERT_FALSE(ree->data()->MayHaveNulls());
141 ASSERT_TRUE(ree->data()->MayHaveLogicalNulls());
142
143 ASSERT_OK(ree_builder.AppendScalar(*MakeScalar<int32_t>(2), 2));
144 ASSERT_OK(ree_builder.AppendScalar(*MakeScalar<int32_t>(4), 3));
145 ASSERT_OK(ree_builder.AppendScalar(*MakeScalar<int32_t>(8), 5));
146 ASSERT_OK_AND_ASSIGN(auto ree_no_nulls, ree_builder.Finish());
147 ASSERT_EQ(0, ree_no_nulls->null_count());
148 ASSERT_EQ(0, ree_no_nulls->ComputeLogicalNullCount());
149 ASSERT_FALSE(ree_no_nulls->data()->MayHaveNulls());
150 ASSERT_FALSE(ree_no_nulls->data()->MayHaveLogicalNulls());
151
152 // Dictionary type
153 std::shared_ptr<arrow::DataType> type;
154 std::shared_ptr<arrow::DataType> dict_type;
155
156 for (const auto& index_type : all_dictionary_index_types()) {
157 ARROW_SCOPED_TRACE("index_type = ", index_type->ToString());
158
159 type = boolean();
160 dict_type = dictionary(index_type, type);
161 // no null value

Callers

nothing calls this directly

Calls 15

run_end_encodedFunction · 0.85
CheckDictionaryNullCountFunction · 0.85
DictArrayFromJSONFunction · 0.85
WrapFunction · 0.85
check_dataFunction · 0.85
MakeArrayFromValidBytesFunction · 0.85
FinishAndCheckPaddingFunction · 0.85
sparse_unionFunction · 0.85
MakeArrayOfNullFunction · 0.85
dense_unionFunction · 0.85
AssertScalarsEqualFunction · 0.85

Tested by

no test coverage detected