blob: f263a5234016d5b420a81b2d9e937a642c2b2567 [file] [log] [blame]
Ferran Balaguer51dd62f2019-01-11 19:29:18 +00001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
Matthew Bentham4057d912019-01-21 15:45:51 +00006#include <PrototxtConversions.hpp>
Sang-Hoon Parkdd3f71b2020-02-18 11:27:35 +00007#include "armnn/Tensor.hpp"
Ferran Balaguer51dd62f2019-01-11 19:29:18 +00008
9#include <boost/test/unit_test.hpp>
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000010
Matthew Bentham4057d912019-01-21 15:45:51 +000011BOOST_AUTO_TEST_SUITE(PrototxtConversions)
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000012
Matthew Bentham4057d912019-01-21 15:45:51 +000013BOOST_AUTO_TEST_CASE(ConvertInt32ToOctalStringTest)
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000014{
Matthew Bentham4057d912019-01-21 15:45:51 +000015 using armnnUtils::ConvertInt32ToOctalString;
16
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000017 std::string octalString = ConvertInt32ToOctalString(1);
18 BOOST_ASSERT(octalString.compare("\\\\001\\\\000\\\\000\\\\000"));
19
20 octalString = ConvertInt32ToOctalString(256);
21 BOOST_ASSERT(octalString.compare("\\\\000\\\\100\\\\000\\\\000"));
22
23 octalString = ConvertInt32ToOctalString(65536);
24 BOOST_ASSERT(octalString.compare("\\\\000\\\\000\\\\100\\\\000"));
25
26 octalString = ConvertInt32ToOctalString(16777216);
27 BOOST_ASSERT(octalString.compare("\\\\000\\\\000\\\\000\\\\100"));
28
29 octalString = ConvertInt32ToOctalString(-1);
30 BOOST_ASSERT(octalString.compare("\\\\377\\\\377\\\\377\\\\377"));
31
32 octalString = ConvertInt32ToOctalString(-256);
33 BOOST_ASSERT(octalString.compare("\\\\000\\\\377\\\\377\\\\377"));
34
35 octalString = ConvertInt32ToOctalString(-65536);
36 BOOST_ASSERT(octalString.compare("\\\\000\\\\000\\\\377\\\\377"));
37
38 octalString = ConvertInt32ToOctalString(-16777216);
39 BOOST_ASSERT(octalString.compare("\\\\000\\\\000\\\\000\\\\377"));
40}
41
Sang-Hoon Parkdd3f71b2020-02-18 11:27:35 +000042BOOST_AUTO_TEST_CASE(ConvertTensorShapeToStringTest)
43{
44 using armnnUtils::ConvertTensorShapeToString;
45 using armnn::TensorShape;
46
47 auto createAndConvert = [](std::initializer_list<unsigned int> dims) -> std::string
48 {
49 auto shape = TensorShape{dims};
50 return ConvertTensorShapeToString(shape);
51 };
52
53 auto output_string = createAndConvert({5});
54 BOOST_ASSERT(output_string.compare(
55 "dim {\n"
56 "size: 5\n"
57 "}"));
58
59 output_string = createAndConvert({4, 5});
60 BOOST_ASSERT(output_string.compare(
61 "dim {\n"
62 "size: 4\n"
63 "}\n"
64 "dim {\n"
65 "size: 5\n"
66 "}"
67 ));
68
69 output_string = createAndConvert({3, 4, 5});
70 BOOST_ASSERT(output_string.compare(
71 "dim {\n"
72 "size: 3\n"
73 "}\n"
74 "dim {\n"
75 "size: 4\n"
76 "}\n"
77 "dim {\n"
78 "size: 5\n"
79 "}"
80 ));
81
82 output_string = createAndConvert({2, 3, 4, 5});
83 BOOST_ASSERT(output_string.compare(
84 "dim {\n"
85 "size: 2\n"
86 "}\n"
87 "dim {\n"
88 "size: 3\n"
89 "}\n"
90 "dim {\n"
91 "size: 4\n"
92 "}\n"
93 "dim {\n"
94 "size: 5\n"
95 "}"
96 ));
97
98 output_string = createAndConvert({1, 2, 3, 4, 5});
99 BOOST_ASSERT(output_string.compare(
100 "dim {\n"
101 "size: 1\n"
102 "}\n"
103 "dim {\n"
104 "size: 2\n"
105 "}\n"
106 "dim {\n"
107 "size: 3\n"
108 "}\n"
109 "dim {\n"
110 "size: 4\n"
111 "}\n"
112 "dim {\n"
113 "size: 5\n"
114 "}"
115 ));
116
117 output_string = createAndConvert({0xffffffff, 0xffffffff});
118 BOOST_ASSERT(output_string.compare(
119 "dim {\n"
120 "size: 4294967295\n"
121 "}\n"
122 "dim {\n"
123 "size: 4294967295\n"
124 "}"
125 ));
126
127 output_string = createAndConvert({1, 0});
128 BOOST_ASSERT(output_string.compare(
129 "dim {\n"
130 "size: 1\n"
131 "}\n"
132 "dim {\n"
133 "size: 0\n"
134 "}"
135 ));
136}
137
Ferran Balaguer51dd62f2019-01-11 19:29:18 +0000138BOOST_AUTO_TEST_SUITE_END()