[coco] Introduce Stride2D (#1137)
author박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 <jh1302.park@samsung.com>
Wed, 22 Aug 2018 10:32:32 +0000 (19:32 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Wed, 22 Aug 2018 10:32:32 +0000 (19:32 +0900)
This commit introduces Stirde2D class which records stride over 2D plane
(such as channels in a feature map).

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

diff --git a/contrib/coco/core/include/coco/IR/Stride2D.h b/contrib/coco/core/include/coco/IR/Stride2D.h
new file mode 100644 (file)
index 0000000..7c71ecd
--- /dev/null
@@ -0,0 +1,38 @@
+#ifndef __COCO_IR_STRIDE_2D_H__
+#define __COCO_IR_STRIDE_2D_H__
+
+#include <cstdint>
+
+namespace coco
+{
+
+class Stride2D
+{
+public:
+  Stride2D() : _vertical{0}, _horizontal{0}
+  {
+    // DO NOTHING
+  }
+
+public:
+  Stride2D(uint32_t vertical, uint32_t horizontal) : _vertical{vertical}, _horizontal{horizontal}
+  {
+    // DO NOTHING
+  }
+
+public:
+  uint32_t vertical(void) const { return _vertical; }
+  Stride2D &vertical(uint32_t value);
+
+public:
+  uint32_t horizontal(void) const { return _horizontal; }
+  Stride2D &horizontal(uint32_t value);
+
+private:
+  uint32_t _vertical;
+  uint32_t _horizontal;
+};
+
+} // namespace coco
+
+#endif // __COCO_IR_STRIDE_2D_H__
diff --git a/contrib/coco/core/src/IR/Stride2D.cpp b/contrib/coco/core/src/IR/Stride2D.cpp
new file mode 100644 (file)
index 0000000..3d3e24e
--- /dev/null
@@ -0,0 +1,18 @@
+#include "coco/IR/Stride2D.h"
+
+namespace coco
+{
+
+Stride2D &Stride2D::vertical(uint32_t value)
+{
+  _vertical = value;
+  return (*this);
+}
+
+Stride2D &Stride2D::horizontal(uint32_t value)
+{
+  _horizontal = value;
+  return (*this);
+}
+
+} // namespace coco
diff --git a/contrib/coco/core/src/IR/Stride2D.test.cpp b/contrib/coco/core/src/IR/Stride2D.test.cpp
new file mode 100644 (file)
index 0000000..60cef0d
--- /dev/null
@@ -0,0 +1,29 @@
+#include "coco/IR/Stride2D.h"
+
+#include <gtest/gtest.h>
+
+TEST(IR_STRIDE_2D, default_constructor)
+{
+  coco::Stride2D stride;
+
+  ASSERT_EQ(stride.vertical(), 0);
+  ASSERT_EQ(stride.horizontal(), 0);
+}
+
+TEST(IR_STRIDE_2D, explicit_constructor_4)
+{
+  coco::Stride2D stride{1, 2};
+
+  ASSERT_EQ(stride.vertical(), 1);
+  ASSERT_EQ(stride.horizontal(), 2);
+}
+
+TEST(IR_STRIDE_2D, update)
+{
+  coco::Stride2D stride;
+
+  stride.vertical(1).horizontal(2);
+
+  ASSERT_EQ(stride.vertical(), 1);
+  ASSERT_EQ(stride.horizontal(), 2);
+}