From 9515c7ec4f4535fff2c8f2d3f88974474d3f3468 Mon Sep 17 00:00:00 2001 From: Keith Davis Date: Fri, 21 Jun 2019 09:33:59 +0100 Subject: IVGCVSW-3263 - Add End to End tests for SpaceToDepth on Ref Change-Id: I35d1c06b34ca160895f902255a69b87b711275b7 Signed-off-by: Keith Davis --- src/backends/reference/test/RefEndToEndTests.cpp | 118 +++++++++++++++++++++++ 1 file changed, 118 insertions(+) (limited to 'src/backends/reference/test') 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 #include #include +#include #include #include @@ -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 inputData = std::vector( + { + 1.0f, 2.0f, 3.0f, 4.0f + }); + + std::vector expectedOutputData = std::vector( + { + 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 inputData = std::vector( + { + 1.0f, 2.0f, 3.0f, 4.0f + }); + + std::vector expectedOutputData = std::vector( + { + 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 inputData = std::vector( + { + 1.4f, 2.3f, 3.2f, 4.1f, 5.4f, 6.3f, 7.2f, 8.1f + }); + + std::vector expectedOutputData = std::vector( + { + 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 inputData = std::vector( + { + 1.4f, 2.3f, 3.2f, 4.1f, 5.4f, 6.3f, 7.2f, 8.1f + }); + + std::vector expectedOutputData = std::vector( + { + 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(defaultBackends); -- cgit v1.2.1