From 8017b8de278371fdeda83326cb74a34b1fd58ecd Mon Sep 17 00:00:00 2001 From: =?utf8?q?=EA=B9=80=EC=A0=95=ED=98=84/=EB=8F=99=EC=9E=91=EC=A0=9C?= =?utf8?q?=EC=96=B4Lab=28SR=29/Senior=20Engineer/=EC=82=BC=EC=84=B1?= =?utf8?q?=EC=A0=84=EC=9E=90?= Date: Wed, 11 Apr 2018 07:29:29 +0900 Subject: [PATCH] Extract general functions from Conv2D_acl.test.cpp (#539) - TestEnvironment -> gtest_env.cpp - initData() and compareData() -> util.cpp Signed-off-by: Junghyun Kim --- src/kernel/acl/CMakeLists.txt | 2 ++ src/kernel/acl/src/Conv2D_acl.test.cpp | 63 ++++++---------------------------- src/kernel/acl/src/gtest_env.cpp | 21 ++++++++++++ src/kernel/acl/src/util.cpp | 39 +++++++++++++++++++++ src/kernel/acl/src/util.h | 14 ++++++++ 5 files changed, 86 insertions(+), 53 deletions(-) create mode 100644 src/kernel/acl/src/gtest_env.cpp create mode 100644 src/kernel/acl/src/util.cpp create mode 100644 src/kernel/acl/src/util.h diff --git a/src/kernel/acl/CMakeLists.txt b/src/kernel/acl/CMakeLists.txt index da4b7f7..cf727ac 100644 --- a/src/kernel/acl/CMakeLists.txt +++ b/src/kernel/acl/CMakeLists.txt @@ -44,6 +44,8 @@ install(TARGETS ${LIB_KERNELACL} DESTINATION lib) # kernel test executable set(KERNELACL_TEST_SRCS "src/Conv2D_acl.test.cpp" + "src/util.cpp" + "src/gtest_env.cpp" ) add_executable(${LIB_KERNELACL_TEST} ${KERNELACL_TEST_SRCS}) diff --git a/src/kernel/acl/src/Conv2D_acl.test.cpp b/src/kernel/acl/src/Conv2D_acl.test.cpp index 73afa28..65ca493 100644 --- a/src/kernel/acl/src/Conv2D_acl.test.cpp +++ b/src/kernel/acl/src/Conv2D_acl.test.cpp @@ -2,6 +2,8 @@ #include #include +#include "util.h" + namespace nnfw { namespace kernel { namespace acl { @@ -19,33 +21,6 @@ bool convFloat32(const float* inputData, const android::nn::Shape& inputShape, } // namespace kernel } // namespace nnfw -static void initData(float* data, int num, float value) -{ - for (int i = 0; i < num; i++) { - *(data + i) = value; - } -} - -// compareData -// return true if result == expected with the shape info, -// otherwise false -bool compareData(const float* result, const float* expected, const android::nn::Shape& shape) -{ - NN_CHECK_EQ(shape.dimensions.size(), 4); - - uint32_t height = android::nn::getSizeOfDimension(shape, 1); - uint32_t width = android::nn::getSizeOfDimension(shape, 2); - uint32_t numitems = height * width; - for (int item = 0; item < numitems; item++) { - if (*(result + item) != *(expected + item)) { - LOG(ERROR) << "compareData failed: result " << *(result + item) - << ", expected " << *(expected + item) << std::endl; - return false; - } - } - return true; -} - using namespace nnfw::kernel::acl; TEST(KernelACL_TC, convFloat32_3x3to1x1) @@ -67,9 +42,9 @@ TEST(KernelACL_TC, convFloat32_3x3to1x1) const android::nn::Shape outputShape = { OperandType::FLOAT32, {1,1,1,1}, 1.0, 0 }; bool bret; - initData(inputData, sizeof(inputData) / sizeof(inputData[0]), 1.0); - initData(filterData, sizeof(filterData) / sizeof(filterData[0]), 1.0); - initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0); + util::initData(inputData, sizeof(inputData) / sizeof(inputData[0]), 1.0); + util::initData(filterData, sizeof(filterData) / sizeof(filterData[0]), 1.0); + util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0); bret = convFloat32(inputData, inputShape, filterData, filterShape, @@ -82,7 +57,7 @@ TEST(KernelACL_TC, convFloat32_3x3to1x1) EXPECT_EQ(bret, true); float expectData[] = { 10.0f }; - bret = compareData(outputData, expectData, outputShape); + bret = util::compareData(outputData, expectData, outputShape); EXPECT_EQ(bret, true); } @@ -105,9 +80,9 @@ TEST(KernelACL_TC, convFloat32_3x3to3x3) const android::nn::Shape outputShape = { OperandType::FLOAT32, {1,3,3,1}, 1.0, 0 }; bool bret; - initData(inputData, sizeof(inputData) / sizeof(inputData[0]), 1.0); - initData(filterData, sizeof(filterData) / sizeof(filterData[0]), 1.0); - initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0); + util::initData(inputData, sizeof(inputData) / sizeof(inputData[0]), 1.0); + util::initData(filterData, sizeof(filterData) / sizeof(filterData[0]), 1.0); + util::initData(outputData, sizeof(outputData) / sizeof(outputData[0]), 0.0); bret = convFloat32(inputData, inputShape, filterData, filterShape, @@ -124,25 +99,7 @@ TEST(KernelACL_TC, convFloat32_3x3to3x3) 7.0f, 10.0f, 7.0f, 5.0f, 7.0f, 5.0f }; - bret = compareData(outputData, expectData, outputShape); + bret = util::compareData(outputData, expectData, outputShape); EXPECT_EQ(bret, true); } -class TestEnvironment : public ::testing::Environment -{ -public: - virtual ~TestEnvironment() = default; - - virtual void SetUp() - { - nnfw::kernel::acl::Initialize(); - } - - virtual void TearDown() - { - // DO NOTHING - } -}; - -static ::testing::Environment* const testingenv = - ::testing::AddGlobalTestEnvironment(new TestEnvironment); diff --git a/src/kernel/acl/src/gtest_env.cpp b/src/kernel/acl/src/gtest_env.cpp new file mode 100644 index 0000000..746e3e5 --- /dev/null +++ b/src/kernel/acl/src/gtest_env.cpp @@ -0,0 +1,21 @@ +#include +#include + +class TestEnvironment : public ::testing::Environment +{ +public: + virtual ~TestEnvironment() = default; + + virtual void SetUp() + { + nnfw::kernel::acl::Initialize(); + } + + virtual void TearDown() + { + // DO NOTHING + } +}; + +static ::testing::Environment* const testingenv = + ::testing::AddGlobalTestEnvironment(new TestEnvironment); diff --git a/src/kernel/acl/src/util.cpp b/src/kernel/acl/src/util.cpp new file mode 100644 index 0000000..fae19d2 --- /dev/null +++ b/src/kernel/acl/src/util.cpp @@ -0,0 +1,39 @@ +#include "util.h" + +namespace nnfw { +namespace kernel { +namespace acl { +namespace util { + +void initData(float* data, int num, float value) +{ + for (int i = 0; i < num; i++) { + *(data + i) = value; + } +} + +// compareData +// return true if result == expected with the shape info, +// otherwise false +bool compareData(const float* result, const float* expected, const android::nn::Shape& shape) +{ + NN_CHECK_EQ(shape.dimensions.size(), 4); + + uint32_t height = android::nn::getSizeOfDimension(shape, 1); + uint32_t width = android::nn::getSizeOfDimension(shape, 2); + uint32_t numitems = height * width; + for (int item = 0; item < numitems; item++) { + if (*(result + item) != *(expected + item)) { + LOG(ERROR) << "compareData failed: result " << *(result + item) + << ", expected " << *(expected + item) << std::endl; + return false; + } + } + return true; +} + + +} // namespace util +} // namespace acl +} // namespace kernel +} // namespace nnfw diff --git a/src/kernel/acl/src/util.h b/src/kernel/acl/src/util.h new file mode 100644 index 0000000..dbb63ee --- /dev/null +++ b/src/kernel/acl/src/util.h @@ -0,0 +1,14 @@ +#include + +namespace nnfw { +namespace kernel { +namespace acl { +namespace util { + +void initData(float* data, int num, float value); +bool compareData(const float* result, const float* expected, const android::nn::Shape& shape); + +} // namespace util +} // namespace acl +} // namespace kernel +} // namespace nnfw -- 2.7.4