]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/test/test/writing-test-ts/boost_check_equal-str-test.cpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / libs / test / test / writing-test-ts / boost_check_equal-str-test.cpp
CommitLineData
7c673cae
FG
1// (C) Copyright Gennadiy Rozental 2001-2015.
2// Distributed under the Boost Software License, Version 1.0.
3// (See accompanying file LICENSE_1_0.txt or copy at
4// http://www.boost.org/LICENSE_1_0.txt)
5
6// See http://www.boost.org/libs/test for the library home page.
7//
8// File : $RCSfile$
9//
10// Version : $Revision$
11//
12// Description : unit test for string comparison specializations
13// *****************************************************************************
14
15#define BOOST_TEST_MAIN
16#include <boost/test/unit_test.hpp>
17#include <boost/test/utils/is_cstring.hpp>
18
19BOOST_AUTO_TEST_CASE( check_is_cstring_concept )
20{
21 namespace bp = boost::unit_test;
22 BOOST_TEST((bp::is_cstring<char const*>::value));
23 BOOST_TEST((bp::is_cstring<char const []>::value));
24 BOOST_TEST((bp::is_cstring<char []>::value));
25 BOOST_TEST((bp::is_cstring<char *>::value));
b32b8144
FG
26 BOOST_TEST((!bp::is_cstring<std::string>::value));
27 BOOST_TEST((!bp::is_cstring< bp::basic_cstring<char> >::value));
28
29 BOOST_TEST((!bp::is_cstring< std::vector<char> >::value));
7c673cae
FG
30}
31
b32b8144
FG
32BOOST_AUTO_TEST_CASE( check_is_cstring_comparable_concept )
33{
34 namespace bp = boost::unit_test;
35 BOOST_TEST((bp::is_cstring_comparable<char const*>::value));
36 BOOST_TEST((bp::is_cstring_comparable<char const []>::value));
37 BOOST_TEST((bp::is_cstring_comparable<char []>::value));
38 BOOST_TEST((bp::is_cstring_comparable<char *>::value));
39 BOOST_TEST((bp::is_cstring_comparable<std::string>::value));
40 BOOST_TEST((bp::is_cstring_comparable< bp::basic_cstring<char> >::value));
41
42 BOOST_TEST((!bp::is_cstring_comparable< std::vector<char> >::value));
43}
7c673cae 44
b32b8144 45//____________________________________________________________________________//
7c673cae
FG
46
47BOOST_AUTO_TEST_CASE( check_string_compare )
48{
49 char const* buf_ptr_cch = "abc";
50 char const buf_array_cch[] = "abc";
51 char buf_array_ch[] = "abc";
52 char* buf_ptr_ch = buf_array_ch;
53 std::string buf_str = "abc";
54
55 BOOST_TEST((void*)buf_ptr_cch != (void*)buf_array_cch);
56 BOOST_TEST((void*)buf_ptr_cch != (void*)buf_array_ch);
57 BOOST_TEST((void*)buf_array_cch != (void*)buf_array_ch);
58
59 BOOST_TEST(buf_ptr_cch == buf_ptr_cch);
b32b8144 60#ifndef BOOST_TEST_MACRO_LIMITED_SUPPORT
7c673cae 61 BOOST_TEST(buf_ptr_cch == buf_array_cch);
7c673cae 62 BOOST_TEST(buf_ptr_cch == buf_array_ch);
b32b8144 63 BOOST_TEST(buf_ptr_cch == buf_ptr_ch);
7c673cae 64 BOOST_TEST(buf_ptr_cch == buf_str);
b32b8144 65#endif
7c673cae
FG
66
67#ifndef BOOST_TEST_MACRO_LIMITED_SUPPORT
68 BOOST_TEST(buf_array_cch == buf_ptr_cch);
69 BOOST_TEST(buf_array_cch == buf_array_cch);
70 BOOST_TEST(buf_array_cch == buf_ptr_ch);
71 BOOST_TEST(buf_array_cch == buf_array_ch);
72 BOOST_TEST(buf_array_cch == buf_str);
73#endif
74
b32b8144
FG
75 BOOST_TEST(buf_ptr_ch == buf_ptr_ch);
76#ifndef BOOST_TEST_MACRO_LIMITED_SUPPORT
7c673cae
FG
77 BOOST_TEST(buf_ptr_ch == buf_ptr_cch);
78 BOOST_TEST(buf_ptr_ch == buf_array_cch);
7c673cae
FG
79 BOOST_TEST(buf_ptr_ch == buf_array_ch);
80 BOOST_TEST(buf_ptr_ch == buf_str);
b32b8144 81#endif
7c673cae
FG
82
83#ifndef BOOST_TEST_MACRO_LIMITED_SUPPORT
84 BOOST_TEST(buf_array_ch == buf_ptr_cch);
85 BOOST_TEST(buf_array_ch == buf_array_cch);
86 BOOST_TEST(buf_array_ch == buf_ptr_ch);
87 BOOST_TEST(buf_array_ch == buf_array_ch);
88 BOOST_TEST(buf_array_ch == buf_str);
89#endif
90
91 BOOST_TEST(buf_str == buf_ptr_cch);
92 BOOST_TEST(buf_str == buf_array_cch);
93 BOOST_TEST(buf_str == buf_ptr_ch);
94 BOOST_TEST(buf_str == buf_array_ch);
95 BOOST_TEST(buf_str == buf_str);
b32b8144
FG
96
97 BOOST_TEST(buf_ptr_cch == buf_str);
98 //BOOST_TEST(buf_array_cch == buf_str); // does not compile
99 BOOST_TEST(buf_ptr_ch == buf_str);
100 //BOOST_TEST(buf_array_ch == buf_str); // does not compile
101 BOOST_TEST(buf_str == buf_str);
102
103#ifndef BOOST_TEST_MACRO_LIMITED_SUPPORT
104 BOOST_TEST( buf_ptr_cch == buf_ptr_cch, boost::test_tools::per_element() );
105 BOOST_TEST( buf_ptr_cch <= "abd" , boost::test_tools::per_element() );
106 BOOST_TEST( buf_ptr_cch >= "aba" , boost::test_tools::per_element() );
107 BOOST_TEST( buf_str == buf_ptr_cch , boost::test_tools::per_element() );
108 BOOST_TEST( buf_str <= "abd" , boost::test_tools::per_element() );
109 BOOST_TEST( buf_str >= "aba" , boost::test_tools::per_element() );
110
111 BOOST_TEST( buf_ptr_cch <= buf_ptr_cch, boost::test_tools::lexicographic() );
112 BOOST_TEST( buf_ptr_cch >= buf_ptr_cch, boost::test_tools::lexicographic() );
113 BOOST_TEST( buf_ptr_cch <= "abc" , boost::test_tools::lexicographic() );
114 BOOST_TEST( buf_ptr_cch < "abd" , boost::test_tools::lexicographic() );
115 BOOST_TEST( buf_ptr_cch < "abcd" , boost::test_tools::lexicographic() );
116 BOOST_TEST( buf_ptr_cch >= "abc" , boost::test_tools::lexicographic() );
117 BOOST_TEST( buf_ptr_cch > "aba" , boost::test_tools::lexicographic() );
118 BOOST_TEST( buf_ptr_cch > "abad" , boost::test_tools::lexicographic() );
119 BOOST_TEST( buf_str <= buf_ptr_cch , boost::test_tools::lexicographic() );
120 BOOST_TEST( buf_str >= buf_ptr_cch , boost::test_tools::lexicographic() );
121 BOOST_TEST( buf_str <= "abc" , boost::test_tools::lexicographic() );
122 BOOST_TEST( buf_str < "abd" , boost::test_tools::lexicographic() );
123 BOOST_TEST( buf_str > "aba" , boost::test_tools::lexicographic() );
124#endif
125
7c673cae
FG
126}
127
128// EOF