Skip to content

Commit e5dc218

Browse files
committed
Merge pull request #29 from pjohnmeyer/removeSizeDependenciesFromTestMemoryOutStream
Converted integral stream testing to min/max/mid style. Fixes #14.
2 parents db81d25 + 4706ca9 commit e5dc218

File tree

1 file changed

+146
-5
lines changed

1 file changed

+146
-5
lines changed

src/tests/TestMemoryOutStream.cpp

Lines changed: 146 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,66 @@
22

33
#include "../MemoryOutStream.h"
44
#include <cstring>
5-
#include <climits>
65
#include <cstdlib>
6+
#include <climits>
77
#include <cfloat>
88

99
using namespace UnitTest;
1010
using namespace std;
1111

1212
namespace {
1313

14+
const char* const maxSignedIntegralStr(size_t nBytes)
15+
{
16+
switch(nBytes)
17+
{
18+
case 8:
19+
return "9223372036854775807";
20+
case 4:
21+
return "2147483647";
22+
case 2:
23+
return "32767";
24+
case 1:
25+
return "127";
26+
default:
27+
return "Unsupported signed integral size";
28+
}
29+
}
30+
31+
const char* const minSignedIntegralStr(size_t nBytes)
32+
{
33+
switch(nBytes)
34+
{
35+
case 8:
36+
return "-9223372036854775808";
37+
case 4:
38+
return "-2147483648";
39+
case 2:
40+
return "-32768";
41+
case 1:
42+
return "-128";
43+
default:
44+
return "Unsupported signed integral size";
45+
}
46+
}
47+
48+
const char* const maxUnsignedIntegralStr(size_t nBytes)
49+
{
50+
switch(nBytes)
51+
{
52+
case 8:
53+
return "18446744073709551615";
54+
case 4:
55+
return "4294967295";
56+
case 2:
57+
return "65535";
58+
case 1:
59+
return "255";
60+
default:
61+
return "Unsupported signed integral size";
62+
}
63+
}
64+
1465
TEST(DefaultIsEmptyString)
1566
{
1667
MemoryOutStream const stream;
@@ -39,39 +90,129 @@ TEST(StreamingIntWritesCorrectCharacters)
3990
CHECK_EQUAL("123", stream.GetText());
4091
}
4192

93+
TEST(StreaminMaxIntWritesCorrectCharacters)
94+
{
95+
MemoryOutStream stream;
96+
stream << INT_MAX;
97+
CHECK_EQUAL(maxSignedIntegralStr(sizeof(int)), stream.GetText());
98+
}
99+
100+
TEST(StreamingMinIntWritesCorrectCharacters)
101+
{
102+
MemoryOutStream stream;
103+
stream << INT_MIN;
104+
CHECK_EQUAL(minSignedIntegralStr(sizeof(int)), stream.GetText());
105+
}
106+
42107
TEST(StreamingUnsignedIntWritesCorrectCharacters)
43108
{
44109
MemoryOutStream stream;
45110
stream << (unsigned int)123;
46111
CHECK_EQUAL("123", stream.GetText());
47112
}
48113

114+
TEST(StreamingMaxUnsignedIntWritesCorrectCharacters)
115+
{
116+
MemoryOutStream stream;
117+
stream << (unsigned int)UINT_MAX;
118+
CHECK_EQUAL(maxUnsignedIntegralStr(sizeof(unsigned int)), stream.GetText());
119+
}
120+
121+
TEST(StreamingMinUnsignedIntWritesCorrectCharacters)
122+
{
123+
MemoryOutStream stream;
124+
stream << (unsigned int)0;
125+
CHECK_EQUAL("0", stream.GetText());
126+
}
127+
49128
TEST(StreamingLongWritesCorrectCharacters)
50129
{
51130
MemoryOutStream stream;
52131
stream << (long)(-123);
53132
CHECK_EQUAL("-123", stream.GetText());
54133
}
55134

135+
TEST(StreamingMaxLongWritesCorrectCharacters)
136+
{
137+
MemoryOutStream stream;
138+
stream << (long)(LONG_MAX);
139+
CHECK_EQUAL(maxSignedIntegralStr(sizeof(long)), stream.GetText());
140+
}
141+
142+
TEST(StreamingMinLongWritesCorrectCharacters)
143+
{
144+
MemoryOutStream stream;
145+
stream << (long)(LONG_MIN);
146+
CHECK_EQUAL(minSignedIntegralStr(sizeof(long)), stream.GetText());
147+
}
148+
56149
TEST(StreamingUnsignedLongWritesCorrectCharacters)
57150
{
58151
MemoryOutStream stream;
59152
stream << (unsigned long)123;
60153
CHECK_EQUAL("123", stream.GetText());
61154
}
62155

156+
TEST(StreamingMaxUnsignedLongWritesCorrectCharacters)
157+
{
158+
MemoryOutStream stream;
159+
stream << (unsigned long)ULONG_MAX;
160+
CHECK_EQUAL(maxUnsignedIntegralStr(sizeof(unsigned long)), stream.GetText());
161+
}
162+
163+
TEST(StreamingMinUnsignedLongWritesCorrectCharacters)
164+
{
165+
MemoryOutStream stream;
166+
stream << (unsigned long)0ul;
167+
CHECK_EQUAL("0", stream.GetText());
168+
}
169+
63170
TEST(StreamingLongLongWritesCorrectCharacters)
64171
{
65172
MemoryOutStream stream;
66-
stream << (long long)8589934590ll;
67-
CHECK_EQUAL("8589934590", stream.GetText());
173+
stream << (long long)-12345ll;
174+
CHECK_EQUAL("-12345", stream.GetText());
68175
}
69176

177+
#ifdef LLONG_MAX
178+
TEST(StreamingMaxLongLongWritesCorrectCharacters)
179+
{
180+
MemoryOutStream stream;
181+
stream << (long long)LLONG_MAX;
182+
CHECK_EQUAL(maxSignedIntegralStr(sizeof(long long)), stream.GetText());
183+
}
184+
#endif
185+
186+
#ifdef LLONG_MIN
187+
TEST(StreamingMinLongLongWritesCorrectCharacters)
188+
{
189+
MemoryOutStream stream;
190+
stream << (long long)LLONG_MIN;
191+
CHECK_EQUAL(minSignedIntegralStr(sizeof(long long)), stream.GetText());
192+
}
193+
#endif
194+
70195
TEST(StreamingUnsignedLongLongWritesCorrectCharacters)
71196
{
72197
MemoryOutStream stream;
73-
stream << (unsigned long long)8589934590ull;
74-
CHECK_EQUAL("8589934590", stream.GetText());
198+
stream << (unsigned long long)85899ull;
199+
CHECK_EQUAL("85899", stream.GetText());
200+
}
201+
202+
#ifdef ULLONG_MAX
203+
TEST(StreamingMaxUnsignedLongLongWritesCorrectCharacters)
204+
{
205+
MemoryOutStream stream;
206+
stream << (unsigned long long)ULLONG_MAX;
207+
CHECK_EQUAL(maxUnsignedIntegralStr(sizeof(unsigned long long)), stream.GetText());
208+
}
209+
#endif
210+
211+
TEST(StreamingMinUnsignedLongLongWritesCorrectCharacters)
212+
{
213+
MemoryOutStream stream;
214+
stream << (unsigned long long)0ull;
215+
CHECK_EQUAL("0", stream.GetText());
75216
}
76217

77218
TEST(StreamingFloatWritesCorrectCharacters)

0 commit comments

Comments
 (0)