summaryrefslogtreecommitdiffstats
path: root/yql/essentials/udfs/common/python/bindings/py_variant_ut.cpp
diff options
context:
space:
mode:
authorvvvv <[email protected]>2025-10-06 13:26:25 +0300
committervvvv <[email protected]>2025-10-06 14:06:25 +0300
commiteca8ce9cb1613d5c983185c4e43c20651a9638aa (patch)
tree61ee5ae779948e61af9a7691d19eaa2c09869121 /yql/essentials/udfs/common/python/bindings/py_variant_ut.cpp
parent4adf7eecae16a9b228b28cc5f64c27ef69ad5ec2 (diff)
YQL-20086 udfs
init commit_hash:f9684778bf1ea956965f2360b80b91edb7d4ffbe
Diffstat (limited to 'yql/essentials/udfs/common/python/bindings/py_variant_ut.cpp')
-rw-r--r--yql/essentials/udfs/common/python/bindings/py_variant_ut.cpp157
1 files changed, 76 insertions, 81 deletions
diff --git a/yql/essentials/udfs/common/python/bindings/py_variant_ut.cpp b/yql/essentials/udfs/common/python/bindings/py_variant_ut.cpp
index d792449d828..adfdd2a09b7 100644
--- a/yql/essentials/udfs/common/python/bindings/py_variant_ut.cpp
+++ b/yql/essentials/udfs/common/python/bindings/py_variant_ut.cpp
@@ -3,99 +3,94 @@
#include <library/cpp/testing/unittest/registar.h>
-
using namespace NPython;
Y_UNIT_TEST_SUITE(TPyVariantTest) {
- Y_UNIT_TEST(FromPyWithIndex) {
- TPythonTestEngine engine;
- engine.ToMiniKQL<NUdf::TVariant<float, ui32, char*>>(
- "def Test():\n"
- " return (2, 'hello')\n",
- [](const NUdf::TUnboxedValuePod& value) {
- UNIT_ASSERT(value);
- UNIT_ASSERT_EQUAL(value.GetVariantIndex(), 2);
- auto item = value.GetVariantItem();
- UNIT_ASSERT_STRINGS_EQUAL(item.AsStringRef(), "hello");
- });
- }
+Y_UNIT_TEST(FromPyWithIndex) {
+ TPythonTestEngine engine;
+ engine.ToMiniKQL<NUdf::TVariant<float, ui32, char*>>(
+ "def Test():\n"
+ " return (2, 'hello')\n",
+ [](const NUdf::TUnboxedValuePod& value) {
+ UNIT_ASSERT(value);
+ UNIT_ASSERT_EQUAL(value.GetVariantIndex(), 2);
+ auto item = value.GetVariantItem();
+ UNIT_ASSERT_STRINGS_EQUAL(item.AsStringRef(), "hello");
+ });
+}
- Y_UNIT_TEST(FromPyWithName) {
- TPythonTestEngine engine;
+Y_UNIT_TEST(FromPyWithName) {
+ TPythonTestEngine engine;
- ui32 ageIdx = 0, nameIdx = 0;
- NUdf::TType* personType = engine.GetTypeBuilder().Struct()->
- AddField<ui32>("age", &ageIdx)
- .AddField<char*>("name", &nameIdx)
- .Build();
+ ui32 ageIdx = 0, nameIdx = 0;
+ NUdf::TType* personType = engine.GetTypeBuilder().Struct()->AddField<ui32>("age", &ageIdx).AddField<char*>("name", &nameIdx).Build();
- NUdf::TType* variantType = engine.GetTypeBuilder()
- .Variant()->Over(personType).Build();
+ NUdf::TType* variantType = engine.GetTypeBuilder()
+ .Variant()
+ ->Over(personType)
+ .Build();
- engine.ToMiniKQL(
- variantType,
- "def Test():\n"
- " return ('age', 99)\n",
- [ageIdx](const NUdf::TUnboxedValuePod& value) {
- UNIT_ASSERT(value);
- UNIT_ASSERT_EQUAL(value.GetVariantIndex(), ageIdx);
- auto item = value.GetVariantItem();
- UNIT_ASSERT_EQUAL(item.Get<ui32>(), 99);
- });
+ engine.ToMiniKQL(
+ variantType,
+ "def Test():\n"
+ " return ('age', 99)\n",
+ [ageIdx](const NUdf::TUnboxedValuePod& value) {
+ UNIT_ASSERT(value);
+ UNIT_ASSERT_EQUAL(value.GetVariantIndex(), ageIdx);
+ auto item = value.GetVariantItem();
+ UNIT_ASSERT_EQUAL(item.Get<ui32>(), 99);
+ });
- engine.ToMiniKQL(
- variantType,
- "def Test():\n"
- " return ('name', 'Jamel')\n",
- [nameIdx](const NUdf::TUnboxedValuePod& value) {
- UNIT_ASSERT(value);
- UNIT_ASSERT_EQUAL(value.GetVariantIndex(), nameIdx);
- auto item = value.GetVariantItem();
- UNIT_ASSERT_STRINGS_EQUAL(item.AsStringRef(), "Jamel");
- });
- }
+ engine.ToMiniKQL(
+ variantType,
+ "def Test():\n"
+ " return ('name', 'Jamel')\n",
+ [nameIdx](const NUdf::TUnboxedValuePod& value) {
+ UNIT_ASSERT(value);
+ UNIT_ASSERT_EQUAL(value.GetVariantIndex(), nameIdx);
+ auto item = value.GetVariantItem();
+ UNIT_ASSERT_STRINGS_EQUAL(item.AsStringRef(), "Jamel");
+ });
+}
- Y_UNIT_TEST(ToPyWithIndex) {
- TPythonTestEngine engine;
- engine.ToPython<NUdf::TVariant<float, ui32, char*>>(
- [](const TType* /*type*/, const NUdf::IValueBuilder& vb) {
- return vb.NewVariant(1, NUdf::TUnboxedValuePod((ui32) 42));
- },
- "def Test(value):\n"
- " assert isinstance(value, tuple)\n"
- " assert value == (1, 42)\n");
- }
+Y_UNIT_TEST(ToPyWithIndex) {
+ TPythonTestEngine engine;
+ engine.ToPython<NUdf::TVariant<float, ui32, char*>>(
+ [](const TType* /*type*/, const NUdf::IValueBuilder& vb) {
+ return vb.NewVariant(1, NUdf::TUnboxedValuePod((ui32)42));
+ },
+ "def Test(value):\n"
+ " assert isinstance(value, tuple)\n"
+ " assert value == (1, 42)\n");
+}
- Y_UNIT_TEST(ToPyWithName) {
- TPythonTestEngine engine;
+Y_UNIT_TEST(ToPyWithName) {
+ TPythonTestEngine engine;
- ui32 ageIdx = 0, nameIdx = 0;
- NUdf::TType* personType = engine.GetTypeBuilder().Struct()->
- AddField<ui32>("age", &ageIdx)
- .AddField<NUdf::TUtf8>("name", &nameIdx)
- .Build();
+ ui32 ageIdx = 0, nameIdx = 0;
+ NUdf::TType* personType = engine.GetTypeBuilder().Struct()->AddField<ui32>("age", &ageIdx).AddField<NUdf::TUtf8>("name", &nameIdx).Build();
- NUdf::TType* variantType = engine.GetTypeBuilder()
- .Variant()->Over(personType).Build();
+ NUdf::TType* variantType = engine.GetTypeBuilder()
+ .Variant()
+ ->Over(personType)
+ .Build();
- engine.ToPython(
- variantType,
- [ageIdx](const TType* /*type*/, const NUdf::IValueBuilder& vb) {
- return vb.NewVariant(ageIdx, NUdf::TUnboxedValuePod((ui32) 99));
- },
- "def Test(value):\n"
- " assert isinstance(value, tuple)\n"
- " assert value == ('age', 99)\n"
- );
+ engine.ToPython(
+ variantType,
+ [ageIdx](const TType* /*type*/, const NUdf::IValueBuilder& vb) {
+ return vb.NewVariant(ageIdx, NUdf::TUnboxedValuePod((ui32)99));
+ },
+ "def Test(value):\n"
+ " assert isinstance(value, tuple)\n"
+ " assert value == ('age', 99)\n");
- engine.ToPython(
- variantType,
- [nameIdx](const TType* /*type*/, const NUdf::IValueBuilder& vb) {
- return vb.NewVariant(nameIdx, vb.NewString("Jamel"));
- },
- "def Test(value):\n"
- " assert isinstance(value, tuple)\n"
- " assert value == ('name', 'Jamel')\n"
- );
- }
+ engine.ToPython(
+ variantType,
+ [nameIdx](const TType* /*type*/, const NUdf::IValueBuilder& vb) {
+ return vb.NewVariant(nameIdx, vb.NewString("Jamel"));
+ },
+ "def Test(value):\n"
+ " assert isinstance(value, tuple)\n"
+ " assert value == ('name', 'Jamel')\n");
}
+} // Y_UNIT_TEST_SUITE(TPyVariantTest)