test/zserio/StringConvertUtilTest.cpp
Line | Count | Source |
1 | | #include <limits> |
2 | | #include <array> |
3 | | |
4 | | #include "gtest/gtest.h" |
5 | | |
6 | | #include "zserio/StringConvertUtil.h" |
7 | | #include "zserio/StringView.h" |
8 | | |
9 | | namespace zserio |
10 | | { |
11 | | |
12 | | using allocator_type = std::allocator<uint8_t>; |
13 | | |
14 | | TEST(StringConvertUtilTest, convertInt8) |
15 | 1 | { |
16 | 1 | using type = int8_t; |
17 | 1 | const type value = std::numeric_limits<type>::min(); |
18 | 1 | std::array<char, 24> buffer = {}; |
19 | 1 | const char* valueInString = convertIntToString(buffer, value); |
20 | 1 | EXPECT_EQ(std::to_string(value), valueInString); |
21 | | |
22 | 1 | EXPECT_EQ(std::to_string(value), toString(value)); |
23 | 1 | } |
24 | | |
25 | | TEST(StringConvertUtilTest, convertUInt8) |
26 | 1 | { |
27 | 1 | using type = uint8_t; |
28 | 1 | const type value = std::numeric_limits<type>::max(); |
29 | 1 | std::array<char, 24> buffer = {}; |
30 | 1 | const char* valueInString = convertIntToString(buffer, value); |
31 | 1 | EXPECT_EQ(std::to_string(value), valueInString); |
32 | | |
33 | 1 | EXPECT_EQ(std::to_string(value), toString(value)); |
34 | 1 | } |
35 | | |
36 | | TEST(StringConvertUtilTest, convertInt16) |
37 | 1 | { |
38 | 1 | using type = int16_t; |
39 | 1 | const type value = std::numeric_limits<type>::min(); |
40 | 1 | std::array<char, 24> buffer = {}; |
41 | 1 | const char* valueInString = convertIntToString(buffer, value); |
42 | 1 | EXPECT_EQ(std::to_string(value), valueInString); |
43 | | |
44 | 1 | EXPECT_EQ(std::to_string(value), toString(value)); |
45 | 1 | } |
46 | | |
47 | | TEST(StringConvertUtilTest, convertUInt16) |
48 | 1 | { |
49 | 1 | using type = uint16_t; |
50 | 1 | const type value = std::numeric_limits<type>::max(); |
51 | 1 | std::array<char, 24> buffer = {}; |
52 | 1 | const char* valueInString = convertIntToString(buffer, value); |
53 | 1 | EXPECT_EQ(std::to_string(value), valueInString); |
54 | | |
55 | 1 | EXPECT_EQ(std::to_string(value), toString(value)); |
56 | 1 | } |
57 | | |
58 | | TEST(StringConvertUtilTest, convertInt32) |
59 | 1 | { |
60 | 1 | using type = int32_t; |
61 | 1 | const type value = std::numeric_limits<type>::min(); |
62 | 1 | std::array<char, 24> buffer = {}; |
63 | 1 | const char* valueInString = convertIntToString(buffer, value); |
64 | 1 | EXPECT_EQ(std::to_string(value), valueInString); |
65 | | |
66 | 1 | EXPECT_EQ(std::to_string(value), toString(value)); |
67 | 1 | } |
68 | | |
69 | | TEST(StringConvertUtilTest, convertUInt32) |
70 | 1 | { |
71 | 1 | using type = uint32_t; |
72 | 1 | const type value = std::numeric_limits<type>::max(); |
73 | 1 | std::array<char, 24> buffer = {}; |
74 | 1 | const char* valueInString = convertIntToString(buffer, value); |
75 | 1 | EXPECT_EQ(std::to_string(value), valueInString); |
76 | | |
77 | 1 | EXPECT_EQ(std::to_string(value), toString(value)); |
78 | 1 | } |
79 | | |
80 | | TEST(StringConvertUtilTest, convertInt64) |
81 | 1 | { |
82 | 1 | using type = int64_t; |
83 | 1 | const type value = std::numeric_limits<type>::min(); |
84 | 1 | std::array<char, 24> buffer = {}; |
85 | 1 | const char* valueInString = convertIntToString(buffer, value); |
86 | 1 | EXPECT_EQ(std::to_string(value), valueInString); |
87 | | |
88 | 1 | EXPECT_EQ(std::to_string(value), toString(value)); |
89 | 1 | } |
90 | | |
91 | | TEST(StringConvertUtilTest, convertUInt64) |
92 | 1 | { |
93 | 1 | using type = uint64_t; |
94 | 1 | const type value = std::numeric_limits<type>::max(); |
95 | 1 | std::array<char, 24> buffer = {}; |
96 | 1 | const char* valueInString = convertIntToString(buffer, value); |
97 | 1 | EXPECT_EQ(std::to_string(value), valueInString); |
98 | | |
99 | 1 | EXPECT_EQ(std::to_string(value), toString(value)); |
100 | 1 | } |
101 | | |
102 | | TEST(StringConvertUtilTest, convertFloat) |
103 | 1 | { |
104 | 1 | std::array<char, 24> integerBuffer = {}; |
105 | 1 | std::array<char, 24> floatingBuffer = {}; |
106 | 1 | const char* integerString = ""; |
107 | 1 | const char* floatingString = ""; |
108 | 1 | convertFloatToString(integerBuffer, floatingBuffer, 13579.2468F, integerString, floatingString); |
109 | 1 | EXPECT_EQ(std::string("13579"), integerString); |
110 | 1 | EXPECT_EQ(std::string("247"), floatingString); |
111 | | |
112 | 1 | convertFloatToString(integerBuffer, floatingBuffer, -2468.123456789F, integerString, floatingString); |
113 | 1 | EXPECT_EQ(std::string("-2468"), integerString); |
114 | 1 | EXPECT_EQ(std::string("123"), floatingString); |
115 | | |
116 | 1 | convertFloatToString(integerBuffer, floatingBuffer, 1.0F, integerString, floatingString); |
117 | 1 | EXPECT_EQ(std::string("1"), integerString); |
118 | 1 | EXPECT_EQ(std::string("0"), floatingString); |
119 | | |
120 | 1 | convertFloatToString(integerBuffer, floatingBuffer, 1E10F, integerString, floatingString); |
121 | 1 | EXPECT_EQ(std::string("10000000000"), integerString); |
122 | 1 | EXPECT_EQ(std::string("0"), floatingString); |
123 | | |
124 | 1 | convertFloatToString(integerBuffer, floatingBuffer, -1E10F, integerString, floatingString); |
125 | 1 | EXPECT_EQ(std::string("-10000000000"), integerString); |
126 | 1 | EXPECT_EQ(std::string("0"), floatingString); |
127 | | |
128 | 1 | convertFloatToString(integerBuffer, floatingBuffer, 1E20F, integerString, floatingString); |
129 | 1 | EXPECT_EQ(std::string("+Inf"), integerString); |
130 | 1 | EXPECT_EQ(nullptr, floatingString); |
131 | | |
132 | 1 | convertFloatToString(integerBuffer, floatingBuffer, -1E20F, integerString, floatingString); |
133 | 1 | EXPECT_EQ(std::string("-Inf"), integerString); |
134 | 1 | EXPECT_EQ(nullptr, floatingString); |
135 | 1 | } |
136 | | |
137 | | TEST(StringConvertUtilTest, convertBool) |
138 | 1 | { |
139 | 1 | EXPECT_EQ(std::string("true"), convertBoolToString(true)); |
140 | 1 | EXPECT_EQ(std::string("false"), convertBoolToString(false)); |
141 | | |
142 | 1 | EXPECT_EQ("true", toString(true)); |
143 | 1 | EXPECT_EQ("false", toString(false)); |
144 | 1 | } |
145 | | |
146 | | TEST(StringConvertUtilTest, convertStringView) |
147 | 1 | { |
148 | 1 | EXPECT_EQ(std::string(), toString(StringView())); |
149 | 1 | EXPECT_EQ("test", toString(StringView("test"))); |
150 | 1 | const std::array<char, 4> buffer = { 't', 'e', 's', 't' }; |
151 | 1 | EXPECT_EQ("test", toString(StringView(buffer.data(), buffer.size()))); |
152 | 1 | } |
153 | | |
154 | | } // namespace zserio |