xref: /aosp_15_r20/external/armnn/src/armnnUtils/test/PrototxtConversionsTest.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2017 Arm Ltd. All rights reserved.
3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT
4*89c4ff92SAndroid Build Coastguard Worker //
5*89c4ff92SAndroid Build Coastguard Worker 
6*89c4ff92SAndroid Build Coastguard Worker #include <PrototxtConversions.hpp>
7*89c4ff92SAndroid Build Coastguard Worker #include "armnn/Tensor.hpp"
8*89c4ff92SAndroid Build Coastguard Worker 
9*89c4ff92SAndroid Build Coastguard Worker #include <doctest/doctest.h>
10*89c4ff92SAndroid Build Coastguard Worker 
11*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("PrototxtConversions")
12*89c4ff92SAndroid Build Coastguard Worker {
13*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("ConvertInt32ToOctalStringTest")
14*89c4ff92SAndroid Build Coastguard Worker {
15*89c4ff92SAndroid Build Coastguard Worker     using armnnUtils::ConvertInt32ToOctalString;
16*89c4ff92SAndroid Build Coastguard Worker 
17*89c4ff92SAndroid Build Coastguard Worker     std::string octalString = ConvertInt32ToOctalString(1);
18*89c4ff92SAndroid Build Coastguard Worker     CHECK(octalString.compare("\\\\001\\\\000\\\\000\\\\000"));
19*89c4ff92SAndroid Build Coastguard Worker 
20*89c4ff92SAndroid Build Coastguard Worker     octalString = ConvertInt32ToOctalString(256);
21*89c4ff92SAndroid Build Coastguard Worker     CHECK(octalString.compare("\\\\000\\\\100\\\\000\\\\000"));
22*89c4ff92SAndroid Build Coastguard Worker 
23*89c4ff92SAndroid Build Coastguard Worker     octalString = ConvertInt32ToOctalString(65536);
24*89c4ff92SAndroid Build Coastguard Worker     CHECK(octalString.compare("\\\\000\\\\000\\\\100\\\\000"));
25*89c4ff92SAndroid Build Coastguard Worker 
26*89c4ff92SAndroid Build Coastguard Worker     octalString = ConvertInt32ToOctalString(16777216);
27*89c4ff92SAndroid Build Coastguard Worker     CHECK(octalString.compare("\\\\000\\\\000\\\\000\\\\100"));
28*89c4ff92SAndroid Build Coastguard Worker 
29*89c4ff92SAndroid Build Coastguard Worker     octalString = ConvertInt32ToOctalString(-1);
30*89c4ff92SAndroid Build Coastguard Worker     CHECK(octalString.compare("\\\\377\\\\377\\\\377\\\\377"));
31*89c4ff92SAndroid Build Coastguard Worker 
32*89c4ff92SAndroid Build Coastguard Worker     octalString = ConvertInt32ToOctalString(-256);
33*89c4ff92SAndroid Build Coastguard Worker     CHECK(octalString.compare("\\\\000\\\\377\\\\377\\\\377"));
34*89c4ff92SAndroid Build Coastguard Worker 
35*89c4ff92SAndroid Build Coastguard Worker     octalString = ConvertInt32ToOctalString(-65536);
36*89c4ff92SAndroid Build Coastguard Worker     CHECK(octalString.compare("\\\\000\\\\000\\\\377\\\\377"));
37*89c4ff92SAndroid Build Coastguard Worker 
38*89c4ff92SAndroid Build Coastguard Worker     octalString = ConvertInt32ToOctalString(-16777216);
39*89c4ff92SAndroid Build Coastguard Worker     CHECK(octalString.compare("\\\\000\\\\000\\\\000\\\\377"));
40*89c4ff92SAndroid Build Coastguard Worker }
41*89c4ff92SAndroid Build Coastguard Worker 
42*89c4ff92SAndroid Build Coastguard Worker TEST_CASE("ConvertTensorShapeToStringTest")
43*89c4ff92SAndroid Build Coastguard Worker {
44*89c4ff92SAndroid Build Coastguard Worker     using armnnUtils::ConvertTensorShapeToString;
45*89c4ff92SAndroid Build Coastguard Worker     using armnn::TensorShape;
46*89c4ff92SAndroid Build Coastguard Worker 
47*89c4ff92SAndroid Build Coastguard Worker     auto createAndConvert = [](std::initializer_list<unsigned int> dims) -> std::string
__anon4f4d5e920102(std::initializer_list<unsigned int> dims) 48*89c4ff92SAndroid Build Coastguard Worker     {
49*89c4ff92SAndroid Build Coastguard Worker         auto shape = TensorShape{dims};
50*89c4ff92SAndroid Build Coastguard Worker         return ConvertTensorShapeToString(shape);
51*89c4ff92SAndroid Build Coastguard Worker     };
52*89c4ff92SAndroid Build Coastguard Worker 
53*89c4ff92SAndroid Build Coastguard Worker     auto output_string = createAndConvert({5});
54*89c4ff92SAndroid Build Coastguard Worker     CHECK(output_string.compare(
55*89c4ff92SAndroid Build Coastguard Worker         "dim {\n"
56*89c4ff92SAndroid Build Coastguard Worker         "size: 5\n"
57*89c4ff92SAndroid Build Coastguard Worker         "}"));
58*89c4ff92SAndroid Build Coastguard Worker 
59*89c4ff92SAndroid Build Coastguard Worker     output_string = createAndConvert({4, 5});
60*89c4ff92SAndroid Build Coastguard Worker     CHECK(output_string.compare(
61*89c4ff92SAndroid Build Coastguard Worker         "dim {\n"
62*89c4ff92SAndroid Build Coastguard Worker             "size: 4\n"
63*89c4ff92SAndroid Build Coastguard Worker         "}\n"
64*89c4ff92SAndroid Build Coastguard Worker         "dim {\n"
65*89c4ff92SAndroid Build Coastguard Worker             "size: 5\n"
66*89c4ff92SAndroid Build Coastguard Worker         "}"
67*89c4ff92SAndroid Build Coastguard Worker         ));
68*89c4ff92SAndroid Build Coastguard Worker 
69*89c4ff92SAndroid Build Coastguard Worker     output_string = createAndConvert({3, 4, 5});
70*89c4ff92SAndroid Build Coastguard Worker     CHECK(output_string.compare(
71*89c4ff92SAndroid Build Coastguard Worker         "dim {\n"
72*89c4ff92SAndroid Build Coastguard Worker             "size: 3\n"
73*89c4ff92SAndroid Build Coastguard Worker         "}\n"
74*89c4ff92SAndroid Build Coastguard Worker         "dim {\n"
75*89c4ff92SAndroid Build Coastguard Worker             "size: 4\n"
76*89c4ff92SAndroid Build Coastguard Worker         "}\n"
77*89c4ff92SAndroid Build Coastguard Worker         "dim {\n"
78*89c4ff92SAndroid Build Coastguard Worker             "size: 5\n"
79*89c4ff92SAndroid Build Coastguard Worker         "}"
80*89c4ff92SAndroid Build Coastguard Worker         ));
81*89c4ff92SAndroid Build Coastguard Worker 
82*89c4ff92SAndroid Build Coastguard Worker     output_string = createAndConvert({2, 3, 4, 5});
83*89c4ff92SAndroid Build Coastguard Worker     CHECK(output_string.compare(
84*89c4ff92SAndroid Build Coastguard Worker         "dim {\n"
85*89c4ff92SAndroid Build Coastguard Worker             "size: 2\n"
86*89c4ff92SAndroid Build Coastguard Worker         "}\n"
87*89c4ff92SAndroid Build Coastguard Worker         "dim {\n"
88*89c4ff92SAndroid Build Coastguard Worker             "size: 3\n"
89*89c4ff92SAndroid Build Coastguard Worker         "}\n"
90*89c4ff92SAndroid Build Coastguard Worker         "dim {\n"
91*89c4ff92SAndroid Build Coastguard Worker             "size: 4\n"
92*89c4ff92SAndroid Build Coastguard Worker         "}\n"
93*89c4ff92SAndroid Build Coastguard Worker         "dim {\n"
94*89c4ff92SAndroid Build Coastguard Worker             "size: 5\n"
95*89c4ff92SAndroid Build Coastguard Worker         "}"
96*89c4ff92SAndroid Build Coastguard Worker         ));
97*89c4ff92SAndroid Build Coastguard Worker 
98*89c4ff92SAndroid Build Coastguard Worker     output_string = createAndConvert({1, 2, 3, 4, 5});
99*89c4ff92SAndroid Build Coastguard Worker     CHECK(output_string.compare(
100*89c4ff92SAndroid Build Coastguard Worker         "dim {\n"
101*89c4ff92SAndroid Build Coastguard Worker             "size: 1\n"
102*89c4ff92SAndroid Build Coastguard Worker         "}\n"
103*89c4ff92SAndroid Build Coastguard Worker         "dim {\n"
104*89c4ff92SAndroid Build Coastguard Worker             "size: 2\n"
105*89c4ff92SAndroid Build Coastguard Worker         "}\n"
106*89c4ff92SAndroid Build Coastguard Worker         "dim {\n"
107*89c4ff92SAndroid Build Coastguard Worker             "size: 3\n"
108*89c4ff92SAndroid Build Coastguard Worker         "}\n"
109*89c4ff92SAndroid Build Coastguard Worker         "dim {\n"
110*89c4ff92SAndroid Build Coastguard Worker             "size: 4\n"
111*89c4ff92SAndroid Build Coastguard Worker         "}\n"
112*89c4ff92SAndroid Build Coastguard Worker         "dim {\n"
113*89c4ff92SAndroid Build Coastguard Worker             "size: 5\n"
114*89c4ff92SAndroid Build Coastguard Worker         "}"
115*89c4ff92SAndroid Build Coastguard Worker         ));
116*89c4ff92SAndroid Build Coastguard Worker 
117*89c4ff92SAndroid Build Coastguard Worker     output_string = createAndConvert({0xffffffff, 0xffffffff});
118*89c4ff92SAndroid Build Coastguard Worker     CHECK(output_string.compare(
119*89c4ff92SAndroid Build Coastguard Worker         "dim {\n"
120*89c4ff92SAndroid Build Coastguard Worker             "size: 4294967295\n"
121*89c4ff92SAndroid Build Coastguard Worker         "}\n"
122*89c4ff92SAndroid Build Coastguard Worker         "dim {\n"
123*89c4ff92SAndroid Build Coastguard Worker             "size: 4294967295\n"
124*89c4ff92SAndroid Build Coastguard Worker         "}"
125*89c4ff92SAndroid Build Coastguard Worker         ));
126*89c4ff92SAndroid Build Coastguard Worker 
127*89c4ff92SAndroid Build Coastguard Worker     output_string = createAndConvert({1, 0});
128*89c4ff92SAndroid Build Coastguard Worker     CHECK(output_string.compare(
129*89c4ff92SAndroid Build Coastguard Worker         "dim {\n"
130*89c4ff92SAndroid Build Coastguard Worker             "size: 1\n"
131*89c4ff92SAndroid Build Coastguard Worker         "}\n"
132*89c4ff92SAndroid Build Coastguard Worker         "dim {\n"
133*89c4ff92SAndroid Build Coastguard Worker             "size: 0\n"
134*89c4ff92SAndroid Build Coastguard Worker         "}"
135*89c4ff92SAndroid Build Coastguard Worker         ));
136*89c4ff92SAndroid Build Coastguard Worker }
137*89c4ff92SAndroid Build Coastguard Worker 
138*89c4ff92SAndroid Build Coastguard Worker }
139