diff options
author | alejes <alejes@yandex-team.ru> | 2022-02-10 16:49:21 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:49:21 +0300 |
commit | 296addf192418e73b12dd8c5110ac1a36d9dee19 (patch) | |
tree | 5d5cb817648f650d76cf1076100726fd9b8448e8 /library/cpp/yson | |
parent | b60afd91b05e759239ecb08faaf494d5c7445d4e (diff) | |
download | ydb-296addf192418e73b12dd8c5110ac1a36d9dee19.tar.gz |
Restoring authorship annotation for <alejes@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/yson')
-rw-r--r-- | library/cpp/yson/node/node.cpp | 138 | ||||
-rw-r--r-- | library/cpp/yson/node/node.h | 20 | ||||
-rw-r--r-- | library/cpp/yson/node/node_ut.cpp | 128 |
3 files changed, 143 insertions, 143 deletions
diff --git a/library/cpp/yson/node/node.cpp b/library/cpp/yson/node/node.cpp index a6b73d8933..b39e070718 100644 --- a/library/cpp/yson/node/node.cpp +++ b/library/cpp/yson/node/node.cpp @@ -22,75 +22,75 @@ bool TNode::TUndefined::operator==(const TUndefined&) const { //////////////////////////////////////////////////////////////////////////////// -namespace NNodeCmp { - -bool IsComparableType(const TNode::EType type) { - switch (type) { - case TNode::String: - case TNode::Int64: - case TNode::Uint64: - case TNode::Double: - case TNode::Bool: - case TNode::Null: - case TNode::Undefined: - return true; - default: - return false; - } -} - -bool operator<(const TNode& lhs, const TNode& rhs) -{ - if (!lhs.GetAttributes().Empty() || !rhs.GetAttributes().Empty()) { - ythrow TNode::TTypeError() << "Unsupported attributes comparison"; - } - - if (!IsComparableType(lhs.GetType()) || !IsComparableType(rhs.GetType())) { - ythrow TNode::TTypeError() << "Unsupported types for comparison: " << lhs.GetType() << " with " << rhs.GetType(); - } - - if (lhs.GetType() != rhs.GetType()) { - return lhs.GetType() < rhs.GetType(); - } - - switch (lhs.GetType()) { - case TNode::String: - return lhs.AsString() < rhs.AsString(); - case TNode::Int64: - return lhs.AsInt64() < rhs.AsInt64(); - case TNode::Uint64: - return lhs.AsUint64() < rhs.AsUint64(); - case TNode::Double: - return lhs.AsDouble() < rhs.AsDouble(); - case TNode::Bool: - return lhs.AsBool() < rhs.AsBool(); - case TNode::Null: - case TNode::Undefined: - return false; - default: - Y_FAIL("Unexpected type: %d", lhs.GetType()); - } -} - -bool operator>(const TNode& lhs, const TNode& rhs) -{ - return rhs < lhs; -} - -bool operator<=(const TNode& lhs, const TNode& rhs) -{ - return !(lhs > rhs); -} - -bool operator>=(const TNode& lhs, const TNode& rhs) -{ - return !(lhs < rhs); -} - -} // namespace NNodeCmp - -//////////////////////////////////////////////////////////////////////////////// - +namespace NNodeCmp { + +bool IsComparableType(const TNode::EType type) { + switch (type) { + case TNode::String: + case TNode::Int64: + case TNode::Uint64: + case TNode::Double: + case TNode::Bool: + case TNode::Null: + case TNode::Undefined: + return true; + default: + return false; + } +} + +bool operator<(const TNode& lhs, const TNode& rhs) +{ + if (!lhs.GetAttributes().Empty() || !rhs.GetAttributes().Empty()) { + ythrow TNode::TTypeError() << "Unsupported attributes comparison"; + } + + if (!IsComparableType(lhs.GetType()) || !IsComparableType(rhs.GetType())) { + ythrow TNode::TTypeError() << "Unsupported types for comparison: " << lhs.GetType() << " with " << rhs.GetType(); + } + + if (lhs.GetType() != rhs.GetType()) { + return lhs.GetType() < rhs.GetType(); + } + + switch (lhs.GetType()) { + case TNode::String: + return lhs.AsString() < rhs.AsString(); + case TNode::Int64: + return lhs.AsInt64() < rhs.AsInt64(); + case TNode::Uint64: + return lhs.AsUint64() < rhs.AsUint64(); + case TNode::Double: + return lhs.AsDouble() < rhs.AsDouble(); + case TNode::Bool: + return lhs.AsBool() < rhs.AsBool(); + case TNode::Null: + case TNode::Undefined: + return false; + default: + Y_FAIL("Unexpected type: %d", lhs.GetType()); + } +} + +bool operator>(const TNode& lhs, const TNode& rhs) +{ + return rhs < lhs; +} + +bool operator<=(const TNode& lhs, const TNode& rhs) +{ + return !(lhs > rhs); +} + +bool operator>=(const TNode& lhs, const TNode& rhs) +{ + return !(lhs < rhs); +} + +} // namespace NNodeCmp + +//////////////////////////////////////////////////////////////////////////////// + TNode::TNode() : Value_(TUndefined{}) { } diff --git a/library/cpp/yson/node/node.h b/library/cpp/yson/node/node.h index 7217edba83..5f90f95df0 100644 --- a/library/cpp/yson/node/node.h +++ b/library/cpp/yson/node/node.h @@ -510,14 +510,14 @@ inline const T& TNode::As() const { //////////////////////////////////////////////////////////////////////////////// -namespace NNodeCmp { - bool operator<(const TNode& lhs, const TNode& rhs); - bool operator<=(const TNode& lhs, const TNode& rhs); - bool operator>(const TNode& lhs, const TNode& rhs); - bool operator>=(const TNode& lhs, const TNode& rhs); - bool IsComparableType(const TNode::EType type); -} - -//////////////////////////////////////////////////////////////////////////////// - +namespace NNodeCmp { + bool operator<(const TNode& lhs, const TNode& rhs); + bool operator<=(const TNode& lhs, const TNode& rhs); + bool operator>(const TNode& lhs, const TNode& rhs); + bool operator>=(const TNode& lhs, const TNode& rhs); + bool IsComparableType(const TNode::EType type); +} + +//////////////////////////////////////////////////////////////////////////////// + } // namespace NYT diff --git a/library/cpp/yson/node/node_ut.cpp b/library/cpp/yson/node/node_ut.cpp index c862fdb20a..448e99f575 100644 --- a/library/cpp/yson/node/node_ut.cpp +++ b/library/cpp/yson/node/node_ut.cpp @@ -196,70 +196,70 @@ Y_UNIT_TEST_SUITE(YtNodeTest) { UNIT_ASSERT(node == copyNode); } - Y_UNIT_TEST(TestComparison) { - using namespace NYT::NNodeCmp; - { - TNode nodeNoAttributes = TNode()("lee", 42)("faa", 54); - TNode node = nodeNoAttributes; - node.Attributes()("foo", true)("bar", false); - UNIT_ASSERT_EXCEPTION(node > nodeNoAttributes, TNode::TTypeError); - UNIT_ASSERT_EXCEPTION(node >= nodeNoAttributes, TNode::TTypeError); - UNIT_ASSERT_EXCEPTION(nodeNoAttributes < node, TNode::TTypeError); - UNIT_ASSERT_EXCEPTION(nodeNoAttributes <= node, TNode::TTypeError); - } - { - TNode nodeMap = TNode()("map", 23); - TNode nodeList = TNode::CreateList(); - UNIT_ASSERT_EXCEPTION(nodeList > nodeMap, TNode::TTypeError); - UNIT_ASSERT_EXCEPTION(nodeMap < nodeList, TNode::TTypeError); - UNIT_ASSERT_EXCEPTION(nodeMap >= nodeMap, TNode::TTypeError); - UNIT_ASSERT_EXCEPTION(nodeList <= nodeList, TNode::TTypeError); - } - { - TNode node1("aaa"); - TNode node2("bbb"); - TNode node3("ccc"); - UNIT_ASSERT(node1 < node2); - UNIT_ASSERT(node1 <= node2); - UNIT_ASSERT(node1 < node3); - UNIT_ASSERT(node1 <= node3); - UNIT_ASSERT(!(node3 < node1)); - UNIT_ASSERT(!(node1 > node3)); - UNIT_ASSERT(!(node3 <= node1)); - UNIT_ASSERT(!(node1 >= node3)); - - UNIT_ASSERT(node3 > node2); - UNIT_ASSERT(node3 >= node2); - UNIT_ASSERT(node3 > node1); - UNIT_ASSERT(node3 >= node1); - - UNIT_ASSERT(node1 <= node1); - UNIT_ASSERT(node1 >= node1); - } - { - TNode node1(23); - TNode node2("bbb"); - TNode node3 = TNode::CreateEntity(); - - UNIT_ASSERT(node1 > node2); - UNIT_ASSERT(node1 >= node2); - UNIT_ASSERT(node2 < node1); - UNIT_ASSERT(node2 <= node1); - - UNIT_ASSERT(!(node1 < node2)); - UNIT_ASSERT(!(node1 <= node2)); - UNIT_ASSERT(!(node2 > node1)); - UNIT_ASSERT(!(node2 >= node1)); - - UNIT_ASSERT(node1 < node3); - UNIT_ASSERT(node2 < node3); - UNIT_ASSERT(node3 <= node3); - UNIT_ASSERT(!(node3 < node3)); - UNIT_ASSERT(!(node3 > node3)); - UNIT_ASSERT(!(node2 >= node3)); - } - } - + Y_UNIT_TEST(TestComparison) { + using namespace NYT::NNodeCmp; + { + TNode nodeNoAttributes = TNode()("lee", 42)("faa", 54); + TNode node = nodeNoAttributes; + node.Attributes()("foo", true)("bar", false); + UNIT_ASSERT_EXCEPTION(node > nodeNoAttributes, TNode::TTypeError); + UNIT_ASSERT_EXCEPTION(node >= nodeNoAttributes, TNode::TTypeError); + UNIT_ASSERT_EXCEPTION(nodeNoAttributes < node, TNode::TTypeError); + UNIT_ASSERT_EXCEPTION(nodeNoAttributes <= node, TNode::TTypeError); + } + { + TNode nodeMap = TNode()("map", 23); + TNode nodeList = TNode::CreateList(); + UNIT_ASSERT_EXCEPTION(nodeList > nodeMap, TNode::TTypeError); + UNIT_ASSERT_EXCEPTION(nodeMap < nodeList, TNode::TTypeError); + UNIT_ASSERT_EXCEPTION(nodeMap >= nodeMap, TNode::TTypeError); + UNIT_ASSERT_EXCEPTION(nodeList <= nodeList, TNode::TTypeError); + } + { + TNode node1("aaa"); + TNode node2("bbb"); + TNode node3("ccc"); + UNIT_ASSERT(node1 < node2); + UNIT_ASSERT(node1 <= node2); + UNIT_ASSERT(node1 < node3); + UNIT_ASSERT(node1 <= node3); + UNIT_ASSERT(!(node3 < node1)); + UNIT_ASSERT(!(node1 > node3)); + UNIT_ASSERT(!(node3 <= node1)); + UNIT_ASSERT(!(node1 >= node3)); + + UNIT_ASSERT(node3 > node2); + UNIT_ASSERT(node3 >= node2); + UNIT_ASSERT(node3 > node1); + UNIT_ASSERT(node3 >= node1); + + UNIT_ASSERT(node1 <= node1); + UNIT_ASSERT(node1 >= node1); + } + { + TNode node1(23); + TNode node2("bbb"); + TNode node3 = TNode::CreateEntity(); + + UNIT_ASSERT(node1 > node2); + UNIT_ASSERT(node1 >= node2); + UNIT_ASSERT(node2 < node1); + UNIT_ASSERT(node2 <= node1); + + UNIT_ASSERT(!(node1 < node2)); + UNIT_ASSERT(!(node1 <= node2)); + UNIT_ASSERT(!(node2 > node1)); + UNIT_ASSERT(!(node2 >= node1)); + + UNIT_ASSERT(node1 < node3); + UNIT_ASSERT(node2 < node3); + UNIT_ASSERT(node3 <= node3); + UNIT_ASSERT(!(node3 < node3)); + UNIT_ASSERT(!(node3 > node3)); + UNIT_ASSERT(!(node2 >= node3)); + } + } + Y_UNIT_TEST(TestSaveLoad) { TNode node = TNode()("foo", "bar")("baz", 42); node.Attributes()["attr_name"] = "attr_value"; |