| 53 | }; |
| 54 | |
| 55 | TEST_F(TestChunkedArray, Make) { |
| 56 | ASSERT_RAISES(Invalid, ChunkedArray::Make({})); |
| 57 | |
| 58 | ASSERT_OK_AND_ASSIGN(std::shared_ptr<ChunkedArray> result, |
| 59 | ChunkedArray::Make({}, int64())); |
| 60 | AssertTypeEqual(*int64(), *result->type()); |
| 61 | ASSERT_EQ(result->num_chunks(), 0); |
| 62 | // Empty chunked arrays are treated as CPU-allocated. |
| 63 | ASSERT_TRUE(result->is_cpu()); |
| 64 | |
| 65 | auto chunk0 = ArrayFromJSON(int8(), "[0, 1, 2]"); |
| 66 | auto chunk1 = ArrayFromJSON(int16(), "[3, 4, 5]"); |
| 67 | |
| 68 | ASSERT_OK_AND_ASSIGN(result, ChunkedArray::Make({chunk0, chunk0})); |
| 69 | ASSERT_OK_AND_ASSIGN(auto result2, ChunkedArray::Make({chunk0, chunk0}, int8())); |
| 70 | // All chunks are CPU-accessible. |
| 71 | ASSERT_TRUE(result->is_cpu()); |
| 72 | ASSERT_TRUE(result2->is_cpu()); |
| 73 | AssertChunkedEqual(*result, *result2); |
| 74 | |
| 75 | ASSERT_RAISES(TypeError, ChunkedArray::Make({chunk0, chunk1})); |
| 76 | ASSERT_RAISES(TypeError, ChunkedArray::Make({chunk0}, int16())); |
| 77 | } |
| 78 | |
| 79 | TEST_F(TestChunkedArray, MakeEmpty) { |
| 80 | ASSERT_OK_AND_ASSIGN(std::shared_ptr<ChunkedArray> empty, |
nothing calls this directly
no test coverage detected