diff options
Diffstat (limited to 'src')
4 files changed, 31 insertions, 12 deletions
diff --git a/src/backends/backendsCommon/test/ArithmeticTestImpl.hpp b/src/backends/backendsCommon/test/ArithmeticTestImpl.hpp index 6f685ebb42..5a65c32918 100644 --- a/src/backends/backendsCommon/test/ArithmeticTestImpl.hpp +++ b/src/backends/backendsCommon/test/ArithmeticTestImpl.hpp @@ -78,7 +78,7 @@ void ArithmeticSimpleEndToEnd(const std::vector<BackendId>& backends, std::map<int, std::vector<TInput>> inputTensorData = {{ 0, input0 }, { 1, input1 }}; std::map<int, std::vector<TOutput>> expectedOutputData = {{ 0, expectedOutput }}; - EndToEndLayerTestImpl<TInput, TOutput>(move(net), inputTensorData, expectedOutputData, backends); + EndToEndLayerTestImpl<ArmnnInputType, ArmnnOutputType>(move(net), inputTensorData, expectedOutputData, backends); } template<armnn::DataType ArmnnInputType, @@ -107,7 +107,7 @@ void ArithmeticBroadcastEndToEnd(const std::vector<BackendId>& backends, std::map<int, std::vector<TInput>> inputTensorData = {{ 0, input0 }, { 1, input1 }}; std::map<int, std::vector<TOutput>> expectedOutputData = {{ 0, expectedOutput }}; - EndToEndLayerTestImpl<TInput, TOutput>(move(net), inputTensorData, expectedOutputData, backends); + EndToEndLayerTestImpl<ArmnnInputType, ArmnnOutputType>(move(net), inputTensorData, expectedOutputData, backends); } } // anonymous namespace diff --git a/src/backends/backendsCommon/test/EndToEndTestImpl.hpp b/src/backends/backendsCommon/test/EndToEndTestImpl.hpp index 7d2b091e42..d17b61e8fb 100644 --- a/src/backends/backendsCommon/test/EndToEndTestImpl.hpp +++ b/src/backends/backendsCommon/test/EndToEndTestImpl.hpp @@ -4,6 +4,8 @@ // #pragma once +#include "TypeUtils.hpp" + #include <armnn/ArmNN.hpp> #include <armnn/INetwork.hpp> @@ -102,7 +104,14 @@ inline bool ConstantUsageUint8Test(const std::vector<BackendId>& backends) ); } -template<typename TInput, typename TOutput> +template<typename T> +bool CompareBoolean(T a, T b) +{ + return (a == 0 && b == 0) ||(a != 0 && b != 0); +}; + +template<DataType ArmnnIType, DataType ArmnnOType, + typename TInput = ResolveType<ArmnnIType>, typename TOutput = ResolveType<ArmnnOType>> void EndToEndLayerTestImpl(INetworkPtr network, const std::map<int, std::vector<TInput>>& inputTensorData, const std::map<int, std::vector<TOutput>>& expectedOutputData, @@ -145,8 +154,18 @@ void EndToEndLayerTestImpl(INetworkPtr network, for (auto&& it : expectedOutputData) { std::vector<TOutput> out = outputStorage.at(it.first); - BOOST_TEST(it.second == out); + if (ArmnnOType == DataType::Boolean) + { + for (unsigned int i = 0; i < out.size(); ++i) + { + BOOST_TEST(CompareBoolean<TOutput>(it.second[i], out[i])); + } + } + else + { + BOOST_TEST(it.second == out); + } } } -} // anonymous namespace
\ No newline at end of file +} // anonymous namespace diff --git a/src/backends/backendsCommon/test/GatherEndToEndTestImpl.hpp b/src/backends/backendsCommon/test/GatherEndToEndTestImpl.hpp index d30da549df..4ef1ef30ee 100644 --- a/src/backends/backendsCommon/test/GatherEndToEndTestImpl.hpp +++ b/src/backends/backendsCommon/test/GatherEndToEndTestImpl.hpp @@ -62,7 +62,7 @@ void GatherEndToEnd(const std::vector<BackendId>& backends) std::map<int, std::vector<T>> inputTensorData = {{ 0, paramsData }}; std::map<int, std::vector<T>> expectedOutputData = {{ 0, expectedOutput }}; - EndToEndLayerTestImpl<T>(move(net), inputTensorData, expectedOutputData, backends); + EndToEndLayerTestImpl<ArmnnType, ArmnnType>(move(net), inputTensorData, expectedOutputData, backends); } template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> @@ -118,7 +118,7 @@ void GatherMultiDimEndToEnd(const std::vector<BackendId>& backends) std::map<int, std::vector<T>> inputTensorData = {{ 0, paramsData }}; std::map<int, std::vector<T>> expectedOutputData = {{ 0, expectedOutput }}; - EndToEndLayerTestImpl<T>(move(net), inputTensorData, expectedOutputData, backends); + EndToEndLayerTestImpl<ArmnnType, ArmnnType>(move(net), inputTensorData, expectedOutputData, backends); } -} // anonymous namespace
\ No newline at end of file +} // anonymous namespace diff --git a/src/backends/backendsCommon/test/MergerTestImpl.hpp b/src/backends/backendsCommon/test/MergerTestImpl.hpp index ec42b09ada..de03c1096a 100644 --- a/src/backends/backendsCommon/test/MergerTestImpl.hpp +++ b/src/backends/backendsCommon/test/MergerTestImpl.hpp @@ -110,7 +110,7 @@ void MergerDim0EndToEnd(const std::vector<BackendId>& backends) std::map<int, std::vector<T>> inputTensorData = {{ 0,inputData }, { 1,inputData }}; std::map<int, std::vector<T>> expectedOutputData = {{ 0,expectedOutput }}; - EndToEndLayerTestImpl<T, T>(move(net), inputTensorData, expectedOutputData, backends); + EndToEndLayerTestImpl<ArmnnType, ArmnnType>(move(net), inputTensorData, expectedOutputData, backends); } template<armnn::DataType ArmnnType> @@ -174,7 +174,7 @@ void MergerDim1EndToEnd(const std::vector<BackendId>& backends) std::map<int, std::vector<T>> inputTensorData = {{ 0,inputData }, { 1,inputData }}; std::map<int, std::vector<T>> expectedOutputData = {{ 0,expectedOutput }}; - EndToEndLayerTestImpl<T>(move(net), inputTensorData, expectedOutputData, backends); + EndToEndLayerTestImpl<ArmnnType, ArmnnType>(move(net), inputTensorData, expectedOutputData, backends); } template<armnn::DataType ArmnnType> @@ -238,7 +238,7 @@ void MergerDim2EndToEnd(const std::vector<BackendId>& backends) std::map<int, std::vector<T>> inputTensorData = {{ 0,inputData }, { 1,inputData }}; std::map<int, std::vector<T>> expectedOutputData = {{ 0,expectedOutput }}; - EndToEndLayerTestImpl<T>(move(net), inputTensorData, expectedOutputData, backends); + EndToEndLayerTestImpl<ArmnnType, ArmnnType>(move(net), inputTensorData, expectedOutputData, backends); } template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>> @@ -301,7 +301,7 @@ void MergerDim3EndToEnd(const std::vector<BackendId>& backends) std::map<int, std::vector<T>> inputTensorData = {{ 0,inputData }, { 1,inputData }}; std::map<int, std::vector<T>> expectedOutputData = {{ 0,expectedOutput }}; - EndToEndLayerTestImpl<T>(move(net), inputTensorData, expectedOutputData, backends); + EndToEndLayerTestImpl<ArmnnType, ArmnnType>(move(net), inputTensorData, expectedOutputData, backends); } } // anonymous namespace |