1 // 2 // Copyright © 2021 Arm Ltd and Contributors. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 6 #include "ParserFlatbuffersFixture.hpp" 7 8 9 TEST_SUITE("TensorflowLiteParser_Cast") 10 { 11 struct CastFixture : public ParserFlatbuffersFixture 12 { CastFixtureCastFixture13 explicit CastFixture(const std::string& inputShape, 14 const std::string& outputShape, 15 const std::string& inputDataType, 16 const std::string& outputDataType) 17 { 18 m_JsonString = R"( 19 { 20 "version": 3, 21 "operator_codes": [ { "builtin_code": "CAST" } ], 22 "subgraphs": [ { 23 "tensors": [ 24 { 25 "shape": )" + inputShape + R"(, 26 "type": )" + inputDataType + R"(, 27 "buffer": 0, 28 "name": "inputTensor", 29 "quantization": { 30 "min": [ 0.0 ], 31 "max": [ 255.0 ], 32 "scale": [ 1.0 ], 33 "zero_point": [ 0 ], 34 } 35 }, 36 { 37 "shape": )" + outputShape + R"(, 38 "type": )" + outputDataType + R"(, 39 "buffer": 1, 40 "name": "outputTensor", 41 "quantization": { 42 "min": [ 0.0 ], 43 "max": [ 255.0 ], 44 "scale": [ 1.0 ], 45 "zero_point": [ 0 ], 46 } 47 } 48 ], 49 "inputs": [ 0 ], 50 "outputs": [ 1 ], 51 "operators": [ 52 { 53 "opcode_index": 0, 54 "inputs": [ 0 ], 55 "outputs": [ 1 ], 56 "custom_options_format": "FLEXBUFFERS" 57 } 58 ], 59 } ], 60 "buffers" : [ {}, {} ] 61 } 62 )"; 63 SetupSingleInputSingleOutput("inputTensor", "outputTensor"); 64 } 65 }; 66 67 struct SimpleCastFixture : CastFixture 68 { SimpleCastFixtureSimpleCastFixture69 SimpleCastFixture() : CastFixture("[ 1, 6 ]", 70 "[ 1, 6 ]", 71 "INT32", 72 "FLOAT32") {} 73 }; 74 75 TEST_CASE_FIXTURE(SimpleCastFixture, "SimpleCast") 76 { 77 RunTest<2, armnn::DataType::Signed32 , armnn::DataType::Float32>( 78 0, 79 {{"inputTensor", { 0, -1, 5, -100, 200, -255 }}}, 80 {{"outputTensor", { 0.0f, -1.0f, 5.0f, -100.0f, 200.0f, -255.0f }}}); 81 } 82 83 }