xref: /aosp_15_r20/external/armnn/src/armnnOnnxParser/test/Const.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
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