// // Copyright © 2017 Arm Ltd. All rights reserved. // See LICENSE file in the project root for full license information. // #pragma once #include "CreateWorkload.hpp" #include "backends/RefWorkloadFactory.hpp" #if ARMCOMPUTECL_ENABLED #include "backends/ClTensorHandle.hpp" #endif #if ARMCOMPUTENEON_ENABLED #include "backends/NeonTensorHandle.hpp" #endif using namespace armnn; namespace { using namespace std; template boost::test_tools::predicate_result CompareTensorHandleShape(IComputeTensorHandle* tensorHandle, std::initializer_list expectedDimensions) { arm_compute::ITensorInfo* info = tensorHandle->GetTensor().info(); auto infoNumDims = info->num_dimensions(); auto numExpectedDims = expectedDimensions.size(); if (infoNumDims != numExpectedDims) { boost::test_tools::predicate_result res(false); res.message() << "Different number of dimensions [" << info->num_dimensions() << "!=" << expectedDimensions.size() << "]"; return res; } size_t i = info->num_dimensions() - 1; for (unsigned int expectedDimension : expectedDimensions) { if (info->dimension(i) != expectedDimension) { boost::test_tools::predicate_result res(false); res.message() << "Different dimension [" << info->dimension(i) << "!=" << expectedDimension << "]"; return res; } i--; } return true; } template