File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ import CppUtils.Container.NetworkPtr;
55import CppUtils.Container.SafeShared;
66import CppUtils.Thread.UniqueLocker;
77import CppUtils.Thread.SharedLocker;
8+ import CppUtils.Thread.SharedPtr;
89
910export namespace CppUtils::Container
1011{
@@ -297,6 +298,11 @@ export namespace CppUtils::Container
297298 return sharedLocker->value.value;
298299 }
299300
301+ [[nodiscard]] auto operator==(const MeshNodePtr& other) const noexcept -> bool
302+ {
303+ return Thread::SharedPtr::ownerEqual(m_node, other.m_node);
304+ }
305+
300306 private:
301307 SharedPtr m_node = nullptr;
302308 };
Original file line number Diff line number Diff line change @@ -56,6 +56,31 @@ export namespace CppUtils::UnitTest::Container::MeshNetwork
5656 }
5757 });
5858
59+ suite.addTest("Operator==: Equal nodes", [&] {
60+ auto node1 = StringMeshNodePtr::make("test");
61+ auto node2 = node1;
62+ suite.expectEqual(node1, node2);
63+ });
64+
65+ suite.addTest("Operator==: Unequal nodes", [&] {
66+ auto node1 = StringMeshNodePtr::make("test1");
67+ auto node2 = StringMeshNodePtr::make("test2");
68+ suite.expect(node1 != node2);
69+ });
70+
71+ suite.addTest("Operator==: Assigned nodes", [&] {
72+ auto node1 = StringMeshNodePtr::make("test");
73+ auto node2 = StringMeshNodePtr{};
74+ node2 = node1;
75+ suite.expectEqual(node1, node2);
76+ });
77+
78+ suite.addTest("Operator==: Node and null", [&] {
79+ auto node1 = StringMeshNodePtr::make("test");
80+ auto node2 = StringMeshNodePtr{};
81+ suite.expect(node1 != node2);
82+ });
83+
5984 suite.addTest("Detach child", [&] {
6085 auto fruit = StringMeshNodePtr::makeRoot("fruit");
6186 auto apple = StringMeshNodePtr::make("apple");
You can’t perform that action at this time.
0 commit comments