@@ -70,9 +70,10 @@ class GenericColumnTest : public testing::Test {
70
70
return GenerateVector (values_size, FromVectorGenerator{MakeDecimals (3 , 10 )});
71
71
} else if constexpr (std::is_same_v<ColumnType, ColumnUUID>) {
72
72
return GenerateVector (values_size, FromVectorGenerator{MakeUUIDs ()});
73
- } else if constexpr (std::is_integral_v<typename ColumnType::ValueType>
74
- || std::is_floating_point_v<typename ColumnType::ValueType>) {
73
+ } else if constexpr (std::is_integral_v<typename ColumnType::ValueType>) {
75
74
// ColumnUIntX and ColumnIntX
75
+ return GenerateVector<typename ColumnType::ValueType>(values_size, RandomGenerator<int >());
76
+ } else if constexpr (std::is_floating_point_v<typename ColumnType::ValueType>) {
76
77
// OR ColumnFloatX
77
78
return GenerateVector<typename ColumnType::ValueType>(values_size, RandomGenerator<typename ColumnType::ValueType>());
78
79
}
@@ -107,16 +108,35 @@ using ValueColumns = ::testing::Types<
107
108
>;
108
109
TYPED_TEST_SUITE (GenericColumnTest, ValueColumns);
109
110
111
+ TYPED_TEST (GenericColumnTest, Construct) {
112
+ auto column = this ->MakeColumn ();
113
+ ASSERT_EQ (0u , column->Size ());
114
+ }
110
115
111
116
TYPED_TEST (GenericColumnTest, EmptyColumn) {
112
117
auto column = this ->MakeColumn ();
113
118
ASSERT_EQ (0u , column->Size ());
114
119
120
+ // verify that Column methods work as expected on empty column:
121
+ // some throw exceptions, some return poper values (like CloneEmpty)
122
+
115
123
// Shouldn't be able to get items on empty column.
116
124
ASSERT_ANY_THROW (column->At (0 ));
117
125
118
- // TODO: verify that Column methods work as expected on empty column:
119
- // some throw exceptions, some return poper values (like CloneEmpty)
126
+ {
127
+ auto slice = column->Slice (0 , 0 );
128
+ ASSERT_NO_THROW (slice->template AsStrict <typename TestFixture::ColumnType>());
129
+ ASSERT_EQ (0u , slice->Size ());
130
+ }
131
+
132
+ {
133
+ auto clone = column->CloneEmpty ();
134
+ ASSERT_NO_THROW (clone->template AsStrict <typename TestFixture::ColumnType>());
135
+ ASSERT_EQ (0u , clone->Size ());
136
+ }
137
+
138
+ ASSERT_NO_THROW (column->Clear ());
139
+ ASSERT_NO_THROW (column->Swap (*this ->MakeColumn ()));
120
140
}
121
141
122
142
TYPED_TEST (GenericColumnTest, Append) {
0 commit comments