• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include "ParserFlatbuffersSerializeFixture.hpp"
7 #include <armnnDeserializer/IDeserializer.hpp>
8 
9 #include <string>
10 
11 TEST_SUITE("Deserializer_SpaceToBatchND")
12 {
13 struct SpaceToBatchNdFixture : public ParserFlatbuffersSerializeFixture
14 {
SpaceToBatchNdFixtureSpaceToBatchNdFixture15     explicit SpaceToBatchNdFixture(const std::string &inputShape,
16                                    const std::string &blockShape,
17                                    const std::string &padList,
18                                    const std::string &dataLayout,
19                                    const std::string &outputShape,
20                                    const std::string &dataType)
21     {
22         m_JsonString = R"(
23             {
24                 inputIds: [0],
25                 outputIds: [2],
26                 layers: [
27                     {
28                         layer_type: "InputLayer",
29                         layer: {
30                             base: {
31                                 layerBindingId: 0,
32                                 base: {
33                                     index: 0,
34                                     layerName: "InputLayer",
35                                     layerType: "Input",
36                                     inputSlots: [{
37                                         index: 0,
38                                         connection: {sourceLayerIndex:0, outputSlotIndex:0 },
39                                     }],
40                                     outputSlots: [{
41                                         index: 0,
42                                         tensorInfo: {
43                                             dimensions: )" + inputShape + R"(,
44                                             dataType: )" + dataType + R"(
45                                         }
46                                     }]
47                                 }
48                             }
49                         }
50                     },
51                     {
52                         layer_type: "SpaceToBatchNdLayer",
53                         layer: {
54                             base: {
55                                 index: 1,
56                                 layerName: "SpaceToBatchNdLayer",
57                                 layerType: "SpaceToBatchNd",
58                                 inputSlots: [{
59                                     index: 0,
60                                     connection: {sourceLayerIndex:0, outputSlotIndex:0 },
61                                 }],
62                                 outputSlots: [{
63                                     index: 0,
64                                     tensorInfo: {
65                                         dimensions: )" + outputShape + R"(,
66                                         dataType: )" + dataType + R"(
67                                     }
68                                 }]
69                             },
70                             descriptor: {
71                                 blockShape: )" + blockShape + R"(,
72                                 padList: )" + padList + R"(,
73                                 dataLayout: )" + dataLayout + R"(,
74                             }
75                         }
76                     },
77                     {
78                         layer_type: "OutputLayer",
79                         layer: {
80                             base:{
81                                 layerBindingId: 2,
82                                 base: {
83                                     index: 2,
84                                     layerName: "OutputLayer",
85                                     layerType: "Output",
86                                     inputSlots: [{
87                                         index: 0,
88                                         connection: {sourceLayerIndex:1, outputSlotIndex:0 },
89                                     }],
90                                     outputSlots: [{
91                                         index: 0,
92                                         tensorInfo: {
93                                             dimensions: )" + outputShape + R"(,
94                                             dataType: )" + dataType + R"(
95                                         },
96                                     }],
97                                 }
98                             }
99                         },
100                     }
101                 ]
102             }
103         )";
104         SetupSingleInputSingleOutput("InputLayer", "OutputLayer");
105     }
106 };
107 
108 struct SimpleSpaceToBatchNdFixture : SpaceToBatchNdFixture
109 {
SimpleSpaceToBatchNdFixtureSimpleSpaceToBatchNdFixture110     SimpleSpaceToBatchNdFixture() : SpaceToBatchNdFixture("[ 2, 1, 2, 4 ]",
111                                                           "[ 2, 2 ]",
112                                                           "[ 0, 0, 2, 0 ]",
113                                                           "NCHW",
114                                                           "[ 8, 1, 1, 3 ]",
115                                                           "Float32") {}
116 };
117 
118 TEST_CASE_FIXTURE(SimpleSpaceToBatchNdFixture, "SimpleBatchToSpaceNdFloat32")
119 {
120     RunTest<4, armnn::DataType::Float32>(0,
121                                          {
122                                              1.0f,  2.0f,  3.0f,  4.0f,
123                                              5.0f,  6.0f,  7.0f,  8.0f,
124                                              9.0f, 10.0f, 11.0f, 12.0f,
125                                             13.0f, 14.0f, 15.0f, 16.0f
126                                          },
127                                          {
128                                              0.0f,  1.0f,  3.0f,
129                                              0.0f,  9.0f, 11.0f,
130                                              0.0f,  2.0f,  4.0f,
131                                              0.0f, 10.0f, 12.0f,
132                                              0.0f,  5.0f,  7.0f,
133                                              0.0f, 13.0f, 15.0f,
134                                              0.0f,  6.0f,  8.0f,
135                                              0.0f, 14.0f, 16.0f
136                                          });
137 }
138 
139 }
140