16 #define DECLARE_SIMPLE_COMPARISON_FIXTURE(operation, dataType) \ 17 struct Simple##operation##dataType##Fixture : public SimpleComparisonFixture \ 19 Simple##operation##dataType##Fixture() \ 20 : SimpleComparisonFixture(#dataType, #operation) {} \ 23 #define DECLARE_SIMPLE_COMPARISON_TEST_CASE(operation, dataType) \ 24 DECLARE_SIMPLE_COMPARISON_FIXTURE(operation, dataType) \ 25 TEST_CASE_FIXTURE(Simple##operation##dataType##Fixture, #operation#dataType) \ 27 using T = armnn::ResolveType<armnn::DataType::dataType>; \ 28 constexpr float qScale = 1.f; \ 29 constexpr int32_t qOffset = 0; \ 30 RunTest<4, armnn::DataType::dataType, armnn::DataType::Boolean>( \ 32 {{ "InputLayer0", armnnUtils::QuantizedVector<T>(s_TestData.m_InputData0, qScale, qOffset) }, \ 33 { "InputLayer1", armnnUtils::QuantizedVector<T>(s_TestData.m_InputData1, qScale, qOffset) }}, \ 34 {{ "OutputLayer", s_TestData.m_Output##operation }}); \ 39 explicit ComparisonFixture(
const std::string& inputShape0,
40 const std::string& inputShape1,
41 const std::string& outputShape,
42 const std::string& inputDataType,
43 const std::string& comparisonOperation)
51 layer_type: "InputLayer", 57 layerName: "InputLayer0", 61 connection: { sourceLayerIndex:0, outputSlotIndex:0 }, 66 dimensions: )" + inputShape0 + R"(, 67 dataType: )" + inputDataType + R"( 75 layer_type: "InputLayer", 81 layerName: "InputLayer1", 85 connection: { sourceLayerIndex:0, outputSlotIndex:0 }, 90 dimensions: )" + inputShape1 + R"(, 91 dataType: )" + inputDataType + R"( 99 layer_type: "ComparisonLayer", 103 layerName: "ComparisonLayer", 104 layerType: "Comparison", 107 connection: { sourceLayerIndex:0, outputSlotIndex:0 }, 111 connection: { sourceLayerIndex:1, outputSlotIndex:0 }, 116 dimensions: )" + outputShape + R"(, 122 operation: )" + comparisonOperation + R"( 127 layer_type: "OutputLayer", 133 layerName: "OutputLayer", 137 connection: { sourceLayerIndex:2, outputSlotIndex:0 }, 142 dimensions: )" + outputShape + R"(, 157 struct SimpleComparisonTestData
159 SimpleComparisonTestData()
163 1.f, 1.f, 1.f, 1.f, 5.f, 5.f, 5.f, 5.f,
164 3.f, 3.f, 3.f, 3.f, 4.f, 4.f, 4.f, 4.f
169 1.f, 1.f, 1.f, 1.f, 3.f, 3.f, 3.f, 3.f,
170 5.f, 5.f, 5.f, 5.f, 4.f, 4.f, 4.f, 4.f
175 1, 1, 1, 1, 0, 0, 0, 0,
176 0, 0, 0, 0, 1, 1, 1, 1
181 0, 0, 0, 0, 1, 1, 1, 1,
182 0, 0, 0, 0, 0, 0, 0, 0
185 m_OutputGreaterOrEqual =
187 1, 1, 1, 1, 1, 1, 1, 1,
188 0, 0, 0, 0, 1, 1, 1, 1
193 0, 0, 0, 0, 0, 0, 0, 0,
194 1, 1, 1, 1, 0, 0, 0, 0
197 m_OutputLessOrEqual =
199 1, 1, 1, 1, 0, 0, 0, 0,
200 1, 1, 1, 1, 1, 1, 1, 1
205 0, 0, 0, 0, 1, 1, 1, 1,
206 1, 1, 1, 1, 0, 0, 0, 0
210 std::vector<float> m_InputData0;
211 std::vector<float> m_InputData1;
213 std::vector<uint8_t> m_OutputEqual;
214 std::vector<uint8_t> m_OutputGreater;
215 std::vector<uint8_t> m_OutputGreaterOrEqual;
216 std::vector<uint8_t> m_OutputLess;
217 std::vector<uint8_t> m_OutputLessOrEqual;
218 std::vector<uint8_t> m_OutputNotEqual;
221 struct SimpleComparisonFixture :
public ComparisonFixture
223 SimpleComparisonFixture(
const std::string& inputDataType,
224 const std::string& comparisonOperation)
225 : ComparisonFixture(
"[ 2, 2, 2, 2 ]",
229 comparisonOperation) {}
231 static SimpleComparisonTestData s_TestData;
234 SimpleComparisonTestData SimpleComparisonFixture::s_TestData;
#define ARMNN_NO_DEPRECATE_WARN_BEGIN
#define DECLARE_SIMPLE_COMPARISON_TEST_CASE(operation, dataType)
#define ARMNN_NO_DEPRECATE_WARN_END
TEST_SUITE("Deserializer_Comparison")