18 #include <gtest/gtest.h>
24 using namespace impala;
27 TEST(StitchNullsTest, OneByteStitch) {
30 for (
int i = 0; i < 8; ++i) {
33 ASSERT_TRUE(to.size() == 1);
34 ASSERT_EQ(to[0], 0xF >> i);
39 TEST(StitchNullsTest, MultiByteStitch) {
43 for (
int i = 0; i < 16; ++i) {
49 ASSERT_EQ(to.size(), 2);
50 ASSERT_EQ(to[0], (
char)0xFF);
51 ASSERT_EQ(to[1], (
char)(0xFF >> i));
54 ASSERT_EQ(to.size(), 1);
55 ASSERT_EQ(to[0], (
char)(0xFF >> (i - 8)));
61 TEST(StitchNullsTest, StitchOverlapping) {
64 for (
int i = 1; i < 9; ++i) {
70 ASSERT_EQ(to[0], 0x3);
72 ASSERT_EQ(to.size(), 1);
74 ASSERT_EQ(to.size(), 2);
75 ASSERT_EQ(to[1], 0x0);
82 TEST(StitchNullsTest, StitchWithOffset) {
89 for (
int i = 0; i < 4; ++i) {
93 ASSERT_EQ(to.size(), 2);
94 ASSERT_EQ(to[1], from[i]);
97 for (
int i = 0; i < 4; ++i) {
103 ASSERT_EQ(to.size(), 1);
105 ASSERT_EQ(to[0], 0x3);
109 int main(
int argc,
char** argv) {
110 ::testing::InitGoogleTest(&argc, argv);
111 return RUN_ALL_TESTS();
void StitchNulls(uint32_t num_rows_before, uint32_t num_rows_added, uint32_t start_idx, const std::string &from, std::string *to)
int main(int argc, char **argv)