| 58 | using ::arrow::internal::CountSetBits; |
| 59 | |
| 60 | TEST(ExecBatch, SliceBasics) { |
| 61 | int64_t length = 4, cut_length = 2, left_length = length - cut_length; |
| 62 | ExecBatch batch{{Int32Scalar(0), ArrayFromJSON(utf8(), R"(["a", "b", "c", "d"])"), |
| 63 | ChunkedArrayFromJSON(float64(), {"[1.1]", "[2.2]", "[3.3]", "[4.4]"})}, |
| 64 | length}; |
| 65 | std::vector<ExecBatch> expected_sliced{ |
| 66 | {{Int32Scalar(0), ArrayFromJSON(utf8(), R"(["a", "b"])"), |
| 67 | ChunkedArrayFromJSON(float64(), {"[1.1]", "[2.2]"})}, |
| 68 | cut_length}, |
| 69 | {{Int32Scalar(0), ArrayFromJSON(utf8(), R"(["c", "d"])"), |
| 70 | ChunkedArrayFromJSON(float64(), {"[3.3]", "[4.4]"})}, |
| 71 | left_length}}; |
| 72 | std::vector<ExecBatch> actual_sliced = {batch.Slice(0, cut_length), |
| 73 | batch.Slice(cut_length, left_length)}; |
| 74 | for (size_t i = 0; i < expected_sliced.size(); i++) { |
| 75 | ASSERT_EQ(expected_sliced[i].length, actual_sliced[i].length); |
| 76 | ASSERT_EQ(expected_sliced[i].values.size(), actual_sliced[i].values.size()); |
| 77 | for (size_t j = 0; j < expected_sliced[i].values.size(); j++) { |
| 78 | AssertDatumsEqual(expected_sliced[i].values[j], actual_sliced[i].values[j]); |
| 79 | } |
| 80 | ASSERT_EQ(expected_sliced[i].ToString(), actual_sliced[i].ToString()); |
| 81 | } |
| 82 | } |
| 83 | |
| 84 | TEST(ExecBatch, ToRecordBatch) { |
| 85 | auto i32_array = ArrayFromJSON(int32(), "[0, 1, 2]"); |
nothing calls this directly
no test coverage detected