aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/test/RefEndToEndTests.cpp
diff options
context:
space:
mode:
authorKeith Davis <keith.davis@arm.com>2019-06-21 09:33:59 +0100
committerMatteo Martincigh <matteo.martincigh@arm.com>2019-06-24 14:58:35 +0000
commit9515c7ec4f4535fff2c8f2d3f88974474d3f3468 (patch)
tree3dbb7e810174d7015090730d981d39a9826764e8 /src/backends/reference/test/RefEndToEndTests.cpp
parent965c7c63ffe069bf3b5e20372e8b3dc3873f8166 (diff)
downloadarmnn-9515c7ec4f4535fff2c8f2d3f88974474d3f3468.tar.gz
IVGCVSW-3263 - Add End to End tests for SpaceToDepth on Ref
Change-Id: I35d1c06b34ca160895f902255a69b87b711275b7 Signed-off-by: Keith Davis <keith.davis@arm.com>
Diffstat (limited to 'src/backends/reference/test/RefEndToEndTests.cpp')
-rw-r--r--src/backends/reference/test/RefEndToEndTests.cpp118
1 files changed, 118 insertions, 0 deletions
diff --git a/src/backends/reference/test/RefEndToEndTests.cpp b/src/backends/reference/test/RefEndToEndTests.cpp
index 885773d5e9..be73116f65 100644
--- a/src/backends/reference/test/RefEndToEndTests.cpp
+++ b/src/backends/reference/test/RefEndToEndTests.cpp
@@ -10,6 +10,7 @@
#include <backendsCommon/test/GatherEndToEndTestImpl.hpp>
#include <backendsCommon/test/ConcatTestImpl.hpp>
#include <backendsCommon/test/ArithmeticTestImpl.hpp>
+#include <backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp>
#include <backendsCommon/test/SplitterEndToEndTestImpl.hpp>
#include <boost/test/unit_test.hpp>
@@ -641,6 +642,123 @@ BOOST_AUTO_TEST_CASE(RefDetectionPostProcessFastNmsUint8Test)
1.0f, 1, 0.01f, 0, 0.5f, 0);
}
+BOOST_AUTO_TEST_CASE(RefSpaceToDepthNHWCEndToEndTest1)
+{
+ const unsigned int blockSize = 2;
+
+ armnn::TensorShape inputShape{1, 2, 2, 1};
+ armnn::TensorInfo inputTensorInfo(inputShape, armnn::DataType::Float32);
+
+ armnn::TensorShape outputShape{1, 1, 1, 4};
+ armnn::TensorInfo outputTensorInfo(outputShape, armnn::DataType::Float32);
+
+ std::vector<float> inputData = std::vector<float>(
+ {
+ 1.0f, 2.0f, 3.0f, 4.0f
+ });
+
+ std::vector<float> expectedOutputData = std::vector<float>(
+ {
+ 1.0f, 2.0f, 3.0f, 4.0f
+ });
+
+ SpaceToDepthEndToEnd(defaultBackends,
+ armnn::DataLayout::NHWC,
+ inputTensorInfo,
+ outputTensorInfo,
+ inputData,
+ expectedOutputData,
+ blockSize);
+}
+
+BOOST_AUTO_TEST_CASE(RefSpaceToDepthNCHWEndToEndTest1)
+{
+ const unsigned int blockSize = 2;
+
+ armnn::TensorShape inputShape{1, 2, 2, 1};
+ armnn::TensorInfo inputTensorInfo(inputShape, armnn::DataType::Float32);
+
+ armnn::TensorShape outputShape{1, 1, 1, 4};
+ armnn::TensorInfo outputTensorInfo(outputShape, armnn::DataType::Float32);
+
+ std::vector<float> inputData = std::vector<float>(
+ {
+ 1.0f, 2.0f, 3.0f, 4.0f
+ });
+
+ std::vector<float> expectedOutputData = std::vector<float>(
+ {
+ 1.0f, 2.0f, 3.0f, 4.0f
+ });
+
+ SpaceToDepthEndToEnd(defaultBackends,
+ armnn::DataLayout::NCHW,
+ inputTensorInfo,
+ outputTensorInfo,
+ inputData,
+ expectedOutputData,
+ blockSize);
+}
+
+BOOST_AUTO_TEST_CASE(RefSpaceToDepthNHWCEndToEndTest2)
+{
+ const unsigned int blockSize = 2;
+
+ armnn::TensorShape inputShape{1, 2, 2, 2};
+ armnn::TensorShape outputShape{1, 1, 1, 8};
+
+ armnn::TensorInfo outputTensorInfo(outputShape, armnn::DataType::Float32);
+ armnn::TensorInfo inputTensorInfo(inputShape, armnn::DataType::Float32);
+
+ std::vector<float> inputData = std::vector<float>(
+ {
+ 1.4f, 2.3f, 3.2f, 4.1f, 5.4f, 6.3f, 7.2f, 8.1f
+ });
+
+ std::vector<float> expectedOutputData = std::vector<float>(
+ {
+ 1.4f, 2.3f, 3.2f, 4.1f, 5.4f, 6.3f, 7.2f, 8.1f
+ });
+
+ SpaceToDepthEndToEnd(defaultBackends,
+ armnn::DataLayout::NHWC,
+ inputTensorInfo,
+ outputTensorInfo,
+ inputData,
+ expectedOutputData,
+ blockSize);
+}
+
+BOOST_AUTO_TEST_CASE(RefSpaceToDepthNCHWEndToEndTest2)
+{
+ const unsigned int blockSize = 2;
+
+ armnn::TensorShape inputShape{1, 2, 2, 2};
+ armnn::TensorShape outputShape{1, 1, 1, 8};
+
+ armnn::TensorInfo inputTensorInfo(inputShape, armnn::DataType::Float32);
+ armnn::TensorInfo outputTensorInfo(outputShape, armnn::DataType::Float32);
+
+
+ std::vector<float> inputData = std::vector<float>(
+ {
+ 1.4f, 2.3f, 3.2f, 4.1f, 5.4f, 6.3f, 7.2f, 8.1f
+ });
+
+ std::vector<float> expectedOutputData = std::vector<float>(
+ {
+ 1.4f, 2.3f, 3.2f, 4.1f, 5.4f, 6.3f, 7.2f, 8.1f
+ });
+
+ SpaceToDepthEndToEnd(defaultBackends,
+ armnn::DataLayout::NCHW,
+ inputTensorInfo,
+ outputTensorInfo,
+ inputData,
+ expectedOutputData,
+ blockSize);
+}
+
BOOST_AUTO_TEST_CASE(RefSplitter1dEndToEndTest)
{
Splitter1dEndToEnd<armnn::DataType::Float32>(defaultBackends);