diff options
Diffstat (limited to 'src/backends/reference/test')
-rw-r--r-- | src/backends/reference/test/RefCreateWorkloadTests.cpp | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/src/backends/reference/test/RefCreateWorkloadTests.cpp b/src/backends/reference/test/RefCreateWorkloadTests.cpp index f7999d0ffe..04c9acbe39 100644 --- a/src/backends/reference/test/RefCreateWorkloadTests.cpp +++ b/src/backends/reference/test/RefCreateWorkloadTests.cpp @@ -990,41 +990,45 @@ BOOST_AUTO_TEST_CASE(CreateSpaceToDepthWorkloadQSymm16) RefCreateSpaceToDepthWorkloadTest<RefSpaceToDepthWorkload, armnn::DataType::QuantisedSymm16>(); } +template <armnn::DataType DataType> static void RefCreateStackWorkloadTest(const armnn::TensorShape& inputShape, const armnn::TensorShape& outputShape, unsigned int axis, - unsigned int numInputs, - armnn::DataType dataType) + unsigned int numInputs) { armnn::Graph graph; RefWorkloadFactory factory; - auto workload = CreateStackWorkloadTest<RefStackWorkload>(factory, - graph, - inputShape, - outputShape, - axis, - numInputs, - dataType); - - // Check output is as expected - auto queueDescriptor = workload->GetData(); + auto workload = CreateStackWorkloadTest<RefStackWorkload, DataType>(factory, + graph, + inputShape, + outputShape, + axis, + numInputs); + + // Check inputs and output are as expected + StackQueueDescriptor queueDescriptor = workload->GetData(); + for (unsigned int i = 0; i < numInputs; ++i) + { + auto inputHandle = boost::polymorphic_downcast<RefTensorHandle*>(queueDescriptor.m_Inputs[i]); + BOOST_TEST((inputHandle->GetTensorInfo() == TensorInfo(inputShape, DataType))); + } auto outputHandle = boost::polymorphic_downcast<RefTensorHandle*>(queueDescriptor.m_Outputs[0]); - BOOST_TEST((outputHandle->GetTensorInfo() == TensorInfo(outputShape, dataType))); + BOOST_TEST((outputHandle->GetTensorInfo() == TensorInfo(outputShape, DataType))); } BOOST_AUTO_TEST_CASE(CreateStackFloat32Workload) { - RefCreateStackWorkloadTest({ 3, 4, 5 }, { 3, 4, 2, 5 }, 2, 2, armnn::DataType::Float32); + RefCreateStackWorkloadTest<armnn::DataType::Float32>({ 3, 4, 5 }, { 3, 4, 2, 5 }, 2, 2); } BOOST_AUTO_TEST_CASE(CreateStackUint8Workload) { - RefCreateStackWorkloadTest({ 3, 4, 5 }, { 3, 4, 2, 5 }, 2, 2, armnn::DataType::QuantisedAsymm8); + RefCreateStackWorkloadTest<armnn::DataType::QuantisedAsymm8>({ 3, 4, 5 }, { 3, 4, 2, 5 }, 2, 2); } BOOST_AUTO_TEST_CASE(CreateStackUint16Workload) { - RefCreateStackWorkloadTest({ 3, 4, 5 }, { 3, 4, 2, 5 }, 2, 2, armnn::DataType::QuantisedSymm16); + RefCreateStackWorkloadTest<armnn::DataType::QuantisedSymm16>({ 3, 4, 5 }, { 3, 4, 2, 5 }, 2, 2); } BOOST_AUTO_TEST_SUITE_END() |