diff options
author | max42 <max42@yandex-team.com> | 2023-06-30 03:37:03 +0300 |
---|---|---|
committer | max42 <max42@yandex-team.com> | 2023-06-30 03:37:03 +0300 |
commit | fac2bd72b4b31ec3238292caf8fb2a8aaa6d6c4a (patch) | |
tree | b8cbc1deb00309c7f1a7ab6df520a76cf0b5c6d7 /library/cpp/skiff/unittests/skiff_schema_ut.cpp | |
parent | 7bf166b1a7ed0af927f230022b245af618e998c1 (diff) | |
download | ydb-fac2bd72b4b31ec3238292caf8fb2a8aaa6d6c4a.tar.gz |
YT-19324: move YT provider to ydb/library/yql
This commit is formed by the following script: https://paste.yandex-team.ru/6f92e4b8-efc5-4d34-948b-15ee2accd7e7/text.
This commit has zero effect on all projects that depend on YQL.
The summary of changes:
- `yql/providers/yt -> ydb/library/yql/providers/yt `- the whole implementation of YT provider is moved into YDB code base for further export as a part of YT YQL plugin shared library;
- `yql/providers/stat/{expr_nodes,uploader} -> ydb/library/yql/providers/stat/{expr_nodes,uploader}` - a small interface without implementation and the description of stat expr nodes;
- `yql/core/extract_predicate/ut -> ydb/library/yql/core/extract_predicate/ut`;
- `yql/core/{ut,ut_common} -> ydb/library/yql/core/{ut,ut_common}`;
- `yql/core` is gone;
- `yql/library/url_preprocessing -> ydb/library/yql/core/url_preprocessing`.
**NB**: all new targets inside `ydb/` are under `IF (NOT CMAKE_EXPORT)` clause which disables them from open-source cmake generation and ya make build. They will be enabled in the subsequent commits.
Diffstat (limited to 'library/cpp/skiff/unittests/skiff_schema_ut.cpp')
-rw-r--r-- | library/cpp/skiff/unittests/skiff_schema_ut.cpp | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/library/cpp/skiff/unittests/skiff_schema_ut.cpp b/library/cpp/skiff/unittests/skiff_schema_ut.cpp new file mode 100644 index 0000000000..c20a560dfc --- /dev/null +++ b/library/cpp/skiff/unittests/skiff_schema_ut.cpp @@ -0,0 +1,148 @@ +#include <library/cpp/skiff/skiff.h> +#include <library/cpp/skiff/skiff_schema.h> + +#include <library/cpp/testing/unittest/registar.h> + +#include <util/stream/buffer.h> + +using namespace NSkiff; + +//////////////////////////////////////////////////////////////////////////////// + +template<> +void Out<TSkiffSchema>(IOutputStream& s, const TSkiffSchema& schema) +{ + s << "TSkiffSchema:" << GetShortDebugString(schema.shared_from_this()); +} + +//////////////////////////////////////////////////////////////////////////////// + +Y_UNIT_TEST_SUITE(TSkiffSchemaTestSuite) { + Y_UNIT_TEST(TestIntEqual) + { + std::shared_ptr<TSkiffSchema> schema1 = CreateSimpleTypeSchema(EWireType::Uint64); + schema1->SetName("schema"); + + std::shared_ptr<TSkiffSchema> schema2 = CreateSimpleTypeSchema(EWireType::Uint64); + schema2->SetName("schema"); + + UNIT_ASSERT_VALUES_EQUAL(*schema1, *schema2); + } + + Y_UNIT_TEST(TestTupleEqual) + { + std::shared_ptr<TSkiffSchema> schema1 = CreateTupleSchema({ + CreateSimpleTypeSchema(EWireType::Int64), + CreateSimpleTypeSchema(EWireType::String32), + }); + + std::shared_ptr<TSkiffSchema> schema2 = CreateTupleSchema({ + CreateSimpleTypeSchema(EWireType::Int64), + CreateSimpleTypeSchema(EWireType::String32), + }); + + Cerr << *schema1 << Endl; + + schema1->SetName("schema"); + UNIT_ASSERT_VALUES_UNEQUAL(*schema1, *schema2); + + schema2->SetName("schema"); + UNIT_ASSERT_VALUES_EQUAL(*schema1, *schema2); + } + + Y_UNIT_TEST(TestHashes) + { + TSet<size_t> hashes; + + auto schema = CreateSimpleTypeSchema(EWireType::Uint64); + schema->SetName("schema"); + hashes.insert(THash<NSkiff::TSkiffSchema>()(*schema)); + + schema = CreateSimpleTypeSchema(EWireType::Uint64); + hashes.insert(THash<NSkiff::TSkiffSchema>()(*schema)); + + auto schema2 = CreateTupleSchema({ + CreateSimpleTypeSchema(EWireType::Int64), + CreateSimpleTypeSchema(EWireType::String32), + }); + schema2->SetName("s"); + hashes.insert(THash<NSkiff::TSkiffSchema>()(*schema2)); + + schema2->SetName("s0"); + hashes.insert(THash<NSkiff::TSkiffSchema>()(*schema2)); + + schema2->SetName("s"); + hashes.insert(THash<NSkiff::TSkiffSchema>()(*schema2)); + + auto schema3 = CreateRepeatedVariant16Schema({ + CreateSimpleTypeSchema(EWireType::Int64), + schema2, + }); + hashes.insert(THash<NSkiff::TSkiffSchema>()(*schema3)); + + schema3->SetName("kek"); + hashes.insert(THash<NSkiff::TSkiffSchema>()(*schema3)); + + auto schema4 = CreateRepeatedVariant8Schema({ + CreateSimpleTypeSchema(EWireType::Int64), + schema2, + }); + hashes.insert(THash<NSkiff::TSkiffSchema>()(*schema4)); + + schema4->SetName("kek"); + hashes.insert(THash<NSkiff::TSkiffSchema>()(*schema4)); + + UNIT_ASSERT_VALUES_EQUAL(hashes.size(), 8); + } + + Y_UNIT_TEST(TestDifferent) + { + TVector<std::shared_ptr<TSkiffSchema>> schemas; + + auto schema = CreateSimpleTypeSchema(EWireType::Uint64); + schema->SetName("schema"); + schemas.push_back(schema); + schemas.push_back(CreateSimpleTypeSchema(EWireType::Uint64)); + + auto schema2 = CreateTupleSchema({ + CreateSimpleTypeSchema(EWireType::Int64), + CreateSimpleTypeSchema(EWireType::String32), + }); + schema2->SetName("s"); + schemas.push_back(schema2); + + auto schema3 = CreateTupleSchema({ + CreateSimpleTypeSchema(EWireType::Int64), + CreateSimpleTypeSchema(EWireType::String32), + }); + schema3->SetName("s0"); + schemas.push_back(schema3); + + auto schema4 = CreateRepeatedVariant16Schema({ + CreateSimpleTypeSchema(EWireType::Int64), + schema2, + }); + schemas.push_back(schema4); + + auto schema5 = CreateRepeatedVariant16Schema({ + CreateSimpleTypeSchema(EWireType::Int64), + schema2, + }); + schema5->SetName("kek"); + schemas.push_back(schema5); + + auto schema6 = CreateRepeatedVariant8Schema({ + CreateSimpleTypeSchema(EWireType::Int64), + schema2, + }); + schemas.push_back(schema6); + + for (size_t i = 0; i < schemas.size(); ++i) { + for (size_t j = i + 1; j < schemas.size(); ++j) { + UNIT_ASSERT_VALUES_UNEQUAL(*schemas[i], *schemas[j]); + } + } + } +} + +//////////////////////////////////////////////////////////////////////////////// |