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 a50ee6c8571d06..0f758c343ea1b3 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