1 // 2 // Copyright © 2017 Arm Ltd and Contributors. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 6 #include "ParserFlatbuffersFixture.hpp" 7 8 #include <doctest/doctest.h> 9 10 11 TEST_SUITE("TensorflowLiteParser_Addition") 12 { 13 struct AddFixture : public ParserFlatbuffersFixture 14 { AddFixtureAddFixture15 explicit AddFixture(const std::string & inputShape1, 16 const std::string & inputShape2, 17 const std::string & outputShape, 18 const std::string & activation="NONE") 19 { 20 m_JsonString = R"( 21 { 22 "version": 3, 23 "operator_codes": [ { "builtin_code": "ADD" } ], 24 "subgraphs": [ { 25 "tensors": [ 26 { 27 "shape": )" + inputShape1 + R"(, 28 "type": "UINT8", 29 "buffer": 0, 30 "name": "inputTensor1", 31 "quantization": { 32 "min": [ 0.0 ], 33 "max": [ 255.0 ], 34 "scale": [ 1.0 ], 35 "zero_point": [ 0 ], 36 } 37 }, 38 { 39 "shape": )" + inputShape2 + R"(, 40 "type": "UINT8", 41 "buffer": 1, 42 "name": "inputTensor2", 43 "quantization": { 44 "min": [ 0.0 ], 45 "max": [ 255.0 ], 46 "scale": [ 1.0 ], 47 "zero_point": [ 0 ], 48 } 49 }, 50 { 51 "shape": )" + outputShape + R"( , 52 "type": "UINT8", 53 "buffer": 2, 54 "name": "outputTensor", 55 "quantization": { 56 "min": [ 0.0 ], 57 "max": [ 255.0 ], 58 "scale": [ 1.0 ], 59 "zero_point": [ 0 ], 60 } 61 } 62 ], 63 "inputs": [ 0, 1 ], 64 "outputs": [ 2 ], 65 "operators": [ 66 { 67 "opcode_index": 0, 68 "inputs": [ 0, 1 ], 69 "outputs": [ 2 ], 70 "builtin_options_type": "AddOptions", 71 "builtin_options": { 72 "fused_activation_function": )" + activation + R"( 73 }, 74 "custom_options_format": "FLEXBUFFERS" 75 } 76 ], 77 } ], 78 "buffers" : [ 79 { }, 80 { } 81 ] 82 } 83 )"; 84 Setup(); 85 } 86 }; 87 88 89 struct SimpleAddFixture : AddFixture 90 { SimpleAddFixtureSimpleAddFixture91 SimpleAddFixture() : AddFixture("[ 2, 2 ]", 92 "[ 2, 2 ]", 93 "[ 2, 2 ]") {} 94 }; 95 96 TEST_CASE_FIXTURE(SimpleAddFixture, "SimpleAdd") 97 { 98 RunTest<2, armnn::DataType::QAsymmU8>( 99 0, 100 {{"inputTensor1", { 0, 1, 2, 3 }}, 101 {"inputTensor2", { 4, 5, 6, 7 }}}, 102 {{"outputTensor", { 4, 6, 8, 10 }}}); 103 } 104 105 }