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_EQ(integer_to_string(uint8_t(0)).str(), (StringView("0"))); 21 EXPECT_EQ(integer_to_string(uint8_t(1)).str(), (StringView("1"))); 22 EXPECT_EQ(integer_to_string(uint8_t(12)).str(), (StringView("12"))); 23 EXPECT_EQ(integer_to_string(uint8_t(123)).str(), (StringView("123"))); 24 EXPECT_EQ(integer_to_string(uint8_t(UINT8_MAX)).str(), (StringView("255"))); 25 EXPECT_EQ(integer_to_string(uint8_t(-1)).str(), (StringView("255"))); 26 } 27 28 TEST(LlvmLibcIntegerToStringTest, INT8) { 29 EXPECT_EQ(integer_to_string(int8_t(0)).str(), (StringView("0"))); 30 EXPECT_EQ(integer_to_string(int8_t(1)).str(), (StringView("1"))); 31 EXPECT_EQ(integer_to_string(int8_t(12)).str(), (StringView("12"))); 32 EXPECT_EQ(integer_to_string(int8_t(123)).str(), (StringView("123"))); 33 EXPECT_EQ(integer_to_string(int8_t(-12)).str(), (StringView("-12"))); 34 EXPECT_EQ(integer_to_string(int8_t(-123)).str(), (StringView("-123"))); 35 EXPECT_EQ(integer_to_string(int8_t(INT8_MAX)).str(), (StringView("127"))); 36 EXPECT_EQ(integer_to_string(int8_t(INT8_MIN)).str(), (StringView("-128"))); 37 } 38 39 TEST(LlvmLibcIntegerToStringTest, UINT16) { 40 EXPECT_EQ(integer_to_string(uint16_t(0)).str(), (StringView("0"))); 41 EXPECT_EQ(integer_to_string(uint16_t(1)).str(), (StringView("1"))); 42 EXPECT_EQ(integer_to_string(uint16_t(12)).str(), (StringView("12"))); 43 EXPECT_EQ(integer_to_string(uint16_t(123)).str(), (StringView("123"))); 44 EXPECT_EQ(integer_to_string(uint16_t(1234)).str(), (StringView("1234"))); 45 EXPECT_EQ(integer_to_string(uint16_t(12345)).str(), (StringView("12345"))); 46 EXPECT_EQ(integer_to_string(uint16_t(UINT16_MAX)).str(), 47 (StringView("65535"))); 48 EXPECT_EQ(integer_to_string(uint16_t(-1)).str(), (StringView("65535"))); 49 } 50 51 TEST(LlvmLibcIntegerToStringTest, INT16) { 52 EXPECT_EQ(integer_to_string(int16_t(0)).str(), (StringView("0"))); 53 EXPECT_EQ(integer_to_string(int16_t(1)).str(), (StringView("1"))); 54 EXPECT_EQ(integer_to_string(int16_t(12)).str(), (StringView("12"))); 55 EXPECT_EQ(integer_to_string(int16_t(123)).str(), (StringView("123"))); 56 EXPECT_EQ(integer_to_string(int16_t(1234)).str(), (StringView("1234"))); 57 EXPECT_EQ(integer_to_string(int16_t(12345)).str(), (StringView("12345"))); 58 EXPECT_EQ(integer_to_string(int16_t(-1)).str(), (StringView("-1"))); 59 EXPECT_EQ(integer_to_string(int16_t(-12)).str(), (StringView("-12"))); 60 EXPECT_EQ(integer_to_string(int16_t(-123)).str(), (StringView("-123"))); 61 EXPECT_EQ(integer_to_string(int16_t(-1234)).str(), (StringView("-1234"))); 62 EXPECT_EQ(integer_to_string(int16_t(-12345)).str(), (StringView("-12345"))); 63 EXPECT_EQ(integer_to_string(int16_t(INT16_MAX)).str(), (StringView("32767"))); 64 EXPECT_EQ(integer_to_string(int16_t(INT16_MIN)).str(), 65 (StringView("-32768"))); 66 } 67 68 TEST(LlvmLibcIntegerToStringTest, UINT32) { 69 EXPECT_EQ(integer_to_string(uint32_t(0)).str(), (StringView("0"))); 70 EXPECT_EQ(integer_to_string(uint32_t(1)).str(), (StringView("1"))); 71 EXPECT_EQ(integer_to_string(uint32_t(12)).str(), (StringView("12"))); 72 EXPECT_EQ(integer_to_string(uint32_t(123)).str(), (StringView("123"))); 73 EXPECT_EQ(integer_to_string(uint32_t(1234)).str(), (StringView("1234"))); 74 EXPECT_EQ(integer_to_string(uint32_t(12345)).str(), (StringView("12345"))); 75 EXPECT_EQ(integer_to_string(uint32_t(123456)).str(), (StringView("123456"))); 76 EXPECT_EQ(integer_to_string(uint32_t(1234567)).str(), 77 (StringView("1234567"))); 78 EXPECT_EQ(integer_to_string(uint32_t(12345678)).str(), 79 (StringView("12345678"))); 80 EXPECT_EQ(integer_to_string(uint32_t(123456789)).str(), 81 (StringView("123456789"))); 82 EXPECT_EQ(integer_to_string(uint32_t(1234567890)).str(), 83 (StringView("1234567890"))); 84 EXPECT_EQ(integer_to_string(uint32_t(UINT32_MAX)).str(), 85 (StringView("4294967295"))); 86 EXPECT_EQ(integer_to_string(uint32_t(-1)).str(), (StringView("4294967295"))); 87 } 88 89 TEST(LlvmLibcIntegerToStringTest, INT32) { 90 EXPECT_EQ(integer_to_string(int32_t(0)).str(), (StringView("0"))); 91 EXPECT_EQ(integer_to_string(int32_t(1)).str(), (StringView("1"))); 92 EXPECT_EQ(integer_to_string(int32_t(12)).str(), (StringView("12"))); 93 EXPECT_EQ(integer_to_string(int32_t(123)).str(), (StringView("123"))); 94 EXPECT_EQ(integer_to_string(int32_t(1234)).str(), (StringView("1234"))); 95 EXPECT_EQ(integer_to_string(int32_t(12345)).str(), (StringView("12345"))); 96 EXPECT_EQ(integer_to_string(int32_t(123456)).str(), (StringView("123456"))); 97 EXPECT_EQ(integer_to_string(int32_t(1234567)).str(), (StringView("1234567"))); 98 EXPECT_EQ(integer_to_string(int32_t(12345678)).str(), 99 (StringView("12345678"))); 100 EXPECT_EQ(integer_to_string(int32_t(123456789)).str(), 101 (StringView("123456789"))); 102 EXPECT_EQ(integer_to_string(int32_t(1234567890)).str(), 103 (StringView("1234567890"))); 104 EXPECT_EQ(integer_to_string(int32_t(-1)).str(), (StringView("-1"))); 105 EXPECT_EQ(integer_to_string(int32_t(-12)).str(), (StringView("-12"))); 106 EXPECT_EQ(integer_to_string(int32_t(-123)).str(), (StringView("-123"))); 107 EXPECT_EQ(integer_to_string(int32_t(-1234)).str(), (StringView("-1234"))); 108 EXPECT_EQ(integer_to_string(int32_t(-12345)).str(), (StringView("-12345"))); 109 EXPECT_EQ(integer_to_string(int32_t(-123456)).str(), (StringView("-123456"))); 110 EXPECT_EQ(integer_to_string(int32_t(-1234567)).str(), 111 (StringView("-1234567"))); 112 EXPECT_EQ(integer_to_string(int32_t(-12345678)).str(), 113 (StringView("-12345678"))); 114 EXPECT_EQ(integer_to_string(int32_t(-123456789)).str(), 115 (StringView("-123456789"))); 116 EXPECT_EQ(integer_to_string(int32_t(-1234567890)).str(), 117 (StringView("-1234567890"))); 118 EXPECT_EQ(integer_to_string(int32_t(INT32_MAX)).str(), 119 (StringView("2147483647"))); 120 EXPECT_EQ(integer_to_string(int32_t(INT32_MIN)).str(), 121 (StringView("-2147483648"))); 122 } 123 124 TEST(LlvmLibcIntegerToStringTest, UINT64) { 125 EXPECT_EQ(integer_to_string(uint64_t(0)).str(), (StringView("0"))); 126 EXPECT_EQ(integer_to_string(uint64_t(1)).str(), (StringView("1"))); 127 EXPECT_EQ(integer_to_string(uint64_t(12)).str(), (StringView("12"))); 128 EXPECT_EQ(integer_to_string(uint64_t(123)).str(), (StringView("123"))); 129 EXPECT_EQ(integer_to_string(uint64_t(1234)).str(), (StringView("1234"))); 130 EXPECT_EQ(integer_to_string(uint64_t(12345)).str(), (StringView("12345"))); 131 EXPECT_EQ(integer_to_string(uint64_t(123456)).str(), (StringView("123456"))); 132 EXPECT_EQ(integer_to_string(uint64_t(1234567)).str(), 133 (StringView("1234567"))); 134 EXPECT_EQ(integer_to_string(uint64_t(12345678)).str(), 135 (StringView("12345678"))); 136 EXPECT_EQ(integer_to_string(uint64_t(123456789)).str(), 137 (StringView("123456789"))); 138 EXPECT_EQ(integer_to_string(uint64_t(1234567890)).str(), 139 (StringView("1234567890"))); 140 EXPECT_EQ(integer_to_string(uint64_t(1234567890123456789)).str(), 141 (StringView("1234567890123456789"))); 142 EXPECT_EQ(integer_to_string(uint64_t(UINT64_MAX)).str(), 143 (StringView("18446744073709551615"))); 144 EXPECT_EQ(integer_to_string(uint64_t(-1)).str(), 145 (StringView("18446744073709551615"))); 146 } 147 148 TEST(LlvmLibcIntegerToStringTest, INT64) { 149 EXPECT_EQ(integer_to_string(int64_t(0)).str(), (StringView("0"))); 150 EXPECT_EQ(integer_to_string(int64_t(1)).str(), (StringView("1"))); 151 EXPECT_EQ(integer_to_string(int64_t(12)).str(), (StringView("12"))); 152 EXPECT_EQ(integer_to_string(int64_t(123)).str(), (StringView("123"))); 153 EXPECT_EQ(integer_to_string(int64_t(1234)).str(), (StringView("1234"))); 154 EXPECT_EQ(integer_to_string(int64_t(12345)).str(), (StringView("12345"))); 155 EXPECT_EQ(integer_to_string(int64_t(123456)).str(), (StringView("123456"))); 156 EXPECT_EQ(integer_to_string(int64_t(1234567)).str(), (StringView("1234567"))); 157 EXPECT_EQ(integer_to_string(int64_t(12345678)).str(), 158 (StringView("12345678"))); 159 EXPECT_EQ(integer_to_string(int64_t(123456789)).str(), 160 (StringView("123456789"))); 161 EXPECT_EQ(integer_to_string(int64_t(1234567890)).str(), 162 (StringView("1234567890"))); 163 EXPECT_EQ(integer_to_string(int64_t(1234567890123456789)).str(), 164 (StringView("1234567890123456789"))); 165 EXPECT_EQ(integer_to_string(int64_t(-1)).str(), (StringView("-1"))); 166 EXPECT_EQ(integer_to_string(int64_t(-12)).str(), (StringView("-12"))); 167 EXPECT_EQ(integer_to_string(int64_t(-123)).str(), (StringView("-123"))); 168 EXPECT_EQ(integer_to_string(int64_t(-1234)).str(), (StringView("-1234"))); 169 EXPECT_EQ(integer_to_string(int64_t(-12345)).str(), (StringView("-12345"))); 170 EXPECT_EQ(integer_to_string(int64_t(-123456)).str(), (StringView("-123456"))); 171 EXPECT_EQ(integer_to_string(int64_t(-1234567)).str(), 172 (StringView("-1234567"))); 173 EXPECT_EQ(integer_to_string(int64_t(-12345678)).str(), 174 (StringView("-12345678"))); 175 EXPECT_EQ(integer_to_string(int64_t(-123456789)).str(), 176 (StringView("-123456789"))); 177 EXPECT_EQ(integer_to_string(int64_t(-1234567890)).str(), 178 (StringView("-1234567890"))); 179 EXPECT_EQ(integer_to_string(int64_t(-1234567890123456789)).str(), 180 (StringView("-1234567890123456789"))); 181 EXPECT_EQ(integer_to_string(int64_t(INT64_MAX)).str(), 182 (StringView("9223372036854775807"))); 183 EXPECT_EQ(integer_to_string(int64_t(INT64_MIN)).str(), 184 (StringView("-9223372036854775808"))); 185 } 186