blob: dc6b6a58f963bf0e4c6ddfdf6efe9c3ae6ceef51 [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
Sadik Armagan1625efc2021-06-10 18:24:34 +01009#include <doctest/doctest.h>
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000010
Sadik Armagan1625efc2021-06-10 18:24:34 +010011TEST_SUITE("PrototxtConversions")
12{
13TEST_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);
Sadik Armagan1625efc2021-06-10 18:24:34 +010018 CHECK(octalString.compare("\\\\001\\\\000\\\\000\\\\000"));
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000019
20 octalString = ConvertInt32ToOctalString(256);
Sadik Armagan1625efc2021-06-10 18:24:34 +010021 CHECK(octalString.compare("\\\\000\\\\100\\\\000\\\\000"));
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000022
23 octalString = ConvertInt32ToOctalString(65536);
Sadik Armagan1625efc2021-06-10 18:24:34 +010024 CHECK(octalString.compare("\\\\000\\\\000\\\\100\\\\000"));
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000025
26 octalString = ConvertInt32ToOctalString(16777216);
Sadik Armagan1625efc2021-06-10 18:24:34 +010027 CHECK(octalString.compare("\\\\000\\\\000\\\\000\\\\100"));
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000028
29 octalString = ConvertInt32ToOctalString(-1);
Sadik Armagan1625efc2021-06-10 18:24:34 +010030 CHECK(octalString.compare("\\\\377\\\\377\\\\377\\\\377"));
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000031
32 octalString = ConvertInt32ToOctalString(-256);
Sadik Armagan1625efc2021-06-10 18:24:34 +010033 CHECK(octalString.compare("\\\\000\\\\377\\\\377\\\\377"));
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000034
35 octalString = ConvertInt32ToOctalString(-65536);
Sadik Armagan1625efc2021-06-10 18:24:34 +010036 CHECK(octalString.compare("\\\\000\\\\000\\\\377\\\\377"));
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000037
38 octalString = ConvertInt32ToOctalString(-16777216);
Sadik Armagan1625efc2021-06-10 18:24:34 +010039 CHECK(octalString.compare("\\\\000\\\\000\\\\000\\\\377"));
Ferran Balaguer51dd62f2019-01-11 19:29:18 +000040}
41
Sadik Armagan1625efc2021-06-10 18:24:34 +010042TEST_CASE("ConvertTensorShapeToStringTest")
Sang-Hoon Parkdd3f71b2020-02-18 11:27:35 +000043{
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});
Sadik Armagan1625efc2021-06-10 18:24:34 +010054 CHECK(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});
Sadik Armagan1625efc2021-06-10 18:24:34 +010060 CHECK(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});
Sadik Armagan1625efc2021-06-10 18:24:34 +010070 CHECK(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});
Sadik Armagan1625efc2021-06-10 18:24:34 +010083 CHECK(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});
Sadik Armagan1625efc2021-06-10 18:24:34 +010099 CHECK(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});
Sadik Armagan1625efc2021-06-10 18:24:34 +0100118 CHECK(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});
Sadik Armagan1625efc2021-06-10 18:24:34 +0100128 CHECK(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
Sadik Armagan1625efc2021-06-10 18:24:34 +0100138}