blob: 326560ff2281e89977005109f954e0d38b5cc5e6 [file] [log] [blame]
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +00001//
2// Copyright © 2020 Samsung Electronics Co Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#include <boost/test/unit_test.hpp>
7#include "ParserFlatbuffersSerializeFixture.hpp"
8#include "../Deserializer.hpp"
9
10#include <string>
Sadik Armagan0c3ea5b2021-02-03 09:29:30 +000011
12BOOST_AUTO_TEST_SUITE(Deserializer)
13
14struct ReduceSumFixture : public ParserFlatbuffersSerializeFixture
15{
16 explicit ReduceSumFixture(const std::string& inputShape,
17 const std::string& outputShape,
18 const std::string& axis,
19 const std::string& dataType)
20 {
21 m_JsonString = R"(
22 {
23 inputIds: [0],
24 outputIds: [2],
25 layers: [
26 {
27 layer_type: "InputLayer",
28 layer: {
29 base: {
30 layerBindingId: 0,
31 base: {
32 index: 0,
33 layerName: "InputLayer",
34 layerType: "Input",
35 inputSlots: [{
36 index: 0,
37 connection: {sourceLayerIndex:0, outputSlotIndex:0 },
38 }],
39 outputSlots: [{
40 index: 0,
41 tensorInfo: {
42 dimensions: )" + inputShape + R"(,
43 dataType: )" + dataType + R"(
44 }
45 }]
46 }
47 }
48 }
49 },
50 {
51 layer_type: "ReduceLayer",
52 layer: {
53 base: {
54 index: 1,
55 layerName: "ReduceSumLayer",
56 layerType: "Reduce",
57 inputSlots: [{
58 index: 0,
59 connection: {sourceLayerIndex:0, outputSlotIndex:0 },
60 }],
61 outputSlots: [{
62 index: 0,
63 tensorInfo: {
64 dimensions: )" + outputShape + R"(,
65 dataType: )" + dataType + R"(
66 }
67 }]
68 },
69 descriptor: {
70 axis: )" + axis + R"(,
71 keepDims: true,
72 reduceOperation: Sum
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 Setup();
104 }
105};
106
107struct SimpleReduceSumFixture : ReduceSumFixture
108{
109 SimpleReduceSumFixture()
110 : ReduceSumFixture("[ 1, 1, 3, 2 ]", // inputShape
111 "[ 1, 1, 1, 2 ]", // outputShape
112 "[ 2 ]", // axis
113 "Float32") // dataType
114 {}
115};
116
117BOOST_FIXTURE_TEST_CASE(SimpleReduceSum, SimpleReduceSumFixture)
118{
119 RunTest<4, armnn::DataType::Float32>(
120 0,
121 {{"InputLayer", { 1.0f, 1.0f, 2.0f, 2.0f, 3.0f, 3.0f }}},
122 {{"OutputLayer", { 6.0f, 6.0f }}});
123}
124
125BOOST_AUTO_TEST_SUITE_END()