diff options
author | James Conroy <james.conroy@arm.com> | 2018-10-03 09:32:03 +0100 |
---|---|---|
committer | Matthew Bentham <matthew.bentham@arm.com> | 2018-10-10 16:16:58 +0100 |
commit | 074f371bcd1d91c1f36b458d9ea1b050eafe5947 (patch) | |
tree | 2063f84b6e89aa112ec997c09b829ff087da4abb /src/backends/test/CreateWorkloadCl.cpp | |
parent | 5eec11db435a94ba5046ba74edc5c9c412a64e9d (diff) | |
download | armnn-074f371bcd1d91c1f36b458d9ea1b050eafe5947.tar.gz |
IVGCVSW-1932: Add Unit tests for NHWC ResizeBilinear
* Adds five unit tests that execute ResizeBilinear
with the NHWC data layout and Float32 data type.
* Refactors original ResizeBilinear Float32 tests
to take DataLayout as a parameter.
* Adds four unit tests that execute CreateWorkloadCl
for both NCHW and NHWC (NCHW tests did not exist
for CreateWorkloadCl).
Change-Id: I1af419ed0b62b8f4d4550f6d120a584a0a223b17
Diffstat (limited to 'src/backends/test/CreateWorkloadCl.cpp')
-rw-r--r-- | src/backends/test/CreateWorkloadCl.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/backends/test/CreateWorkloadCl.cpp b/src/backends/test/CreateWorkloadCl.cpp index e81f844614..e7e39b0f70 100644 --- a/src/backends/test/CreateWorkloadCl.cpp +++ b/src/backends/test/CreateWorkloadCl.cpp @@ -596,5 +596,49 @@ BOOST_AUTO_TEST_CASE(CreateLSTMWorkloadFloatWorkload) ClCreateLstmWorkloadTest<ClLstmFloatWorkload>(); } +template <typename ResizeBilinearWorkloadType, typename armnn::DataType DataType> +static void ClResizeBilinearWorkloadTest(DataLayout dataLayout) +{ + Graph graph; + ClWorkloadFactory factory; + + auto workload = CreateResizeBilinearWorkloadTest<ResizeBilinearWorkloadType, DataType>(factory, graph, dataLayout); + + // Checks that inputs/outputs are as we expect them (see definition of CreateResizeBilinearWorkloadTest). + ResizeBilinearQueueDescriptor queueDescriptor = workload->GetData(); + auto inputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Inputs[0]); + auto outputHandle = boost::polymorphic_downcast<IClTensorHandle*>(queueDescriptor.m_Outputs[0]); + + switch (dataLayout) + { + case DataLayout::NHWC: + BOOST_TEST(CompareIClTensorHandleShape(inputHandle, { 2, 4, 4, 3 })); + BOOST_TEST(CompareIClTensorHandleShape(outputHandle, { 2, 2, 2, 3 })); + break; + default: // NCHW + BOOST_TEST(CompareIClTensorHandleShape(inputHandle, { 2, 3, 4, 4 })); + BOOST_TEST(CompareIClTensorHandleShape(outputHandle, { 2, 3, 2, 2 })); + } +} + +BOOST_AUTO_TEST_CASE(CreateResizeBilinearFloat32NchwWorkload) +{ + ClResizeBilinearWorkloadTest<ClResizeBilinearFloatWorkload, armnn::DataType::Float32>(DataLayout::NCHW); +} + +BOOST_AUTO_TEST_CASE(CreateResizeBilinearFloat16NchwWorkload) +{ + ClResizeBilinearWorkloadTest<ClResizeBilinearFloatWorkload, armnn::DataType::Float16>(DataLayout::NCHW); +} + +BOOST_AUTO_TEST_CASE(CreateResizeBilinearFloat32NhwcWorkload) +{ + ClResizeBilinearWorkloadTest<ClResizeBilinearFloatWorkload, armnn::DataType::Float32>(DataLayout::NHWC); +} + +BOOST_AUTO_TEST_CASE(CreateResizeBilinearFloat16NhwcWorkload) +{ + ClResizeBilinearWorkloadTest<ClResizeBilinearFloatWorkload, armnn::DataType::Float16>(DataLayout::NHWC); +} BOOST_AUTO_TEST_SUITE_END() |