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

Function ValidateBasicStructArray

cpp/src/arrow/array/array_struct_test.cc:41–78  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

39// Struct tests
40
41void ValidateBasicStructArray(const StructArray* result,
42 const std::vector<uint8_t>& struct_is_valid,
43 const std::vector<char>& list_values,
44 const std::vector<uint8_t>& list_is_valid,
45 const std::vector<int>& list_lengths,
46 const std::vector<int>& list_offsets,
47 const std::vector<int32_t>& int_values) {
48 ASSERT_EQ(4, result->length());
49 ASSERT_OK(result->ValidateFull());
50
51 auto list_char_arr = std::dynamic_pointer_cast<ListArray>(result->field(0));
52 auto char_arr = std::dynamic_pointer_cast<Int8Array>(list_char_arr->values());
53 auto int32_arr = std::dynamic_pointer_cast<Int32Array>(result->field(1));
54
55 ASSERT_EQ(nullptr, result->GetFieldByName("nonexistent"));
56 ASSERT_TRUE(list_char_arr->Equals(result->GetFieldByName("list")));
57 ASSERT_TRUE(int32_arr->Equals(result->GetFieldByName("int")));
58
59 ASSERT_EQ(0, result->null_count());
60 ASSERT_EQ(1, list_char_arr->null_count());
61 ASSERT_EQ(0, int32_arr->null_count());
62
63 // List<char>
64 ASSERT_EQ(4, list_char_arr->length());
65 ASSERT_EQ(10, list_char_arr->values()->length());
66 for (size_t i = 0; i < list_offsets.size(); ++i) {
67 ASSERT_EQ(list_offsets[i], list_char_arr->raw_value_offsets()[i]);
68 }
69 for (size_t i = 0; i < list_values.size(); ++i) {
70 ASSERT_EQ(list_values[i], char_arr->Value(i));
71 }
72
73 // Int32
74 ASSERT_EQ(4, int32_arr->length());
75 for (size_t i = 0; i < int_values.size(); ++i) {
76 ASSERT_EQ(int_values[i], int32_arr->Value(i));
77 }
78}
79
80TEST(StructArray, FromFieldNames) {
81 std::shared_ptr<Array> a, b, c, array, expected;

Callers 1

TEST_FFunction · 0.85

Calls 10

lengthMethod · 0.45
ValidateFullMethod · 0.45
fieldMethod · 0.45
valuesMethod · 0.45
GetFieldByNameMethod · 0.45
EqualsMethod · 0.45
null_countMethod · 0.45
sizeMethod · 0.45
raw_value_offsetsMethod · 0.45
ValueMethod · 0.45

Tested by

no test coverage detected