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 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 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 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 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 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 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 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 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