[neurun] Introduce method IndexSet::replace (#2751)
author이한종/동작제어Lab(SR)/Engineer/삼성전자 <hanjoung.lee@samsung.com>
Tue, 18 Sep 2018 10:57:47 +0000 (19:57 +0900)
committer이춘석/동작제어Lab(SR)/Staff Engineer/삼성전자 <chunseok.lee@samsung.com>
Tue, 18 Sep 2018 10:57:47 +0000 (19:57 +0900)
Introduce operand::IndexSet::replace method which can update an element
in the set.

Signed-off-by: Hanjoung Lee <hanjoung.lee@samsung.com>
runtimes/neurun/src/graph/operand/IndexSet.cc
runtimes/neurun/src/graph/operand/IndexSet.h
runtimes/neurun/test/graph/operand/IndexSet.cc

index 037965a..b32e138 100644 (file)
@@ -51,6 +51,11 @@ bool IndexSet::contains(const Index &index) const
   return std::find(_set.begin(), _set.end(), index) != _set.end();
 }
 
+void IndexSet::replace(const Index &from, const Index &to)
+{
+  std::replace(_set.begin(), _set.end(), from, to);
+}
+
 } // namespace operand
 } // namespace graph
 } // namespace neurun
index 2d37de7..1346240 100644 (file)
@@ -45,6 +45,7 @@ public:
   const Index &at(IO::Index set_index) const { return _set.at(set_index.asInt()); }
   const Index &at(uint32_t index) const { return _set.at(index); }
   bool contains(const Index &index) const;
+  void replace(const Index &from, const Index &to);
 
 public:
   std::vector<Index>::const_iterator begin(void) const { return _set.begin(); }
index eeb4cef..8a494af 100644 (file)
@@ -21,7 +21,7 @@
 using neurun::graph::operand::Index;
 using neurun::graph::operand::IndexSet;
 
-TEST(graph_operand_IndexSet, index_set_test)
+TEST(graph_operand_IndexSet, append)
 {
   IndexSet iset{0, 2, 4, 8};
 
@@ -41,3 +41,12 @@ TEST(graph_operand_IndexSet, index_set_test)
   ASSERT_TRUE(iset.contains(Index{10}));
   ASSERT_FALSE(iset.contains(Index{11}));
 }
+
+TEST(graph_operand_IndexSet, replace)
+{
+  IndexSet iset{0, 1, 2, 3};
+
+  iset.replace(Index{1}, Index{9});
+  ASSERT_FALSE(iset.contains(Index{1}));
+  ASSERT_TRUE(iset.contains(Index{9}));
+}