blob: d51c8015cff61cb8dcb45c6a27019bf0e9633d9e [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);
Narumol Prangnawaratac2770a2020-04-01 16:51:23 +010018 BOOST_TEST(octalString.compare("\\\\001\\\\000\\\\000\\\\000"));
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000019
20 octalString = ConvertInt32ToOctalString(256);
Narumol Prangnawaratac2770a2020-04-01 16:51:23 +010021 BOOST_TEST(octalString.compare("\\\\000\\\\100\\\\000\\\\000"));
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000022
23 octalString = ConvertInt32ToOctalString(65536);
Narumol Prangnawaratac2770a2020-04-01 16:51:23 +010024 BOOST_TEST(octalString.compare("\\\\000\\\\000\\\\100\\\\000"));
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000025
26 octalString = ConvertInt32ToOctalString(16777216);
Narumol Prangnawaratac2770a2020-04-01 16:51:23 +010027 BOOST_TEST(octalString.compare("\\\\000\\\\000\\\\000\\\\100"));
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000028
29 octalString = ConvertInt32ToOctalString(-1);
Narumol Prangnawaratac2770a2020-04-01 16:51:23 +010030 BOOST_TEST(octalString.compare("\\\\377\\\\377\\\\377\\\\377"));
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000031
32 octalString = ConvertInt32ToOctalString(-256);
Narumol Prangnawaratac2770a2020-04-01 16:51:23 +010033 BOOST_TEST(octalString.compare("\\\\000\\\\377\\\\377\\\\377"));
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000034
35 octalString = ConvertInt32ToOctalString(-65536);
Narumol Prangnawaratac2770a2020-04-01 16:51:23 +010036 BOOST_TEST(octalString.compare("\\\\000\\\\000\\\\377\\\\377"));
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000037
38 octalString = ConvertInt32ToOctalString(-16777216);
Narumol Prangnawaratac2770a2020-04-01 16:51:23 +010039 BOOST_TEST(octalString.compare("\\\\000\\\\000\\\\000\\\\377"));
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000040}
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});
Narumol Prangnawaratac2770a2020-04-01 16:51:23 +010054 BOOST_TEST(output_string.compare(
Sang-Hoon Parkdd3f71b2020-02-18 11:27:35 +000055 "dim {\n"
56 "size: 5\n"
57 "}"));
58
59 output_string = createAndConvert({4, 5});
Narumol Prangnawaratac2770a2020-04-01 16:51:23 +010060 BOOST_TEST(output_string.compare(
Sang-Hoon Parkdd3f71b2020-02-18 11:27:35 +000061 "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});
Narumol Prangnawaratac2770a2020-04-01 16:51:23 +010070 BOOST_TEST(output_string.compare(
Sang-Hoon Parkdd3f71b2020-02-18 11:27:35 +000071 "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});
Narumol Prangnawaratac2770a2020-04-01 16:51:23 +010083 BOOST_TEST(output_string.compare(
Sang-Hoon Parkdd3f71b2020-02-18 11:27:35 +000084 "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});
Narumol Prangnawaratac2770a2020-04-01 16:51:23 +010099 BOOST_TEST(output_string.compare(
Sang-Hoon Parkdd3f71b2020-02-18 11:27:35 +0000100 "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});
Narumol Prangnawaratac2770a2020-04-01 16:51:23 +0100118 BOOST_TEST(output_string.compare(
Sang-Hoon Parkdd3f71b2020-02-18 11:27:35 +0000119 "dim {\n"
120 "size: 4294967295\n"
121 "}\n"
122 "dim {\n"
123 "size: 4294967295\n"
124 "}"
125 ));
126
127 output_string = createAndConvert({1, 0});
Narumol Prangnawaratac2770a2020-04-01 16:51:23 +0100128 BOOST_TEST(output_string.compare(
Sang-Hoon Parkdd3f71b2020-02-18 11:27:35 +0000129 "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()