pack_ut.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334
  1. #include <yql/essentials/minikql/mkql_alloc.h>
  2. #include <yql/essentials/minikql/mkql_node.h>
  3. #include <yql/essentials/minikql/mkql_string_util.h>
  4. #include <yql/essentials/minikql/mkql_program_builder.h>
  5. #include <yql/essentials/minikql/mkql_function_registry.h>
  6. #include <yql/essentials/minikql/invoke_builtins/mkql_builtins.h>
  7. #include <yql/essentials/minikql/computation/mkql_computation_node_holders.h>
  8. #include <yql/essentials/minikql/computation/mkql_computation_node_pack.h>
  9. #include <library/cpp/testing/unittest/registar.h>
  10. namespace NYql {
  11. Y_UNIT_TEST_SUITE(TPGPackTests) {
  12. Y_UNIT_TEST(UnknownTypeAsString) {
  13. using namespace NKikimr::NMiniKQL;
  14. TScopedAlloc alloc(__LOCATION__);
  15. TTypeEnvironment env(alloc);
  16. TIntrusivePtr<IFunctionRegistry> functionRegistry(CreateFunctionRegistry(CreateBuiltinRegistry()));
  17. TProgramBuilder pgmBuilder(env, *functionRegistry);
  18. TMemoryUsageInfo memInfo("Memory");
  19. THolderFactory holderFactory(alloc.Ref(), memInfo, functionRegistry.Get());
  20. auto pgType = pgmBuilder.NewPgType(0xffffffff);
  21. TValuePacker pgPacker(false, pgType);
  22. NUdf::TUnboxedValue s = MakeString(NUdf::TStringRef::Of("foo"));
  23. auto p = pgPacker.Pack(s);
  24. auto u = pgPacker.Unpack(p, holderFactory);
  25. UNIT_ASSERT_VALUES_EQUAL(TStringBuf(u.AsStringRef()), "foo");
  26. }
  27. }
  28. }