]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/container/test/string_view_compat_test.cpp
1 //////////////////////////////////////////////////////////////////////////////
3 // (C) Copyright Ion Gaztanaga 2007-2017. Distributed under the Boost
4 // Software License, Version 1.0. (See accompanying file
5 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 // See http://www.boost.org/libs/container for documentation.
9 //////////////////////////////////////////////////////////////////////////////
11 #include <boost/container/string.hpp>
12 #include <boost/utility/string_view.hpp>
14 #include <boost/core/lightweight_test.hpp>
16 void conversion_test()
18 #ifndef BOOST_CONTAINER_TEMPLATED_CONVERSION_OPERATOR_BROKEN
20 const boost::container::string s
= "some text";
21 boost::string_view
sv(s
);
22 BOOST_TEST(s
.data() == sv
.data() && s
.size() == sv
.size());
23 boost::string_view sv2
;
25 BOOST_TEST(s
.data() == sv2
.data() && s
.size() == sv2
.size());
26 const boost::string_view
csv(s
);
27 BOOST_TEST(s
.data() == sv
.data() && s
.size() == csv
.size());
34 const boost::container::string s
= "some text";
35 boost::string_view
sv(s
.to_view
<boost::string_view
>());
36 BOOST_TEST(s
.data() == sv
.data() && s
.size() == sv
.size());
37 boost::string_view sv2
;
38 sv2
= s
.to_view
<boost::string_view
>();
39 BOOST_TEST(s
.data() == sv2
.data() && s
.size() == sv2
.size());
40 const boost::string_view
csv(s
.to_view
<boost::string_view
>());
41 BOOST_TEST(s
.data() == csv
.data() && s
.size() == csv
.size());
46 const boost::string_view sv
= "same text";
47 const boost::string_view svd
= "different text";
48 const boost::container::string s
= "same text";
51 BOOST_TEST(!(svd
== s
));
52 BOOST_TEST(!(s
== svd
));
57 const boost::string_view sv
= "same text";
58 const boost::string_view svd
= "different text";
59 const boost::container::string s
= "same text";
60 BOOST_TEST(!(sv
!= s
));
61 BOOST_TEST(!(s
!= sv
));
68 boost::string_view sv
= "0123456";
69 boost::container::string s
= "0123459";
71 BOOST_TEST(!(s
< sv
));
75 BOOST_TEST(!(sv
< s
));
79 BOOST_TEST(!(sv
< s
));
80 BOOST_TEST(!(s
< sv
));
85 boost::string_view sv
= "0123459";
86 boost::container::string s
= "0123456";
88 BOOST_TEST(!(s
> sv
));
92 BOOST_TEST(!(sv
> s
));
96 BOOST_TEST(!(sv
> s
));
97 BOOST_TEST(!(s
> sv
));
100 void less_equal_test()
102 boost::string_view sv
= "0123456";
103 boost::container::string s
= "0123459";
105 BOOST_TEST(!(s
<= sv
));
109 BOOST_TEST(!(sv
<= s
));
117 void greater_equal_test()
119 boost::string_view sv
= "0123459";
120 boost::container::string s
= "0123456";
122 BOOST_TEST(!(s
>= sv
));
126 BOOST_TEST(!(sv
>= s
));
134 void constructor_test()
136 boost::string_view sv
= "0123459";
137 boost::container::string
s(sv
);
139 boost::container::string
s2(sv
, s
.get_allocator());
143 void assignment_test()
145 boost::string_view sv
= "0123459";
146 boost::container::string s
;
153 boost::string_view sv
= "0123459";
154 boost::container::string s
;
159 void plus_equal_test()
161 boost::string_view sv
= "23459";
162 boost::container::string
s("01");
164 BOOST_TEST(s
== "0123459");
169 boost::string_view sv
= "23459";
170 boost::container::string
s("01");
172 BOOST_TEST(s
== "0123459");
177 boost::string_view sv
= "34";
178 boost::container::string
s("01259");
180 BOOST_TEST(s
== "0123459");
185 boost::string_view sv
= "5678";
186 boost::container::string
s("01259");
187 s
.replace(2u, 2u, sv
);
188 BOOST_TEST(s
== "0156789");
189 s
.replace(s
.begin()+3, s
.begin()+6, sv
);
190 BOOST_TEST(s
== "01556789");
191 s
.replace(5u, 3u, sv
, 2u, 2u);
192 BOOST_TEST(s
== "0155678");
197 const boost::string_view sv
= "25";
198 boost::container::string
s("0125925123");
199 BOOST_TEST(s
.find(sv
,4) == 5);
204 const boost::string_view sv
= "25";
205 boost::container::string
s("0125925123");
206 BOOST_TEST(s
.rfind(sv
,4) == 2);
209 void find_first_of_test()
211 const boost::string_view sv
= "52";
212 boost::container::string
s("0125925123");
213 BOOST_TEST(s
.find_first_of(sv
,4) == 5);
216 void find_last_of_test()
218 const boost::string_view sv
= "52";
219 boost::container::string
s("520125925123");
220 BOOST_TEST(s
.find_last_of(sv
,6) == 5);
223 void find_first_not_of_test()
225 const boost::string_view sv
= "52";
226 boost::container::string
s("0125925123");
227 BOOST_TEST(s
.find_first_not_of(sv
,2) == 4);
230 void find_last_not_of_test()
232 const boost::string_view sv
= "52";
233 boost::container::string
s("0125925123");
234 BOOST_TEST(s
.find_last_not_of(sv
,6) == 4);
239 const boost::string_view sv
= "52";
240 boost::container::string
s("0125925123");
241 BOOST_TEST(s
.compare(sv
) < 0);
242 BOOST_TEST(s
.compare(boost::string_view("0125925123")) == 0);
243 BOOST_TEST(s
.compare(2u, s
.size() - 2u, boost::string_view("25925123")) == 0);
244 boost::string_view
sv2("5212592512389");
245 BOOST_TEST(s
.compare(2u, s
.size() - 2u, sv2
, 3, sv2
.size()-5u) == 0);
257 greater_equal_test();
267 find_first_of_test();
269 find_first_not_of_test();
270 find_last_not_of_test();
273 return boost::report_errors();