From 5ef3472bee89661a5b58da6c43fe846e38eceeb7 Mon Sep 17 00:00:00 2001 From: Gleb Kazantaev Date: Wed, 6 Oct 2021 12:40:26 +0300 Subject: [PATCH] Fix FrameworkNodeAttr Deserialization (#7854) --- .../openvino/op/util/framework_node.hpp | 4 +- ngraph/test/CMakeLists.txt | 1 + ngraph/test/framework_node.cpp | 43 +++++++++++++++++++ 3 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 ngraph/test/framework_node.cpp diff --git a/ngraph/core/include/openvino/op/util/framework_node.hpp b/ngraph/core/include/openvino/op/util/framework_node.hpp index fd47d5c854ec67..bb35754c7f2667 100644 --- a/ngraph/core/include/openvino/op/util/framework_node.hpp +++ b/ngraph/core/include/openvino/op/util/framework_node.hpp @@ -50,7 +50,7 @@ class OPENVINO_API FrameworkNodeAttrs { return m_attrs.end(); } - std::string operator[](const std::string& key) { + std::string& operator[](const std::string& key) { return m_attrs[key]; } @@ -59,7 +59,7 @@ class OPENVINO_API FrameworkNodeAttrs { } bool operator==(const FrameworkNodeAttrs& other) const { - return m_type_name == other.m_type_name && m_opset_name == other.m_opset_name && m_attrs == m_attrs; + return m_type_name == other.m_type_name && m_opset_name == other.m_opset_name && m_attrs == other.m_attrs; } private: diff --git a/ngraph/test/CMakeLists.txt b/ngraph/test/CMakeLists.txt index e8a3896b6a43f3..67e94647d20b9c 100644 --- a/ngraph/test/CMakeLists.txt +++ b/ngraph/test/CMakeLists.txt @@ -39,6 +39,7 @@ set(SRC eval.cpp file_util.cpp float16.cpp + framework_node.cpp function.cpp graph_rewrite.cpp includes.cpp diff --git a/ngraph/test/framework_node.cpp b/ngraph/test/framework_node.cpp new file mode 100644 index 00000000000000..9a21eaeb8db97d --- /dev/null +++ b/ngraph/test/framework_node.cpp @@ -0,0 +1,43 @@ +// Copyright (C) 2021 Intel Corporation +// SPDX-License-Identifier: Apache-2.0 +// + +#include "ngraph/op/util/framework_node.hpp" + +#include + +#include "gtest/gtest.h" + +TEST(framework_node, attrs) { + ov::op::util::FrameworkNodeAttrs attrs; + + attrs.set_opset_name("opset_name"); + ASSERT_EQ(attrs.get_opset_name(), "opset_name"); + + attrs.set_type_name("type_name"); + ASSERT_EQ(attrs.get_type_name(), "type_name"); + + attrs["attr1"] = "value1"; + ASSERT_EQ(attrs.at("attr1"), "value1"); + ASSERT_EQ(attrs.begin()->first, "attr1"); + ASSERT_EQ(attrs.begin()->first, "attr1"); + ASSERT_EQ(attrs.begin()->second, "value1"); + + ov::op::util::FrameworkNodeAttrs a1, a2; + a1.set_type_name("type_name"); + a2.set_type_name("type_name_"); + ASSERT_FALSE(a1 == a2); + a2.set_type_name("type_name"); + ASSERT_TRUE(a1 == a2); + a1.set_opset_name("opset_name"); + a2.set_opset_name("opset_name_"); + ASSERT_FALSE(a1 == a2); + a2.set_opset_name("opset_name"); + ASSERT_TRUE(a1 == a2); + a1["attr"] = "value"; + ASSERT_FALSE(a1 == a2); + a2["attr"] = "value_"; + ASSERT_FALSE(a1 == a2); + a2["attr"] = "value"; + ASSERT_TRUE(a1 == a2); +} \ No newline at end of file