• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright © 2019 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include "ParserFlatbuffersSerializeFixture.hpp"
7 
8 #include <armnnDeserializer/IDeserializer.hpp>
9 
10 #include <string>
11 
12 TEST_SUITE("Deserializer_Slice")
13 {
14 struct SliceFixture : public ParserFlatbuffersSerializeFixture
15 {
SliceFixtureSliceFixture16     explicit SliceFixture(const std::string& inputShape,
17                           const std::string& outputShape,
18                           const std::string& begin,
19                           const std::string& size,
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: "SliceLayer",
53                         layer: {
54                             base: {
55                                 index: 1,
56                                 layerName: "SliceLayer",
57                                 layerType: "Slice",
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                                 begin: )" + begin + R"(,
72                                 size: )" + size + R"(,
73                             }
74                         }
75                     },
76                     {
77                         layer_type: "OutputLayer",
78                         layer: {
79                             base:{
80                                 layerBindingId: 2,
81                                 base: {
82                                     index: 2,
83                                     layerName: "OutputLayer",
84                                     layerType: "Output",
85                                     inputSlots: [{
86                                         index: 0,
87                                         connection: {sourceLayerIndex:1, outputSlotIndex:0 },
88                                     }],
89                                     outputSlots: [{
90                                         index: 0,
91                                         tensorInfo: {
92                                             dimensions: )" + outputShape + R"(,
93                                             dataType: )" + dataType + R"(
94                                         },
95                                     }],
96                                 }
97                             }
98                         },
99                     }
100                 ]
101             }
102         )";
103         SetupSingleInputSingleOutput("InputLayer", "OutputLayer");
104     }
105 };
106 
107 struct SimpleSliceFixture : SliceFixture
108 {
SimpleSliceFixtureSimpleSliceFixture109     SimpleSliceFixture() : SliceFixture("[ 3, 2, 3, 5 ]", // input shape
110                                         "[ 2, 1, 2, 3 ]", // output shape
111                                         "[ 1, 0, 1, 2 ]", // begin
112                                         "[ 2, 1, 2, 3 ]", // size
113                                         "Float32") {}     // data type
114 };
115 
116 TEST_CASE_FIXTURE(SimpleSliceFixture, "SimpleSliceFloat32")
117 {
118     RunTest<4, armnn::DataType::Float32>(
119         0,
120         {
121             0.f,  1.f,  2.f,  3.f,  4.f,
122             5.f,  6.f,  7.f,  8.f,  9.f,
123             10.f, 11.f, 12.f, 13.f, 14.f,
124 
125             15.f, 16.f, 17.f, 18.f, 19.f,
126             20.f, 21.f, 22.f, 23.f, 24.f,
127             25.f, 26.f, 27.f, 28.f, 29.f,
128 
129 
130             30.f, 31.f, 32.f, 33.f, 34.f,
131             35.f, 36.f, 37.f, 38.f, 39.f,
132             40.f, 41.f, 42.f, 43.f, 44.f,
133 
134             45.f, 46.f, 47.f, 48.f, 49.f,
135             50.f, 51.f, 52.f, 53.f, 54.f,
136             55.f, 56.f, 57.f, 58.f, 59.f,
137 
138 
139             60.f, 61.f, 62.f, 63.f, 64.f,
140             65.f, 66.f, 67.f, 68.f, 69.f,
141             70.f, 71.f, 72.f, 73.f, 74.f,
142 
143             75.f, 76.f, 77.f, 78.f, 79.f,
144             80.f, 81.f, 82.f, 83.f, 84.f,
145             85.f, 86.f, 87.f, 88.f, 89.f
146         },
147         {
148             37.f, 38.f, 39.f,
149             42.f, 43.f, 44.f,
150 
151             67.f, 68.f, 69.f,
152             72.f, 73.f, 74.f
153         });
154 }
155 
156 }
157