| 20 | using namespace bytedance::bolt; |
| 21 | |
| 22 | TEST(VariantTypeTest, Basic) { |
| 23 | auto variantType = VARIANT(); |
| 24 | EXPECT_EQ(variantType->kind(), TypeKind::VARIANT); |
| 25 | EXPECT_EQ(variantType->toString(), "VARIANT"); |
| 26 | EXPECT_EQ(variantType->name(), "VARIANT"); |
| 27 | EXPECT_EQ(variantType->kindName(), "VARIANT"); |
| 28 | // VARIANT is NOT a primitive type (it has composite storage via |
| 29 | // VariantVector). |
| 30 | EXPECT_FALSE(variantType->isPrimitiveType()); |
| 31 | EXPECT_FALSE(variantType->isFixedWidth()); |
| 32 | // VARIANT comparison is byte-level and NOT semantically correct, so |
| 33 | // isOrderable/isComparable are false to prevent incorrect GROUP BY/JOIN/etc. |
| 34 | EXPECT_FALSE(variantType->isOrderable()); |
| 35 | EXPECT_FALSE(variantType->isComparable()); |
| 36 | EXPECT_EQ(variantType->size(), 2); |
| 37 | EXPECT_NO_THROW(variantType->childAt(0)); |
| 38 | EXPECT_EQ(variantType->cppSizeInBytes(), sizeof(VariantValue)); |
| 39 | } |
| 40 | |
| 41 | TEST(VariantTypeTest, Factory) { |
| 42 | auto t1 = TypeFactory<TypeKind::VARIANT>::create(); |
nothing calls this directly
no test coverage detected