@@ -70,9 +70,10 @@ class GenericColumnTest : public testing::Test {
7070 return GenerateVector (values_size, FromVectorGenerator{MakeDecimals (3 , 10 )});
7171 } else if constexpr (std::is_same_v<ColumnType, ColumnUUID>) {
7272 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>) {
7574 // 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>) {
7677 // OR ColumnFloatX
7778 return GenerateVector<typename ColumnType::ValueType>(values_size, RandomGenerator<typename ColumnType::ValueType>());
7879 }
@@ -107,16 +108,35 @@ using ValueColumns = ::testing::Types<
107108>;
108109TYPED_TEST_SUITE (GenericColumnTest, ValueColumns);
109110
111+ TYPED_TEST (GenericColumnTest, Construct) {
112+ auto column = this ->MakeColumn ();
113+ ASSERT_EQ (0u , column->Size ());
114+ }
110115
111116TYPED_TEST (GenericColumnTest, EmptyColumn) {
112117 auto column = this ->MakeColumn ();
113118 ASSERT_EQ (0u , column->Size ());
114119
120+ // verify that Column methods work as expected on empty column:
121+ // some throw exceptions, some return poper values (like CloneEmpty)
122+
115123 // Shouldn't be able to get items on empty column.
116124 ASSERT_ANY_THROW (column->At (0 ));
117125
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 ()));
120140}
121141
122142TYPED_TEST (GenericColumnTest, Append) {
0 commit comments