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