1*89c4ff92SAndroid Build Coastguard Worker // 2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2017 Arm Ltd. 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 "armnnOnnxParser/IOnnxParser.hpp" 7*89c4ff92SAndroid Build Coastguard Worker #include "ParserPrototxtFixture.hpp" 8*89c4ff92SAndroid Build Coastguard Worker 9*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("OnnxParser_Const") 10*89c4ff92SAndroid Build Coastguard Worker { 11*89c4ff92SAndroid Build Coastguard Worker struct ConstMainFixture : public armnnUtils::ParserPrototxtFixture<armnnOnnxParser::IOnnxParser> 12*89c4ff92SAndroid Build Coastguard Worker { ConstMainFixtureConstMainFixture13*89c4ff92SAndroid Build Coastguard Worker ConstMainFixture(const std::string& dataType) 14*89c4ff92SAndroid Build Coastguard Worker { 15*89c4ff92SAndroid Build Coastguard Worker m_Prototext = R"( 16*89c4ff92SAndroid Build Coastguard Worker ir_version: 3 17*89c4ff92SAndroid Build Coastguard Worker producer_name: "CNTK " 18*89c4ff92SAndroid Build Coastguard Worker producer_version: "2.5.1 " 19*89c4ff92SAndroid Build Coastguard Worker domain: "ai.cntk " 20*89c4ff92SAndroid Build Coastguard Worker model_version: 1 21*89c4ff92SAndroid Build Coastguard Worker graph { 22*89c4ff92SAndroid Build Coastguard Worker name: "CNTKGraph " 23*89c4ff92SAndroid Build Coastguard Worker node { 24*89c4ff92SAndroid Build Coastguard Worker output: "Output" 25*89c4ff92SAndroid Build Coastguard Worker attribute { 26*89c4ff92SAndroid Build Coastguard Worker name: "value" 27*89c4ff92SAndroid Build Coastguard Worker t { 28*89c4ff92SAndroid Build Coastguard Worker dims: 7 29*89c4ff92SAndroid Build Coastguard Worker data_type: )" + dataType + R"( 30*89c4ff92SAndroid Build Coastguard Worker float_data: 0.0 31*89c4ff92SAndroid Build Coastguard Worker float_data: 1.0 32*89c4ff92SAndroid Build Coastguard Worker float_data: 2.0 33*89c4ff92SAndroid Build Coastguard Worker float_data: 3.0 34*89c4ff92SAndroid Build Coastguard Worker float_data: 4.0 35*89c4ff92SAndroid Build Coastguard Worker float_data: 5.0 36*89c4ff92SAndroid Build Coastguard Worker float_data: 6.0 37*89c4ff92SAndroid Build Coastguard Worker 38*89c4ff92SAndroid Build Coastguard Worker } 39*89c4ff92SAndroid Build Coastguard Worker type: 1 40*89c4ff92SAndroid Build Coastguard Worker } 41*89c4ff92SAndroid Build Coastguard Worker name: "constantNode" 42*89c4ff92SAndroid Build Coastguard Worker op_type: "Constant" 43*89c4ff92SAndroid Build Coastguard Worker } 44*89c4ff92SAndroid Build Coastguard Worker output { 45*89c4ff92SAndroid Build Coastguard Worker name: "Output" 46*89c4ff92SAndroid Build Coastguard Worker type { 47*89c4ff92SAndroid Build Coastguard Worker tensor_type { 48*89c4ff92SAndroid Build Coastguard Worker elem_type: 1 49*89c4ff92SAndroid Build Coastguard Worker shape { 50*89c4ff92SAndroid Build Coastguard Worker dim { 51*89c4ff92SAndroid Build Coastguard Worker dim_value: 7 52*89c4ff92SAndroid Build Coastguard Worker } 53*89c4ff92SAndroid Build Coastguard Worker } 54*89c4ff92SAndroid Build Coastguard Worker } 55*89c4ff92SAndroid Build Coastguard Worker } 56*89c4ff92SAndroid Build Coastguard Worker } 57*89c4ff92SAndroid Build Coastguard Worker } 58*89c4ff92SAndroid Build Coastguard Worker opset_import { 59*89c4ff92SAndroid Build Coastguard Worker version: 7 60*89c4ff92SAndroid Build Coastguard Worker })"; 61*89c4ff92SAndroid Build Coastguard Worker } 62*89c4ff92SAndroid Build Coastguard Worker }; 63*89c4ff92SAndroid Build Coastguard Worker 64*89c4ff92SAndroid Build Coastguard Worker struct ConstValidFixture : ConstMainFixture 65*89c4ff92SAndroid Build Coastguard Worker { ConstValidFixtureConstValidFixture66*89c4ff92SAndroid Build Coastguard Worker ConstValidFixture() : ConstMainFixture("1") { 67*89c4ff92SAndroid Build Coastguard Worker Setup(); 68*89c4ff92SAndroid Build Coastguard Worker } 69*89c4ff92SAndroid Build Coastguard Worker }; 70*89c4ff92SAndroid Build Coastguard Worker 71*89c4ff92SAndroid Build Coastguard Worker struct ConstInvalidFixture : ConstMainFixture 72*89c4ff92SAndroid Build Coastguard Worker { ConstInvalidFixtureConstInvalidFixture73*89c4ff92SAndroid Build Coastguard Worker ConstInvalidFixture() : ConstMainFixture("10") { } 74*89c4ff92SAndroid Build Coastguard Worker }; 75*89c4ff92SAndroid Build Coastguard Worker 76*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(ConstValidFixture, "ValidConstTest") 77*89c4ff92SAndroid Build Coastguard Worker { 78*89c4ff92SAndroid Build Coastguard Worker RunTest<1>({ }, {{ "Output" , {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0}}}); 79*89c4ff92SAndroid Build Coastguard Worker } 80*89c4ff92SAndroid Build Coastguard Worker 81*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(ConstInvalidFixture, "IncorrectDataTypeConst") 82*89c4ff92SAndroid Build Coastguard Worker { 83*89c4ff92SAndroid Build Coastguard Worker CHECK_THROWS_AS( Setup(), armnn::ParseException); 84*89c4ff92SAndroid Build Coastguard Worker } 85*89c4ff92SAndroid Build Coastguard Worker 86*89c4ff92SAndroid Build Coastguard Worker } 87