Toolbox
snapshot
The Reactive C++ Toolbox
Loading...
Searching...
No Matches
toolbox
util
StringBuf.ut.cpp
Go to the documentation of this file.
1
// The Reactive C++ Toolbox.
2
// Copyright (C) 2013-2019 Swirly Cloud Limited
3
// Copyright (C) 2021 Reactive Markets Limited
4
//
5
// Licensed under the Apache License, Version 2.0 (the "License");
6
// you may not use this file except in compliance with the License.
7
// You may obtain a copy of the License at
8
//
9
// http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing, software
12
// distributed under the License is distributed on an "AS IS" BASIS,
13
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
// See the License for the specific language governing permissions and
15
// limitations under the License.
16
17
#include "
StringBuf.hpp
"
18
19
#include <boost/test/unit_test.hpp>
20
21
using namespace
std
;
22
using namespace
toolbox
;
23
24
BOOST_AUTO_TEST_SUITE
(
StringBufSuite
)
25
26
BOOST_AUTO_TEST_CASE
(
StringBufEmptyCase
)
27
{
28
StringBuf<3>
sb
;
29
BOOST_CHECK
(
sb
.empty());
30
BOOST_CHECK_EQUAL
(
sb
.size(), 0
U
);
31
BOOST_CHECK_EQUAL
(
sb
,
""
sv
);
32
auto
res
=
sb
==
StringBuf<3>
{
""
sv
};
33
BOOST_CHECK
(
res
);
34
}
35
36
BOOST_AUTO_TEST_CASE
(
StringBufNonEmptyCase
)
37
{
38
StringBuf<3>
sb
{
"Foo"
sv
};
39
BOOST_CHECK
(!
sb
.empty());
40
BOOST_CHECK_EQUAL
(
sb
.size(), 3U);
41
BOOST_CHECK_EQUAL
(
sb
,
"Foo"
sv
);
42
auto
res
=
sb
==
StringBuf<3>
{
"Foo"
sv
};
43
BOOST_CHECK
(
res
);
44
}
45
46
BOOST_AUTO_TEST_CASE
(
StringBufUpperBoundCase
)
47
{
48
StringBuf<3>
sb
{
"Foox"
sv
};
49
BOOST_CHECK_EQUAL
(
sb
.size(), 3U);
50
BOOST_CHECK_EQUAL
(
sb
,
"Foo"
sv
);
51
52
sb
=
"Barx"
sv
;
53
BOOST_CHECK_EQUAL
(
sb
.size(), 3U);
54
BOOST_CHECK_EQUAL
(
sb
,
"Bar"
sv
);
55
}
56
57
BOOST_AUTO_TEST_CASE
(
StringBufClearCase
)
58
{
59
StringBuf<3>
sb
{
"Foo"
sv
};
60
sb
.
clear
();
61
BOOST_CHECK
(
sb
.empty());
62
}
63
64
BOOST_AUTO_TEST_CASE
(
StringBufAssignCase
)
65
{
66
StringBuf<3>
sb
;
67
sb
=
"Foo"
sv
;
68
BOOST_CHECK_EQUAL
(
sb
.size(), 3U);
69
BOOST_CHECK_EQUAL
(
sb
,
"Foo"
sv
);
70
71
sb
.clear();
72
sb
=
"Foox"
sv
;
73
BOOST_CHECK_EQUAL
(
sb
.size(), 3U);
74
BOOST_CHECK_EQUAL
(
sb
,
"Foo"
sv
);
75
}
76
77
BOOST_AUTO_TEST_CASE
(
StringBufAppendCase
)
78
{
79
StringBuf<6>
sb
;
80
sb
=
"Foo"
sv
;
81
sb
+=
"Bar"
sv
;
82
BOOST_CHECK_EQUAL
(
sb
.size(), 6U);
83
BOOST_CHECK_EQUAL
(
sb
,
"FooBar"
sv
);
84
85
sb
=
"Foo"
sv
;
86
sb
+=
"Barx"
sv
;
87
BOOST_CHECK_EQUAL
(
sb
.size(), 6U);
88
BOOST_CHECK_EQUAL
(
sb
,
"FooBar"
sv
);
89
}
90
91
BOOST_AUTO_TEST_CASE
(
StringBufLexicalCompare
)
92
{
93
StringBuf<6>
sb
;
94
sb
=
"b"
sv
;
95
BOOST_CHECK_GT
(
sb
,
"a"
sv
);
96
BOOST_CHECK_EQUAL
(
sb
,
"b"
sv
);
97
BOOST_CHECK_LT
(
sb
,
"c"
sv
);
98
BOOST_CHECK_NE
(
sb
,
"zz"
sv
);
99
}
100
101
BOOST_AUTO_TEST_SUITE_END
()
BOOST_CHECK_EQUAL
BOOST_CHECK_EQUAL(v.size(), 10U)
StringBuf.hpp
BOOST_AUTO_TEST_CASE
BOOST_AUTO_TEST_CASE(StringBufEmptyCase)
Definition
StringBuf.ut.cpp:26
toolbox::StringBuf
String buffer with fixed upper-bound.
Definition
StringBuf.hpp:30
toolbox::util::StringBuf::clear
constexpr void clear() noexcept
Definition
StringBuf.hpp:80
std
STL namespace.
toolbox::util::sv
std::string_view sv
Definition
Tokeniser.hpp:26
toolbox::util::bind
constexpr auto bind() noexcept
Definition
Slot.hpp:92
toolbox
Definition
Benchmark.cpp:26
BOOST_CHECK
BOOST_CHECK(isnan(stod(""sv, numeric_limits< double >::quiet_NaN())))
Generated by
1.9.8