[coco] Overload operators over ElemID (#884)
author박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 <jh1302.park@samsung.com>
Fri, 3 Aug 2018 02:01:45 +0000 (11:01 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Fri, 3 Aug 2018 02:01:45 +0000 (11:01 +0900)
This commit implements two primitive operator overloadings (==, <) over ElemID.

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
contrib/coco/core/include/coco/IR/ElemID.h
contrib/coco/core/src/IR/ElemID.cpp [new file with mode: 0644]
contrib/coco/core/src/IR/ElemID.test.cpp

index 115bfa3..4127709 100644 (file)
@@ -27,6 +27,9 @@ private:
   uint32_t _value;
 };
 
+bool operator==(const ElemID &lhs, const ElemID &rhs);
+bool operator<(const ElemID &lhs, const ElemID &rhs);
+
 } // namespace coco
 
 #endif // __COCO_IR_ELEM_ID_H__
diff --git a/contrib/coco/core/src/IR/ElemID.cpp b/contrib/coco/core/src/IR/ElemID.cpp
new file mode 100644 (file)
index 0000000..fbe54bc
--- /dev/null
@@ -0,0 +1,9 @@
+#include "coco/IR/ElemID.h"
+
+namespace coco
+{
+
+bool operator==(const ElemID &lhs, const ElemID &rhs) { return lhs.value() == rhs.value(); }
+bool operator<(const ElemID &lhs, const ElemID &rhs) { return lhs.value() < rhs.value(); }
+
+} // namespace coco
index f1d51ae..d62a66b 100644 (file)
@@ -32,3 +32,15 @@ TEST(IR_ELEM_ID, std_vector_compatible)
 
   ASSERT_EQ(vec.at(0).value(), 128);
 }
+
+TEST(IR_ELEM_ID, operator_eq)
+{
+  ASSERT_TRUE(coco::ElemID{16} == coco::ElemID{16});
+  ASSERT_FALSE(coco::ElemID{16} == coco::ElemID{17});
+}
+
+TEST(IR_ELEM_ID, operator_lt)
+{
+  ASSERT_FALSE(coco::ElemID{16} < coco::ElemID{16});
+  ASSERT_TRUE(coco::ElemID{16} < coco::ElemID{17});
+}