| 63 | class TestRecordBatch : public ::testing::Test {}; |
| 64 | |
| 65 | TEST_F(TestRecordBatch, Equals) { |
| 66 | const int length = 10; |
| 67 | |
| 68 | auto f0 = field("f0", int32()); |
| 69 | auto f1 = field("f1", uint8()); |
| 70 | auto f2 = field("f2", int16()); |
| 71 | |
| 72 | auto schema = ::arrow::schema({f0, f1, f2}); |
| 73 | auto schema_same = ::arrow::schema({f0, f1, f2}); |
| 74 | auto schema_fewer_fields = ::arrow::schema({f0, f1}); |
| 75 | |
| 76 | random::RandomArrayGenerator gen(42); |
| 77 | |
| 78 | auto a_f0 = gen.ArrayOf(int32(), length); |
| 79 | auto a_f1 = gen.ArrayOf(uint8(), length); |
| 80 | auto a_f2 = gen.ArrayOf(int16(), length); |
| 81 | auto a_f0_half = a_f0->Slice(0, length / 2); |
| 82 | auto a_f1_half = a_f1->Slice(0, length / 2); |
| 83 | auto a_f0_different = gen.ArrayOf(int32(), length); |
| 84 | auto a_f1_different = gen.ArrayOf(uint8(), length); |
| 85 | |
| 86 | auto b = RecordBatch::Make(schema, length, {a_f0, a_f1, a_f2}); |
| 87 | auto b_same = RecordBatch::Make(schema_same, length, {a_f0, a_f1, a_f2}); |
| 88 | auto b_fewer_fields = RecordBatch::Make(schema_fewer_fields, length, {a_f0, a_f1}); |
| 89 | auto b_fewer_fields_half = |
| 90 | RecordBatch::Make(schema_fewer_fields, length / 2, {a_f0_half, a_f1_half}); |
| 91 | auto b_fewer_fields_different = |
| 92 | RecordBatch::Make(schema_fewer_fields, length, {a_f0_different, a_f1_different}); |
| 93 | |
| 94 | // Same Values |
| 95 | ASSERT_TRUE(b->Equals(*b_same)); |
| 96 | |
| 97 | // Different number of columns |
| 98 | ASSERT_FALSE(b->Equals(*b_fewer_fields)); |
| 99 | |
| 100 | // Different number of rows |
| 101 | ASSERT_FALSE(b_fewer_fields->Equals(*b_fewer_fields_half)); |
| 102 | |
| 103 | // Different values |
| 104 | ASSERT_FALSE(b_fewer_fields->Equals(*b_fewer_fields_different)); |
| 105 | } |
| 106 | |
| 107 | class TestRecordBatchEqualOptions : public TestRecordBatch {}; |
| 108 |
no test coverage detected