16 #include <doctest/doctest.h> 23 bool LayerTypeMatchesTest()
25 return LayerTypeMatchesTestImpl<armnn::LayerType::FirstLayer>(Tag<armnn::LayerType::FirstLayer>());
32 TEST_CASE(
"IsLayerSupportedLayerTypeMatches")
34 LayerTypeMatchesTest();
37 TEST_CASE(
"IsLayerSupportedReferenceAddition")
47 std::string reasonNotSupported;
51 TEST_CASE(
"IsLayerSupportedBFloat16Reference")
54 IsLayerSupportedTests<armnn::RefWorkloadFactory, armnn::DataType::BFloat16>(&factory);
57 TEST_CASE(
"IsLayerSupportedFloat16Reference")
60 IsLayerSupportedTests<armnn::RefWorkloadFactory, armnn::DataType::Float16>(&factory);
63 TEST_CASE(
"IsLayerSupportedFloat32Reference")
66 IsLayerSupportedTests<armnn::RefWorkloadFactory, armnn::DataType::Float32>(&factory);
69 TEST_CASE(
"IsLayerSupportedUint8Reference")
72 IsLayerSupportedTests<armnn::RefWorkloadFactory, armnn::DataType::QAsymmU8>(&factory);
75 TEST_CASE(
"IsLayerSupportedInt8Reference")
78 IsLayerSupportedTests<armnn::RefWorkloadFactory, armnn::DataType::QSymmS8>(&factory);
81 TEST_CASE(
"IsLayerSupportedInt16Reference")
84 IsLayerSupportedTests<armnn::RefWorkloadFactory, armnn::DataType::QSymmS16>(&factory);
87 TEST_CASE(
"IsConvertFp16ToFp32SupportedReference")
89 std::string reasonIfUnsupported;
97 TEST_CASE(
"IsConvertFp16ToFp32SupportedFp32InputReference")
99 std::string reasonIfUnsupported;
105 CHECK_EQ(reasonIfUnsupported,
"Layer is not supported with float32 data type input");
108 TEST_CASE(
"IsConvertFp16ToFp32SupportedFp16OutputReference")
110 std::string reasonIfUnsupported;
116 CHECK_EQ(reasonIfUnsupported,
"Layer is not supported with float16 data type output");
119 TEST_CASE(
"IsConvertBf16ToFp32SupportedReference")
121 std::string reasonIfUnsupported;
129 TEST_CASE(
"IsConvertBf16ToFp32SupportedFp32InputReference")
131 std::string reasonIfUnsupported;
137 CHECK_EQ(reasonIfUnsupported,
"Reference for ConvertBf16ToFp32 layer: input type not supported\n");
140 TEST_CASE(
"IsConvertBf16ToFp32SupportedBf16OutputReference")
142 std::string reasonIfUnsupported;
148 CHECK_EQ(reasonIfUnsupported,
"Reference for ConvertBf16ToFp32 layer: output type not supported\n");
151 TEST_CASE(
"IsConvertFp32ToBf16SupportedReference")
153 std::string reasonIfUnsupported;
161 TEST_CASE(
"IsConvertFp32ToBf16SupportedBf16InputReference")
163 std::string reasonIfUnsupported;
169 CHECK_EQ(reasonIfUnsupported,
"Reference for ConvertFp32ToBf16 layer: input type not supported\n");
172 TEST_CASE(
"IsConvertFp32ToBf16SupportedFp32OutputReference")
174 std::string reasonIfUnsupported;
180 CHECK_EQ(reasonIfUnsupported,
"Reference for ConvertFp32ToBf16 layer: output type not supported\n");
183 TEST_CASE(
"IsConvertFp32ToFp16SupportedReference")
185 std::string reasonIfUnsupported;
193 TEST_CASE(
"IsConvertFp32ToFp16SupportedFp16InputReference")
195 std::string reasonIfUnsupported;
201 CHECK_EQ(reasonIfUnsupported,
"Layer is not supported with float16 data type input");
204 TEST_CASE(
"IsConvertFp32ToFp16SupportedFp32OutputReference")
206 std::string reasonIfUnsupported;
212 CHECK_EQ(reasonIfUnsupported,
"Layer is not supported with float32 data type output");
215 TEST_CASE(
"IsLayerSupportedMeanDimensionsReference")
217 std::string reasonIfUnsupported;
225 TEST_CASE(
"IsLayerNotSupportedMeanDimensionsReference")
227 std::string reasonIfUnsupported;
234 CHECK(reasonIfUnsupported.find(
235 "Reference Mean: Expected 4 dimensions but got 2 dimensions instead, for the 'output' tensor.")
236 != std::string::npos);
239 TEST_CASE(
"IsConstantSupportedRef")
241 std::string reasonIfUnsupported;
247 result = IsConstantLayerSupportedTests<armnn::RefWorkloadFactory,
251 result = IsConstantLayerSupportedTests<armnn::RefWorkloadFactory,
255 result = IsConstantLayerSupportedTests<armnn::RefWorkloadFactory,
259 result = IsConstantLayerSupportedTests<armnn::RefWorkloadFactory,
263 result = IsConstantLayerSupportedTests<armnn::RefWorkloadFactory,
267 result = IsConstantLayerSupportedTests<armnn::RefWorkloadFactory,
271 result = IsConstantLayerSupportedTests<armnn::RefWorkloadFactory,
This layer converts data type Float 16 to Float 32.
This layer converts data type BFloat16 to Float32.
TEST_SUITE("RefLayerSupported")
bool IsAdditionSupported(const TensorInfo &input0, const TensorInfo &input1, const TensorInfo &output, Optional< std::string &> reasonIfUnsupported=EmptyOptional()) const override
This layer converts data type Float 32 to Float 16.
This layer converts data type Float32 to BFloat16.