Coverage Report

Created: 2023-12-13 14:58

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