[Coverage] Increase function coverage
authorDongju Chae <dongju.chae@samsung.com>
Mon, 31 May 2021 06:02:50 +0000 (15:02 +0900)
committer채동주/On-Device Lab(SR)/Staff Engineer/삼성전자 <dongju.chae@samsung.com>
Mon, 31 May 2021 06:37:08 +0000 (15:37 +0900)
This patch increases function coverage for unused types.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
src/core/ne-data.cc
tests/unittests/ne_core_data_test.cc

index fddbd24..c14e99f 100644 (file)
@@ -316,5 +316,8 @@ DataConverter::perform () {
     memcpy (dst_, src_, size_);
   }
 
+  if (quantizer)
+    delete quantizer;
+
   return size_;
 }
index cc7fe97..116695f 100644 (file)
@@ -12,6 +12,7 @@
  */
 
 #include <ne-data.h>
+#include <ne-model.h>
 #include "ne_unittest_utils.h"
 
 #include <npubinfmt.h>
@@ -387,6 +388,62 @@ TEST (ne_core_data_test, perform_n) {
 }
 
 /**
+ * @brief Test quantize() with various types (dummy)
+ */
+TEST (ne_core_data_test, dummy_quantize) {
+  data_type npu_types[] = {DATA_TYPE_SRNPU, DATA_TYPE_QASYMM8,
+                           DATA_TYPE_QSYMM16};
+  data_type std_types[] = {
+      DATA_TYPE_INT8,    DATA_TYPE_UINT8,  DATA_TYPE_INT16, DATA_TYPE_UINT16,
+      DATA_TYPE_INT32,   DATA_TYPE_UINT32, DATA_TYPE_INT64, DATA_TYPE_UINT64,
+      DATA_TYPE_FLOAT32, DATA_TYPE_FLOAT64};
+  uint32_t data_dims[] = {1, 1, 1, 1024};
+
+  void *src_data = malloc (4096);
+  void *dst_data = malloc (4096);
+
+  ASSERT_NE (src_data, nullptr);
+  ASSERT_NE (dst_data, nullptr);
+
+  /* std to npu */
+  std::unique_ptr<DataConverter> converter (new DataConverter (true));
+
+  converter->setDataLayout (DATA_LAYOUT_TRIV2, DATA_LAYOUT_TRIV2);
+  converter->setDataDims (data_dims);
+  converter->setTops (2);
+  converter->setQuantZero (127);
+  converter->setQuantScale (1.0);
+
+  for (auto &s : std_types) {
+    converter->setData (src_data, dst_data, get_data_size (s));
+    for (auto &n : npu_types) {
+      converter->setDataType (s, n);
+      converter->perform ();
+    }
+  }
+
+  /* npu to std */
+  converter.reset (new DataConverter (false));
+
+  converter->setDataLayout (DATA_LAYOUT_TRIV2, DATA_LAYOUT_TRIV2);
+  converter->setDataDims (data_dims);
+  converter->setTops (2);
+  converter->setQuantZero (127);
+  converter->setQuantScale (1.0);
+
+  for (auto &n : npu_types) {
+    converter->setData (src_data, dst_data, get_data_size (n));
+    for (auto &s : std_types) {
+      converter->setDataType (n, s);
+      converter->perform ();
+    }
+  }
+
+  free (src_data);
+  free (dst_data);
+}
+
+/**
  * @brief main function for unit test
  */
 int