1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2021 Arm Ltd and Contributors. All rights reserved. 3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT 4*89c4ff92SAndroid Build Coastguard Worker // 5*89c4ff92SAndroid Build Coastguard Worker 6*89c4ff92SAndroid Build Coastguard Worker #include "ParserFlatbuffersSerializeFixture.hpp" 7*89c4ff92SAndroid Build Coastguard Worker #include <armnnDeserializer/IDeserializer.hpp> 8*89c4ff92SAndroid Build Coastguard Worker 9*89c4ff92SAndroid Build Coastguard Worker #include <doctest/doctest.h> 10*89c4ff92SAndroid Build Coastguard Worker 11*89c4ff92SAndroid Build Coastguard Worker #include <string> 12*89c4ff92SAndroid Build Coastguard Worker 13*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("Deserializer_Shape") 14*89c4ff92SAndroid Build Coastguard Worker { 15*89c4ff92SAndroid Build Coastguard Worker struct ShapeFixture : public ParserFlatbuffersSerializeFixture 16*89c4ff92SAndroid Build Coastguard Worker { ShapeFixtureShapeFixture17*89c4ff92SAndroid Build Coastguard Worker explicit ShapeFixture() 18*89c4ff92SAndroid Build Coastguard Worker { 19*89c4ff92SAndroid Build Coastguard Worker m_JsonString = R"( 20*89c4ff92SAndroid Build Coastguard Worker { 21*89c4ff92SAndroid Build Coastguard Worker layers: [ 22*89c4ff92SAndroid Build Coastguard Worker { 23*89c4ff92SAndroid Build Coastguard Worker layer_type: "InputLayer", 24*89c4ff92SAndroid Build Coastguard Worker layer: { 25*89c4ff92SAndroid Build Coastguard Worker base: { 26*89c4ff92SAndroid Build Coastguard Worker base: { 27*89c4ff92SAndroid Build Coastguard Worker layerName: "InputLayer", 28*89c4ff92SAndroid Build Coastguard Worker layerType: "Input", 29*89c4ff92SAndroid Build Coastguard Worker inputSlots: [ 30*89c4ff92SAndroid Build Coastguard Worker 31*89c4ff92SAndroid Build Coastguard Worker ], 32*89c4ff92SAndroid Build Coastguard Worker outputSlots: [ 33*89c4ff92SAndroid Build Coastguard Worker { 34*89c4ff92SAndroid Build Coastguard Worker tensorInfo: { 35*89c4ff92SAndroid Build Coastguard Worker dimensions: [ 36*89c4ff92SAndroid Build Coastguard Worker 1, 37*89c4ff92SAndroid Build Coastguard Worker 3, 38*89c4ff92SAndroid Build Coastguard Worker 3, 39*89c4ff92SAndroid Build Coastguard Worker 1 40*89c4ff92SAndroid Build Coastguard Worker ], 41*89c4ff92SAndroid Build Coastguard Worker dataType: "Signed32", 42*89c4ff92SAndroid Build Coastguard Worker quantizationScale: 0.0 43*89c4ff92SAndroid Build Coastguard Worker } 44*89c4ff92SAndroid Build Coastguard Worker } 45*89c4ff92SAndroid Build Coastguard Worker ] 46*89c4ff92SAndroid Build Coastguard Worker } 47*89c4ff92SAndroid Build Coastguard Worker } 48*89c4ff92SAndroid Build Coastguard Worker } 49*89c4ff92SAndroid Build Coastguard Worker }, 50*89c4ff92SAndroid Build Coastguard Worker { 51*89c4ff92SAndroid Build Coastguard Worker layer_type: "ShapeLayer", 52*89c4ff92SAndroid Build Coastguard Worker layer: { 53*89c4ff92SAndroid Build Coastguard Worker base: { 54*89c4ff92SAndroid Build Coastguard Worker index: 1, 55*89c4ff92SAndroid Build Coastguard Worker layerName: "shape", 56*89c4ff92SAndroid Build Coastguard Worker layerType: "Shape", 57*89c4ff92SAndroid Build Coastguard Worker inputSlots: [ 58*89c4ff92SAndroid Build Coastguard Worker { 59*89c4ff92SAndroid Build Coastguard Worker connection: { 60*89c4ff92SAndroid Build Coastguard Worker sourceLayerIndex: 0, 61*89c4ff92SAndroid Build Coastguard Worker outputSlotIndex: 0 62*89c4ff92SAndroid Build Coastguard Worker } 63*89c4ff92SAndroid Build Coastguard Worker } 64*89c4ff92SAndroid Build Coastguard Worker ], 65*89c4ff92SAndroid Build Coastguard Worker outputSlots: [ 66*89c4ff92SAndroid Build Coastguard Worker { 67*89c4ff92SAndroid Build Coastguard Worker tensorInfo: { 68*89c4ff92SAndroid Build Coastguard Worker dimensions: [ 69*89c4ff92SAndroid Build Coastguard Worker 4 70*89c4ff92SAndroid Build Coastguard Worker ], 71*89c4ff92SAndroid Build Coastguard Worker dataType: "Signed32", 72*89c4ff92SAndroid Build Coastguard Worker quantizationScale: 0.0 73*89c4ff92SAndroid Build Coastguard Worker } 74*89c4ff92SAndroid Build Coastguard Worker } 75*89c4ff92SAndroid Build Coastguard Worker ] 76*89c4ff92SAndroid Build Coastguard Worker } 77*89c4ff92SAndroid Build Coastguard Worker } 78*89c4ff92SAndroid Build Coastguard Worker }, 79*89c4ff92SAndroid Build Coastguard Worker { 80*89c4ff92SAndroid Build Coastguard Worker layer_type: "OutputLayer", 81*89c4ff92SAndroid Build Coastguard Worker layer: { 82*89c4ff92SAndroid Build Coastguard Worker base: { 83*89c4ff92SAndroid Build Coastguard Worker base: { 84*89c4ff92SAndroid Build Coastguard Worker index: 2, 85*89c4ff92SAndroid Build Coastguard Worker layerName: "OutputLayer", 86*89c4ff92SAndroid Build Coastguard Worker layerType: "Output", 87*89c4ff92SAndroid Build Coastguard Worker inputSlots: [ 88*89c4ff92SAndroid Build Coastguard Worker { 89*89c4ff92SAndroid Build Coastguard Worker connection: { 90*89c4ff92SAndroid Build Coastguard Worker sourceLayerIndex: 1, 91*89c4ff92SAndroid Build Coastguard Worker outputSlotIndex: 0 92*89c4ff92SAndroid Build Coastguard Worker } 93*89c4ff92SAndroid Build Coastguard Worker } 94*89c4ff92SAndroid Build Coastguard Worker ], 95*89c4ff92SAndroid Build Coastguard Worker outputSlots: [ 96*89c4ff92SAndroid Build Coastguard Worker 97*89c4ff92SAndroid Build Coastguard Worker ] 98*89c4ff92SAndroid Build Coastguard Worker } 99*89c4ff92SAndroid Build Coastguard Worker } 100*89c4ff92SAndroid Build Coastguard Worker } 101*89c4ff92SAndroid Build Coastguard Worker } 102*89c4ff92SAndroid Build Coastguard Worker ], 103*89c4ff92SAndroid Build Coastguard Worker inputIds: [ 104*89c4ff92SAndroid Build Coastguard Worker 0 105*89c4ff92SAndroid Build Coastguard Worker ], 106*89c4ff92SAndroid Build Coastguard Worker outputIds: [ 107*89c4ff92SAndroid Build Coastguard Worker 0 108*89c4ff92SAndroid Build Coastguard Worker ], 109*89c4ff92SAndroid Build Coastguard Worker featureVersions: { 110*89c4ff92SAndroid Build Coastguard Worker bindingIdsScheme: 1 111*89c4ff92SAndroid Build Coastguard Worker } 112*89c4ff92SAndroid Build Coastguard Worker } 113*89c4ff92SAndroid Build Coastguard Worker )"; 114*89c4ff92SAndroid Build Coastguard Worker Setup(); 115*89c4ff92SAndroid Build Coastguard Worker } 116*89c4ff92SAndroid Build Coastguard Worker }; 117*89c4ff92SAndroid Build Coastguard Worker 118*89c4ff92SAndroid Build Coastguard Worker struct SimpleShapeFixture : ShapeFixture 119*89c4ff92SAndroid Build Coastguard Worker { SimpleShapeFixtureSimpleShapeFixture120*89c4ff92SAndroid Build Coastguard Worker SimpleShapeFixture() : ShapeFixture() {} 121*89c4ff92SAndroid Build Coastguard Worker }; 122*89c4ff92SAndroid Build Coastguard Worker 123*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(SimpleShapeFixture, "DeserializeShape") 124*89c4ff92SAndroid Build Coastguard Worker { 125*89c4ff92SAndroid Build Coastguard Worker RunTest<1, armnn::DataType::Signed32>( 126*89c4ff92SAndroid Build Coastguard Worker 0, 127*89c4ff92SAndroid Build Coastguard Worker {{"InputLayer", { 1, 1, 1, 1, 1, 1, 1, 1, 1 }}}, 128*89c4ff92SAndroid Build Coastguard Worker {{"OutputLayer",{ 1, 3, 3, 1 }}}); 129*89c4ff92SAndroid Build Coastguard Worker } 130*89c4ff92SAndroid Build Coastguard Worker 131*89c4ff92SAndroid Build Coastguard Worker } 132