@@ -965,3 +965,93 @@ TEST(ColumnsCase, ColumnMapT_Wrap) {
965965 EXPECT_EQ (" 123" , map_view.At (1 ));
966966 EXPECT_EQ (" abc" , map_view.At (2 ));
967967}
968+
969+ TEST (ColumnsCase, ReservedAndCapacity) {
970+ std::vector<std::shared_ptr<Column>> columns;
971+
972+ #define RaC_TEST_CASE (test_id_in, column_type ) \
973+ case test_id_in: { \
974+ columns.push_back (std::make_shared<column_type>()); \
975+ auto column = std::static_pointer_cast<column_type>(columns[test_id_in]); \
976+ column->Reserve (100u ); \
977+ ASSERT_EQ (column->Capacity (), 100u ); \
978+ ASSERT_EQ (columns[test_id_in]->Size (), 0u ); \
979+ break ; \
980+ }
981+
982+ for (uint8_t rac_test_id = 0 ; rac_test_id < 14 ; ++rac_test_id) {
983+ switch (rac_test_id) {
984+ RaC_TEST_CASE ( 0 , ColumnUInt8);
985+ RaC_TEST_CASE ( 1 , ColumnUInt16);
986+ RaC_TEST_CASE ( 2 , ColumnUInt32);
987+ RaC_TEST_CASE ( 3 , ColumnUInt64);
988+ RaC_TEST_CASE ( 4 , ColumnInt8);
989+ RaC_TEST_CASE ( 5 , ColumnInt16);
990+ RaC_TEST_CASE ( 6 , ColumnInt32);
991+ RaC_TEST_CASE ( 7 , ColumnInt64);
992+ RaC_TEST_CASE ( 8 , ColumnInt128);
993+ RaC_TEST_CASE ( 9 , ColumnFloat32);
994+ RaC_TEST_CASE (10 , ColumnFloat64);
995+ RaC_TEST_CASE (11 , ColumnDate);
996+ RaC_TEST_CASE (12 , ColumnDate32);
997+ RaC_TEST_CASE (13 , ColumnDateTime);
998+ default : {
999+ EXPECT_NE (0 , 0 );
1000+ break ;
1001+ }
1002+ }
1003+ }
1004+ }
1005+
1006+ TEST (ColumnsCase, RawVector) {
1007+ std::vector<std::shared_ptr<Column>> columns;
1008+
1009+ #define RV_TEST_CASE (test_id_in, column_type ) \
1010+ case test_id_in: { \
1011+ columns.push_back (std::make_shared<column_type>()); \
1012+ auto column = std::static_pointer_cast<column_type>(columns[test_id_in]); \
1013+ column->Append (10u ); \
1014+ column->Append (20u ); \
1015+ ASSERT_EQ (columns[test_id_in]->Size (), 2u ); \
1016+ auto column_v = column->GetRawVector (); \
1017+ ASSERT_EQ (static_cast <uint32_t >(column_v[0 ]), 10u ); \
1018+ ASSERT_EQ (static_cast <uint32_t >(column_v[1 ]), 20u ); \
1019+ break ; \
1020+ }
1021+
1022+ #define RV_TEST_CASE_D (test_id_in, column_type ) \
1023+ case test_id_in: { \
1024+ columns.push_back (std::make_shared<column_type>()); \
1025+ auto column = std::static_pointer_cast<column_type>(columns[test_id_in]); \
1026+ column->AppendRaw (10u ); \
1027+ column->AppendRaw (20u ); \
1028+ ASSERT_EQ (columns[test_id_in]->Size (), 2u ); \
1029+ auto column_v = column->GetRawVector (); \
1030+ ASSERT_EQ (static_cast <uint32_t >(column_v[0 ]), 10u ); \
1031+ ASSERT_EQ (static_cast <uint32_t >(column_v[1 ]), 20u ); \
1032+ break ; \
1033+ }
1034+
1035+ for (uint8_t rv_test_id = 0 ; rv_test_id < 14 ; ++rv_test_id) {
1036+ switch (rv_test_id) {
1037+ RV_TEST_CASE ( 0 , ColumnUInt8);
1038+ RV_TEST_CASE ( 1 , ColumnUInt16);
1039+ RV_TEST_CASE ( 2 , ColumnUInt32);
1040+ RV_TEST_CASE ( 3 , ColumnUInt64);
1041+ RV_TEST_CASE ( 4 , ColumnInt8);
1042+ RV_TEST_CASE ( 5 , ColumnInt16);
1043+ RV_TEST_CASE ( 6 , ColumnInt32);
1044+ RV_TEST_CASE ( 7 , ColumnInt64);
1045+ RV_TEST_CASE ( 8 , ColumnInt128);
1046+ RV_TEST_CASE ( 9 , ColumnFloat32);
1047+ RV_TEST_CASE ( 10 , ColumnFloat64);
1048+ RV_TEST_CASE_D ( 11 , ColumnDate);
1049+ RV_TEST_CASE_D ( 12 , ColumnDate32);
1050+ RV_TEST_CASE_D ( 13 , ColumnDateTime);
1051+ default : {
1052+ EXPECT_NE (0 , 0 );
1053+ break ;
1054+ }
1055+ }
1056+ }
1057+ }
0 commit comments