blob: 3cb3459fd2469923d80e35e5cd427104a39c2fa5 [file] [log] [blame]
Finn Williams2605b232020-06-10 15:53:46 +01001//
2// Copyright © 2020 Arm Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
Finn Williams2605b232020-06-10 15:53:46 +01006#include "ParserFlatbuffersSerializeFixture.hpp"
Finn Williams85d36712021-01-26 22:30:06 +00007#include <armnnDeserializer/IDeserializer.hpp>
Finn Williams2605b232020-06-10 15:53:46 +01008
9#include <string>
10
Sadik Armagan1625efc2021-06-10 18:24:34 +010011TEST_SUITE("Deserializer_Rank")
12{
Finn Williams2605b232020-06-10 15:53:46 +010013struct RankFixture : public ParserFlatbuffersSerializeFixture
14{
15 explicit RankFixture(const std::string &inputShape,
16 const std::string &dataType)
17 {
18 m_JsonString = R"(
19 {
20 inputIds: [0],
21 outputIds: [2],
22 layers: [
23 {
24 layer_type: "InputLayer",
25 layer: {
26 base: {
27 base: {
28 layerName: "",
29 layerType: "Input",
30 inputSlots: [
31
32 ],
33 outputSlots: [
34 {
35 tensorInfo: {
36 dimensions: )" + inputShape + R"(,
37 dataType: )" + dataType + R"(,
38 quantizationScale: 0.0
39 }
40 }
41 ]
42 }
43 }
44 }
45 },
46 {
47 layer_type: "RankLayer",
48 layer: {
49 base: {
50 index: 1,
51 layerName: "rank",
52 layerType: "Rank",
53 inputSlots: [
54 {
55 connection: {
56 sourceLayerIndex: 0,
57 outputSlotIndex: 0
58 }
59 }
60 ],
61 outputSlots: [
62 {
63 tensorInfo: {
64 dimensions: [ 1 ],
65 dataType: "Signed32",
66 quantizationScale: 0.0,
67 dimensionality: 2
68 }
69 }
70 ]
71 }
72 }
73 },
74 {
75 layer_type: "OutputLayer",
76 layer: {
77 base: {
78 base: {
79 index: 2,
80 layerName: "",
81 layerType: "Output",
82 inputSlots: [
83 {
84 connection: {
85 sourceLayerIndex: 1,
86 outputSlotIndex: 0
87 }
88 }
89 ],
90 outputSlots: []
91 }
92 }
93 }
94 }
95 ],
96 }
97 )";
98 Setup();
99 }
100};
101
102struct SimpleRankDimSize1Fixture : RankFixture
103{
104 SimpleRankDimSize1Fixture() : RankFixture("[ 8 ]", "QSymmS16") {}
105};
106
107struct SimpleRankDimSize2Fixture : RankFixture
108{
109 SimpleRankDimSize2Fixture() : RankFixture("[ 3, 3 ]", "QSymmS8") {}
110};
111
112struct SimpleRankDimSize3Fixture : RankFixture
113{
114 SimpleRankDimSize3Fixture() : RankFixture("[ 2, 2, 1 ]", "Signed32") {}
115};
116
117struct SimpleRankDimSize4Fixture : RankFixture
118{
119 SimpleRankDimSize4Fixture() : RankFixture("[ 2, 2, 1, 1 ]", "Float32") {}
120};
121
Sadik Armagan1625efc2021-06-10 18:24:34 +0100122TEST_CASE_FIXTURE(SimpleRankDimSize1Fixture, "RankDimSize1Float16")
Finn Williams2605b232020-06-10 15:53:46 +0100123{
124 RunTest<1, armnn::DataType::QSymmS16, armnn::DataType::Signed32>( 0,
125 { 1, 2, 3, 4, 5, 6, 7, 8 },
126 { 1 });
127}
128
Sadik Armagan1625efc2021-06-10 18:24:34 +0100129TEST_CASE_FIXTURE(SimpleRankDimSize2Fixture, "RankDimSize2QAsymmU8")
Finn Williams2605b232020-06-10 15:53:46 +0100130{
131 RunTest<1, armnn::DataType::QSymmS8, armnn::DataType::Signed32>( 0,
132 { 1, 2, 3, 4, 5, 6, 7, 8, 9 },
133 { 2 });
134}
135
Sadik Armagan1625efc2021-06-10 18:24:34 +0100136TEST_CASE_FIXTURE(SimpleRankDimSize3Fixture, "RankDimSize3Signed32")
Finn Williams2605b232020-06-10 15:53:46 +0100137{
138 RunTest<1, armnn::DataType::Signed32, armnn::DataType::Signed32>( 0,
139 { 111, 85, 226, 3 },
140 { 3 });
141}
142
Sadik Armagan1625efc2021-06-10 18:24:34 +0100143TEST_CASE_FIXTURE(SimpleRankDimSize4Fixture, "RankDimSize4Float32")
Finn Williams2605b232020-06-10 15:53:46 +0100144{
145 RunTest<1, armnn::DataType::Float32, armnn::DataType::Signed32>( 0,
146 { 111, 85, 226, 3 },
147 { 4 });
148}
149
Sadik Armagan1625efc2021-06-10 18:24:34 +0100150}