1 //===-- Unittests for integer_to_string -----------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8
9 #include "src/__support/CPP/StringView.h"
10 #include "src/__support/integer_to_string.h"
11
12 #include "utils/UnitTest/Test.h"
13
14 #include "limits.h"
15
16 using __llvm_libc::integer_to_string;
17 using __llvm_libc::cpp::StringView;
18
TEST(LlvmLibcIntegerToStringTest,UINT8)19 TEST(LlvmLibcIntegerToStringTest, UINT8) {
20 EXPECT_TRUE(integer_to_string(uint8_t(0)).str().equals(StringView("0")));
21 EXPECT_TRUE(integer_to_string(uint8_t(1)).str().equals(StringView("1")));
22 EXPECT_TRUE(integer_to_string(uint8_t(12)).str().equals(StringView("12")));
23 EXPECT_TRUE(integer_to_string(uint8_t(123)).str().equals(StringView("123")));
24 EXPECT_TRUE(
25 integer_to_string(uint8_t(UINT8_MAX)).str().equals(StringView("255")));
26 EXPECT_TRUE(integer_to_string(uint8_t(-1)).str().equals(StringView("255")));
27 }
28
TEST(LlvmLibcIntegerToStringTest,INT8)29 TEST(LlvmLibcIntegerToStringTest, INT8) {
30 EXPECT_TRUE(integer_to_string(int8_t(0)).str().equals(StringView("0")));
31 EXPECT_TRUE(integer_to_string(int8_t(1)).str().equals(StringView("1")));
32 EXPECT_TRUE(integer_to_string(int8_t(12)).str().equals(StringView("12")));
33 EXPECT_TRUE(integer_to_string(int8_t(123)).str().equals(StringView("123")));
34 EXPECT_TRUE(integer_to_string(int8_t(-12)).str().equals(StringView("-12")));
35 EXPECT_TRUE(integer_to_string(int8_t(-123)).str().equals(StringView("-123")));
36 EXPECT_TRUE(
37 integer_to_string(int8_t(INT8_MAX)).str().equals(StringView("127")));
38 EXPECT_TRUE(
39 integer_to_string(int8_t(INT8_MIN)).str().equals(StringView("-128")));
40 }
41
TEST(LlvmLibcIntegerToStringTest,UINT16)42 TEST(LlvmLibcIntegerToStringTest, UINT16) {
43 EXPECT_TRUE(integer_to_string(uint16_t(0)).str().equals(StringView("0")));
44 EXPECT_TRUE(integer_to_string(uint16_t(1)).str().equals(StringView("1")));
45 EXPECT_TRUE(integer_to_string(uint16_t(12)).str().equals(StringView("12")));
46 EXPECT_TRUE(integer_to_string(uint16_t(123)).str().equals(StringView("123")));
47 EXPECT_TRUE(
48 integer_to_string(uint16_t(1234)).str().equals(StringView("1234")));
49 EXPECT_TRUE(
50 integer_to_string(uint16_t(12345)).str().equals(StringView("12345")));
51 EXPECT_TRUE(integer_to_string(uint16_t(UINT16_MAX))
52 .str()
53 .equals(StringView("65535")));
54 EXPECT_TRUE(
55 integer_to_string(uint16_t(-1)).str().equals(StringView("65535")));
56 }
57
TEST(LlvmLibcIntegerToStringTest,INT16)58 TEST(LlvmLibcIntegerToStringTest, INT16) {
59 EXPECT_TRUE(integer_to_string(int16_t(0)).str().equals(StringView("0")));
60 EXPECT_TRUE(integer_to_string(int16_t(1)).str().equals(StringView("1")));
61 EXPECT_TRUE(integer_to_string(int16_t(12)).str().equals(StringView("12")));
62 EXPECT_TRUE(integer_to_string(int16_t(123)).str().equals(StringView("123")));
63 EXPECT_TRUE(
64 integer_to_string(int16_t(1234)).str().equals(StringView("1234")));
65 EXPECT_TRUE(
66 integer_to_string(int16_t(12345)).str().equals(StringView("12345")));
67 EXPECT_TRUE(integer_to_string(int16_t(-1)).str().equals(StringView("-1")));
68 EXPECT_TRUE(integer_to_string(int16_t(-12)).str().equals(StringView("-12")));
69 EXPECT_TRUE(
70 integer_to_string(int16_t(-123)).str().equals(StringView("-123")));
71 EXPECT_TRUE(
72 integer_to_string(int16_t(-1234)).str().equals(StringView("-1234")));
73 EXPECT_TRUE(
74 integer_to_string(int16_t(-12345)).str().equals(StringView("-12345")));
75 EXPECT_TRUE(
76 integer_to_string(int16_t(INT16_MAX)).str().equals(StringView("32767")));
77 EXPECT_TRUE(
78 integer_to_string(int16_t(INT16_MIN)).str().equals(StringView("-32768")));
79 }
80
TEST(LlvmLibcIntegerToStringTest,UINT32)81 TEST(LlvmLibcIntegerToStringTest, UINT32) {
82 EXPECT_TRUE(integer_to_string(uint32_t(0)).str().equals(StringView("0")));
83 EXPECT_TRUE(integer_to_string(uint32_t(1)).str().equals(StringView("1")));
84 EXPECT_TRUE(integer_to_string(uint32_t(12)).str().equals(StringView("12")));
85 EXPECT_TRUE(integer_to_string(uint32_t(123)).str().equals(StringView("123")));
86 EXPECT_TRUE(
87 integer_to_string(uint32_t(1234)).str().equals(StringView("1234")));
88 EXPECT_TRUE(
89 integer_to_string(uint32_t(12345)).str().equals(StringView("12345")));
90 EXPECT_TRUE(
91 integer_to_string(uint32_t(123456)).str().equals(StringView("123456")));
92 EXPECT_TRUE(
93 integer_to_string(uint32_t(1234567)).str().equals(StringView("1234567")));
94 EXPECT_TRUE(integer_to_string(uint32_t(12345678))
95 .str()
96 .equals(StringView("12345678")));
97 EXPECT_TRUE(integer_to_string(uint32_t(123456789))
98 .str()
99 .equals(StringView("123456789")));
100 EXPECT_TRUE(integer_to_string(uint32_t(1234567890))
101 .str()
102 .equals(StringView("1234567890")));
103 EXPECT_TRUE(integer_to_string(uint32_t(UINT32_MAX))
104 .str()
105 .equals(StringView("4294967295")));
106 EXPECT_TRUE(
107 integer_to_string(uint32_t(-1)).str().equals(StringView("4294967295")));
108 }
109
TEST(LlvmLibcIntegerToStringTest,INT32)110 TEST(LlvmLibcIntegerToStringTest, INT32) {
111 EXPECT_TRUE(integer_to_string(int32_t(0)).str().equals(StringView("0")));
112 EXPECT_TRUE(integer_to_string(int32_t(1)).str().equals(StringView("1")));
113 EXPECT_TRUE(integer_to_string(int32_t(12)).str().equals(StringView("12")));
114 EXPECT_TRUE(integer_to_string(int32_t(123)).str().equals(StringView("123")));
115 EXPECT_TRUE(
116 integer_to_string(int32_t(1234)).str().equals(StringView("1234")));
117 EXPECT_TRUE(
118 integer_to_string(int32_t(12345)).str().equals(StringView("12345")));
119 EXPECT_TRUE(
120 integer_to_string(int32_t(123456)).str().equals(StringView("123456")));
121 EXPECT_TRUE(
122 integer_to_string(int32_t(1234567)).str().equals(StringView("1234567")));
123 EXPECT_TRUE(integer_to_string(int32_t(12345678))
124 .str()
125 .equals(StringView("12345678")));
126 EXPECT_TRUE(integer_to_string(int32_t(123456789))
127 .str()
128 .equals(StringView("123456789")));
129 EXPECT_TRUE(integer_to_string(int32_t(1234567890))
130 .str()
131 .equals(StringView("1234567890")));
132 EXPECT_TRUE(integer_to_string(int32_t(-1)).str().equals(StringView("-1")));
133 EXPECT_TRUE(integer_to_string(int32_t(-12)).str().equals(StringView("-12")));
134 EXPECT_TRUE(
135 integer_to_string(int32_t(-123)).str().equals(StringView("-123")));
136 EXPECT_TRUE(
137 integer_to_string(int32_t(-1234)).str().equals(StringView("-1234")));
138 EXPECT_TRUE(
139 integer_to_string(int32_t(-12345)).str().equals(StringView("-12345")));
140 EXPECT_TRUE(
141 integer_to_string(int32_t(-123456)).str().equals(StringView("-123456")));
142 EXPECT_TRUE(integer_to_string(int32_t(-1234567))
143 .str()
144 .equals(StringView("-1234567")));
145 EXPECT_TRUE(integer_to_string(int32_t(-12345678))
146 .str()
147 .equals(StringView("-12345678")));
148 EXPECT_TRUE(integer_to_string(int32_t(-123456789))
149 .str()
150 .equals(StringView("-123456789")));
151 EXPECT_TRUE(integer_to_string(int32_t(-1234567890))
152 .str()
153 .equals(StringView("-1234567890")));
154 EXPECT_TRUE(integer_to_string(int32_t(INT32_MAX))
155 .str()
156 .equals(StringView("2147483647")));
157 EXPECT_TRUE(integer_to_string(int32_t(INT32_MIN))
158 .str()
159 .equals(StringView("-2147483648")));
160 }
161
TEST(LlvmLibcIntegerToStringTest,UINT64)162 TEST(LlvmLibcIntegerToStringTest, UINT64) {
163 EXPECT_TRUE(integer_to_string(uint64_t(0)).str().equals(StringView("0")));
164 EXPECT_TRUE(integer_to_string(uint64_t(1)).str().equals(StringView("1")));
165 EXPECT_TRUE(integer_to_string(uint64_t(12)).str().equals(StringView("12")));
166 EXPECT_TRUE(integer_to_string(uint64_t(123)).str().equals(StringView("123")));
167 EXPECT_TRUE(
168 integer_to_string(uint64_t(1234)).str().equals(StringView("1234")));
169 EXPECT_TRUE(
170 integer_to_string(uint64_t(12345)).str().equals(StringView("12345")));
171 EXPECT_TRUE(
172 integer_to_string(uint64_t(123456)).str().equals(StringView("123456")));
173 EXPECT_TRUE(
174 integer_to_string(uint64_t(1234567)).str().equals(StringView("1234567")));
175 EXPECT_TRUE(integer_to_string(uint64_t(12345678))
176 .str()
177 .equals(StringView("12345678")));
178 EXPECT_TRUE(integer_to_string(uint64_t(123456789))
179 .str()
180 .equals(StringView("123456789")));
181 EXPECT_TRUE(integer_to_string(uint64_t(1234567890))
182 .str()
183 .equals(StringView("1234567890")));
184 EXPECT_TRUE(integer_to_string(uint64_t(1234567890123456789))
185 .str()
186 .equals(StringView("1234567890123456789")));
187 EXPECT_TRUE(integer_to_string(uint64_t(UINT64_MAX))
188 .str()
189 .equals(StringView("18446744073709551615")));
190 EXPECT_TRUE(integer_to_string(uint64_t(-1))
191 .str()
192 .equals(StringView("18446744073709551615")));
193 }
194
TEST(LlvmLibcIntegerToStringTest,INT64)195 TEST(LlvmLibcIntegerToStringTest, INT64) {
196 EXPECT_TRUE(integer_to_string(int64_t(0)).str().equals(StringView("0")));
197 EXPECT_TRUE(integer_to_string(int64_t(1)).str().equals(StringView("1")));
198 EXPECT_TRUE(integer_to_string(int64_t(12)).str().equals(StringView("12")));
199 EXPECT_TRUE(integer_to_string(int64_t(123)).str().equals(StringView("123")));
200 EXPECT_TRUE(
201 integer_to_string(int64_t(1234)).str().equals(StringView("1234")));
202 EXPECT_TRUE(
203 integer_to_string(int64_t(12345)).str().equals(StringView("12345")));
204 EXPECT_TRUE(
205 integer_to_string(int64_t(123456)).str().equals(StringView("123456")));
206 EXPECT_TRUE(
207 integer_to_string(int64_t(1234567)).str().equals(StringView("1234567")));
208 EXPECT_TRUE(integer_to_string(int64_t(12345678))
209 .str()
210 .equals(StringView("12345678")));
211 EXPECT_TRUE(integer_to_string(int64_t(123456789))
212 .str()
213 .equals(StringView("123456789")));
214 EXPECT_TRUE(integer_to_string(int64_t(1234567890))
215 .str()
216 .equals(StringView("1234567890")));
217 EXPECT_TRUE(integer_to_string(int64_t(1234567890123456789))
218 .str()
219 .equals(StringView("1234567890123456789")));
220 EXPECT_TRUE(integer_to_string(int64_t(-1)).str().equals(StringView("-1")));
221 EXPECT_TRUE(integer_to_string(int64_t(-12)).str().equals(StringView("-12")));
222 EXPECT_TRUE(
223 integer_to_string(int64_t(-123)).str().equals(StringView("-123")));
224 EXPECT_TRUE(
225 integer_to_string(int64_t(-1234)).str().equals(StringView("-1234")));
226 EXPECT_TRUE(
227 integer_to_string(int64_t(-12345)).str().equals(StringView("-12345")));
228 EXPECT_TRUE(
229 integer_to_string(int64_t(-123456)).str().equals(StringView("-123456")));
230 EXPECT_TRUE(integer_to_string(int64_t(-1234567))
231 .str()
232 .equals(StringView("-1234567")));
233 EXPECT_TRUE(integer_to_string(int64_t(-12345678))
234 .str()
235 .equals(StringView("-12345678")));
236 EXPECT_TRUE(integer_to_string(int64_t(-123456789))
237 .str()
238 .equals(StringView("-123456789")));
239 EXPECT_TRUE(integer_to_string(int64_t(-1234567890))
240 .str()
241 .equals(StringView("-1234567890")));
242 EXPECT_TRUE(integer_to_string(int64_t(-1234567890123456789))
243 .str()
244 .equals(StringView("-1234567890123456789")));
245 EXPECT_TRUE(integer_to_string(int64_t(INT64_MAX))
246 .str()
247 .equals(StringView("9223372036854775807")));
248 EXPECT_TRUE(integer_to_string(int64_t(INT64_MIN))
249 .str()
250 .equals(StringView("-9223372036854775808")));
251 }
252