| 154 | } |
| 155 | |
| 156 | TEST(TestTableEquality, Equals) { |
| 157 | const int32_t length = 10; |
| 158 | |
| 159 | auto f0 = field("f0", int32()); |
| 160 | auto f1 = field("f1", uint8()); |
| 161 | auto f2 = field("f2", int16()); |
| 162 | |
| 163 | auto schema = ::arrow::schema({f0, f1, f2}); |
| 164 | auto schema_same = ::arrow::schema({f0, f1, f2}); |
| 165 | auto schema_fewer_fields = ::arrow::schema({f0, f1}); |
| 166 | |
| 167 | random::RandomArrayGenerator gen(42); |
| 168 | |
| 169 | auto a_f0 = gen.ArrayOf(int32(), length); |
| 170 | auto a_f1 = gen.ArrayOf(uint8(), length); |
| 171 | auto a_f2 = gen.ArrayOf(int16(), length); |
| 172 | auto a_f0_half = a_f0->Slice(0, length / 2); |
| 173 | auto a_f1_half = a_f1->Slice(0, length / 2); |
| 174 | auto a_f2_half = a_f2->Slice(0, length / 2); |
| 175 | auto a_f0_different = gen.ArrayOf(int32(), length); |
| 176 | auto a_f1_different = gen.ArrayOf(uint8(), length); |
| 177 | auto a_f2_different = gen.ArrayOf(uint16(), length); |
| 178 | |
| 179 | auto table = Table::Make(schema, {a_f0, a_f1, a_f2}, length); |
| 180 | auto table_same = Table::Make(schema_same, {a_f0, a_f1, a_f2}, length); |
| 181 | auto table_fewer_fields = Table::Make(schema_fewer_fields, {a_f0, a_f1}, length); |
| 182 | auto table_half = |
| 183 | Table::Make(schema_fewer_fields, {a_f0_half, a_f1_half, a_f2_half}, length / 2); |
| 184 | auto table_different = Table::Make( |
| 185 | schema_fewer_fields, {a_f0_different, a_f1_different, a_f2_different}, length); |
| 186 | |
| 187 | // Same Values |
| 188 | ASSERT_TRUE(table->Equals(*table_same)); |
| 189 | |
| 190 | // Different number of columns |
| 191 | ASSERT_FALSE(table->Equals(*table_fewer_fields)); |
| 192 | |
| 193 | // Different number of rows |
| 194 | ASSERT_FALSE(table->Equals(*table_half)); |
| 195 | |
| 196 | // Different values |
| 197 | ASSERT_FALSE(table->Equals(*table_different)); |
| 198 | } |
| 199 | |
| 200 | TEST(TestTableEquality, MetadataAndSchema) { |
| 201 | const int32_t length = 10; |
nothing calls this directly
no test coverage detected