]> git.proxmox.com Git - ceph.git/blob - 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
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
19 BOOST_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));
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));
30 }
31
32 BOOST_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 }
44
45 //____________________________________________________________________________//
46
47 BOOST_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);
60 #ifndef BOOST_TEST_MACRO_LIMITED_SUPPORT
61 BOOST_TEST(buf_ptr_cch == buf_array_cch);
62 BOOST_TEST(buf_ptr_cch == buf_array_ch);
63 BOOST_TEST(buf_ptr_cch == buf_ptr_ch);
64 BOOST_TEST(buf_ptr_cch == buf_str);
65 #endif
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
75 BOOST_TEST(buf_ptr_ch == buf_ptr_ch);
76 #ifndef BOOST_TEST_MACRO_LIMITED_SUPPORT
77 BOOST_TEST(buf_ptr_ch == buf_ptr_cch);
78 BOOST_TEST(buf_ptr_ch == buf_array_cch);
79 BOOST_TEST(buf_ptr_ch == buf_array_ch);
80 BOOST_TEST(buf_ptr_ch == buf_str);
81 #endif
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);
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
126 }
127
128 // EOF