diff options
author | vvvv <[email protected]> | 2025-10-06 13:26:25 +0300 |
---|---|---|
committer | vvvv <[email protected]> | 2025-10-06 14:06:25 +0300 |
commit | eca8ce9cb1613d5c983185c4e43c20651a9638aa (patch) | |
tree | 61ee5ae779948e61af9a7691d19eaa2c09869121 /yql/essentials/udfs/common/python/bindings/py_tuple_ut.cpp | |
parent | 4adf7eecae16a9b228b28cc5f64c27ef69ad5ec2 (diff) |
YQL-20086 udfs
init
commit_hash:f9684778bf1ea956965f2360b80b91edb7d4ffbe
Diffstat (limited to 'yql/essentials/udfs/common/python/bindings/py_tuple_ut.cpp')
-rw-r--r-- | yql/essentials/udfs/common/python/bindings/py_tuple_ut.cpp | 183 |
1 files changed, 91 insertions, 92 deletions
diff --git a/yql/essentials/udfs/common/python/bindings/py_tuple_ut.cpp b/yql/essentials/udfs/common/python/bindings/py_tuple_ut.cpp index f465f0ebb68..905a5ec382a 100644 --- a/yql/essentials/udfs/common/python/bindings/py_tuple_ut.cpp +++ b/yql/essentials/udfs/common/python/bindings/py_tuple_ut.cpp @@ -2,107 +2,106 @@ #include <library/cpp/testing/unittest/registar.h> - using namespace NPython; Y_UNIT_TEST_SUITE(TPyTupleTest) { - Y_UNIT_TEST(FromPyEmptyTuple) { - TPythonTestEngine engine; - engine.ToMiniKQL<NUdf::TTuple<>>( - "def Test(): return ()", - [](const NUdf::TUnboxedValuePod&) {}); - } +Y_UNIT_TEST(FromPyEmptyTuple) { + TPythonTestEngine engine; + engine.ToMiniKQL<NUdf::TTuple<>>( + "def Test(): return ()", + [](const NUdf::TUnboxedValuePod&) {}); +} - Y_UNIT_TEST(FromPyList) { - TPythonTestEngine engine; - engine.ToMiniKQL<NUdf::TTuple<int, int, int>>( - "def Test(): return [1, 2, 3]", - [](const NUdf::TUnboxedValuePod& value) { - UNIT_ASSERT(value); - UNIT_ASSERT(value.IsBoxed()); - UNIT_ASSERT_EQUAL(value.GetElement(0).Get<int>(), 1); - UNIT_ASSERT_EQUAL(value.GetElement(1).Get<int>(), 2); - UNIT_ASSERT_EQUAL(value.GetElement(2).Get<int>(), 3); - }); - } +Y_UNIT_TEST(FromPyList) { + TPythonTestEngine engine; + engine.ToMiniKQL<NUdf::TTuple<int, int, int>>( + "def Test(): return [1, 2, 3]", + [](const NUdf::TUnboxedValuePod& value) { + UNIT_ASSERT(value); + UNIT_ASSERT(value.IsBoxed()); + UNIT_ASSERT_EQUAL(value.GetElement(0).Get<int>(), 1); + UNIT_ASSERT_EQUAL(value.GetElement(1).Get<int>(), 2); + UNIT_ASSERT_EQUAL(value.GetElement(2).Get<int>(), 3); + }); +} - Y_UNIT_TEST(FromPyIter) { - TPythonTestEngine engine; - engine.ToMiniKQL<NUdf::TTuple<int, int, int>>( - "def Test(): return iter({1, 2, 3})", - [](const NUdf::TUnboxedValuePod& value) { - UNIT_ASSERT(value); - UNIT_ASSERT(value.IsBoxed()); - UNIT_ASSERT_EQUAL(value.GetElement(0).Get<int>(), 1); - UNIT_ASSERT_EQUAL(value.GetElement(1).Get<int>(), 2); - UNIT_ASSERT_EQUAL(value.GetElement(2).Get<int>(), 3); - }); - } +Y_UNIT_TEST(FromPyIter) { + TPythonTestEngine engine; + engine.ToMiniKQL<NUdf::TTuple<int, int, int>>( + "def Test(): return iter({1, 2, 3})", + [](const NUdf::TUnboxedValuePod& value) { + UNIT_ASSERT(value); + UNIT_ASSERT(value.IsBoxed()); + UNIT_ASSERT_EQUAL(value.GetElement(0).Get<int>(), 1); + UNIT_ASSERT_EQUAL(value.GetElement(1).Get<int>(), 2); + UNIT_ASSERT_EQUAL(value.GetElement(2).Get<int>(), 3); + }); +} - Y_UNIT_TEST(FromPyTuple) { - TPythonTestEngine engine; - engine.ToMiniKQL<NUdf::TTuple<int, double, char*>>( - "def Test(): return (1, float(2.3), '4')", - [](const NUdf::TUnboxedValuePod& value) { - UNIT_ASSERT(value); - UNIT_ASSERT(value.IsBoxed()); - UNIT_ASSERT_EQUAL(value.GetElement(0).Get<int>(), 1); - auto second = value.GetElement(1); - UNIT_ASSERT_DOUBLES_EQUAL(second.Get<double>(), 2.3, 0.0001); - const auto third = value.GetElement(2); - UNIT_ASSERT_EQUAL(third.AsStringRef(), "4"); - }); - } +Y_UNIT_TEST(FromPyTuple) { + TPythonTestEngine engine; + engine.ToMiniKQL<NUdf::TTuple<int, double, char*>>( + "def Test(): return (1, float(2.3), '4')", + [](const NUdf::TUnboxedValuePod& value) { + UNIT_ASSERT(value); + UNIT_ASSERT(value.IsBoxed()); + UNIT_ASSERT_EQUAL(value.GetElement(0).Get<int>(), 1); + auto second = value.GetElement(1); + UNIT_ASSERT_DOUBLES_EQUAL(second.Get<double>(), 2.3, 0.0001); + const auto third = value.GetElement(2); + UNIT_ASSERT_EQUAL(third.AsStringRef(), "4"); + }); +} - Y_UNIT_TEST(FromPyTupleInTuple) { - TPythonTestEngine engine; - engine.ToMiniKQL<NUdf::TTuple<ui32, NUdf::TTuple<ui8, float>, char*>>( - "def Test(): return (1, (2, float(3.4)), '5')", - [](const NUdf::TUnboxedValuePod& value) { - UNIT_ASSERT(value); - UNIT_ASSERT(value.IsBoxed()); - UNIT_ASSERT_EQUAL(value.GetElement(0).Get<ui32>(), 1); +Y_UNIT_TEST(FromPyTupleInTuple) { + TPythonTestEngine engine; + engine.ToMiniKQL<NUdf::TTuple<ui32, NUdf::TTuple<ui8, float>, char*>>( + "def Test(): return (1, (2, float(3.4)), '5')", + [](const NUdf::TUnboxedValuePod& value) { + UNIT_ASSERT(value); + UNIT_ASSERT(value.IsBoxed()); + UNIT_ASSERT_EQUAL(value.GetElement(0).Get<ui32>(), 1); - auto second = value.GetElement(1); - UNIT_ASSERT(second); - UNIT_ASSERT(second.IsBoxed()); - UNIT_ASSERT_EQUAL(second.GetElement(0).Get<ui8>(), 2); - UNIT_ASSERT_DOUBLES_EQUAL( - second.GetElement(1).Get<float>(), 3.4, 0.0001); + auto second = value.GetElement(1); + UNIT_ASSERT(second); + UNIT_ASSERT(second.IsBoxed()); + UNIT_ASSERT_EQUAL(second.GetElement(0).Get<ui8>(), 2); + UNIT_ASSERT_DOUBLES_EQUAL( + second.GetElement(1).Get<float>(), 3.4, 0.0001); - const auto third = value.GetElement(2); - UNIT_ASSERT_EQUAL(third.AsStringRef(), "5"); - }); - } + const auto third = value.GetElement(2); + UNIT_ASSERT_EQUAL(third.AsStringRef(), "5"); + }); +} - Y_UNIT_TEST(ToPyEmptyTuple) { - TPythonTestEngine engine; - engine.ToPython<NUdf::TTuple<>>( - [](const TType* type, const NUdf::IValueBuilder& vb) { - NUdf::TUnboxedValue* items = nullptr; - return vb.NewArray(static_cast<const TTupleType*>(type)->GetElementsCount(), items); - }, - "def Test(value):\n" - " assert isinstance(value, tuple)\n" - " assert len(value) == 0\n" - " assert value == ()\n"); - } +Y_UNIT_TEST(ToPyEmptyTuple) { + TPythonTestEngine engine; + engine.ToPython<NUdf::TTuple<>>( + [](const TType* type, const NUdf::IValueBuilder& vb) { + NUdf::TUnboxedValue* items = nullptr; + return vb.NewArray(static_cast<const TTupleType*>(type)->GetElementsCount(), items); + }, + "def Test(value):\n" + " assert isinstance(value, tuple)\n" + " assert len(value) == 0\n" + " assert value == ()\n"); +} - Y_UNIT_TEST(ToPyTuple) { - TPythonTestEngine engine; - engine.ToPython<NUdf::TTuple<NUdf::TUtf8, ui64, ui8, float>>( - [](const TType* type, const NUdf::IValueBuilder& vb) { - NUdf::TUnboxedValue* items = nullptr; - auto tuple = vb.NewArray(static_cast<const TTupleType*>(type)->GetElementsCount(), items); - items[0] = vb.NewString("111"); - items[1] = NUdf::TUnboxedValuePod((ui64) 2); - items[2] = NUdf::TUnboxedValuePod((ui8) 3); - items[3] = NUdf::TUnboxedValuePod((float) 4.5); - return tuple; - }, - "def Test(value):\n" - " assert isinstance(value, tuple)\n" - " assert len(value) == 4\n" - " assert value == ('111', 2, 3, 4.5)\n"); - } +Y_UNIT_TEST(ToPyTuple) { + TPythonTestEngine engine; + engine.ToPython<NUdf::TTuple<NUdf::TUtf8, ui64, ui8, float>>( + [](const TType* type, const NUdf::IValueBuilder& vb) { + NUdf::TUnboxedValue* items = nullptr; + auto tuple = vb.NewArray(static_cast<const TTupleType*>(type)->GetElementsCount(), items); + items[0] = vb.NewString("111"); + items[1] = NUdf::TUnboxedValuePod((ui64)2); + items[2] = NUdf::TUnboxedValuePod((ui8)3); + items[3] = NUdf::TUnboxedValuePod((float)4.5); + return tuple; + }, + "def Test(value):\n" + " assert isinstance(value, tuple)\n" + " assert len(value) == 4\n" + " assert value == ('111', 2, 3, 4.5)\n"); } +} // Y_UNIT_TEST_SUITE(TPyTupleTest) |