]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/spirit/test/x3/no_case.cpp
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / libs / spirit / test / x3 / no_case.cpp
CommitLineData
7c673cae
FG
1/*=============================================================================
2 Copyright (c) 2001-2015 Joel de Guzman
3 http://spirit.sourceforge.net/
4
5 Distributed under the Boost Software License, Version 1.0. (See accompanying
6 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7=============================================================================*/
8
7c673cae
FG
9#include <boost/spirit/home/x3.hpp>
10
11#include <iostream>
12#include "test.hpp"
13
14int
15main()
16{
17 using spirit_test::test;
18 using spirit_test::test_attr;
19 using boost::spirit::x3::no_case;
20
f67539c2
TL
21 BOOST_SPIRIT_ASSERT_CONSTEXPR_CTORS(no_case['x']);
22
7c673cae
FG
23 {
24 using namespace boost::spirit::x3::ascii;
25 BOOST_TEST(test("x", no_case[char_]));
26 BOOST_TEST(test("X", no_case[char_('x')]));
27 BOOST_TEST(test("X", no_case[char_('X')]));
28 BOOST_TEST(test("x", no_case[char_('X')]));
29 BOOST_TEST(test("x", no_case[char_('x')]));
30 BOOST_TEST(!test("z", no_case[char_('X')]));
31 BOOST_TEST(!test("z", no_case[char_('x')]));
32 BOOST_TEST(test("x", no_case[char_('a', 'z')]));
33 BOOST_TEST(test("X", no_case[char_('a', 'z')]));
34 BOOST_TEST(!test("a", no_case[char_('b', 'z')]));
35 BOOST_TEST(!test("z", no_case[char_('a', 'y')]));
36 }
37 {
38 using namespace boost::spirit::x3::ascii;
39 BOOST_TEST(test("X", no_case['x']));
40 BOOST_TEST(test("X", no_case['X']));
41 BOOST_TEST(test("x", no_case['X']));
42 BOOST_TEST(test("x", no_case['x']));
43 BOOST_TEST(!test("z", no_case['X']));
44 BOOST_TEST(!test("z", no_case['x']));
45 }
46
47 {
48 using namespace boost::spirit::x3::iso8859_1;
92f5a8d4
TL
49 BOOST_TEST(test("X", no_case[char_("a-z")]));
50 BOOST_TEST(!test("1", no_case[char_("a-z")]));
7c673cae
FG
51 }
52
92f5a8d4 53 { // test extended ASCII characters
7c673cae 54 using namespace boost::spirit::x3::iso8859_1;
92f5a8d4
TL
55 BOOST_TEST(test("\xC1", no_case[char_('\xE1')]));
56
57 BOOST_TEST(test("\xC9", no_case[char_("\xE5-\xEF")]));
58 BOOST_TEST(!test("\xFF", no_case[char_("\xE5-\xEF")]));
7c673cae 59
92f5a8d4
TL
60 BOOST_TEST(test("\xC1\xE1", no_case[lit("\xE1\xC1")]));
61 BOOST_TEST(test("\xE1\xE1", no_case[no_case[lit("\xE1\xC1")]]));
7c673cae
FG
62 }
63
64 {
65 using namespace boost::spirit::x3::ascii;
66 BOOST_TEST(test("Bochi Bochi", no_case[lit("bochi bochi")]));
67 BOOST_TEST(test("BOCHI BOCHI", no_case[lit("bochi bochi")]));
68 BOOST_TEST(!test("Vavoo", no_case[lit("bochi bochi")]));
69 }
70
7c673cae
FG
71 {
72 // should work!
73 using namespace boost::spirit::x3::ascii;
74 BOOST_TEST(test("x", no_case[no_case[char_]]));
75 BOOST_TEST(test("x", no_case[no_case[char_('x')]]));
76 BOOST_TEST(test("yabadabadoo", no_case[no_case[lit("Yabadabadoo")]]));
77 }
78
79 {
80 using namespace boost::spirit::x3::ascii;
81 BOOST_TEST(test("X", no_case[alnum]));
82 BOOST_TEST(test("6", no_case[alnum]));
83 BOOST_TEST(!test(":", no_case[alnum]));
84
85 BOOST_TEST(test("X", no_case[lower]));
86 BOOST_TEST(test("x", no_case[lower]));
87 BOOST_TEST(test("X", no_case[upper]));
88 BOOST_TEST(test("x", no_case[upper]));
89 BOOST_TEST(!test(":", no_case[lower]));
90 BOOST_TEST(!test(":", no_case[upper]));
91 }
92
93 {
94 using namespace boost::spirit::x3::iso8859_1;
95 BOOST_TEST(test("X", no_case[alnum]));
96 BOOST_TEST(test("6", no_case[alnum]));
97 BOOST_TEST(!test(":", no_case[alnum]));
98
99 BOOST_TEST(test("X", no_case[lower]));
100 BOOST_TEST(test("x", no_case[lower]));
101 BOOST_TEST(test("X", no_case[upper]));
102 BOOST_TEST(test("x", no_case[upper]));
103 BOOST_TEST(!test(":", no_case[lower]));
104 BOOST_TEST(!test(":", no_case[upper]));
105 }
106
107 {
108 using namespace boost::spirit::x3::standard;
109 BOOST_TEST(test("X", no_case[alnum]));
110 BOOST_TEST(test("6", no_case[alnum]));
111 BOOST_TEST(!test(":", no_case[alnum]));
112
113 BOOST_TEST(test("X", no_case[lower]));
114 BOOST_TEST(test("x", no_case[lower]));
115 BOOST_TEST(test("X", no_case[upper]));
116 BOOST_TEST(test("x", no_case[upper]));
117 BOOST_TEST(!test(":", no_case[lower]));
118 BOOST_TEST(!test(":", no_case[upper]));
119 }
120
121 {
122 // chsets
123 namespace standard = boost::spirit::x3::standard;
124 namespace standard_wide = boost::spirit::x3::standard_wide;
125
126 BOOST_TEST(test("x", no_case[standard::char_("a-z")]));
127 BOOST_TEST(test("X", no_case[standard::char_("a-z")]));
128 BOOST_TEST(test(L"X", no_case[standard_wide::char_(L"a-z")]));
129 BOOST_TEST(test(L"X", no_case[standard_wide::char_(L"X")]));
130 }
131
132 {
133 using namespace boost::spirit::x3::standard;
134 std::string s("bochi bochi");
135 BOOST_TEST(test("Bochi Bochi", no_case[lit(s.c_str())]));
136 BOOST_TEST(test("Bochi Bochi", no_case[lit(s)]));
137 BOOST_TEST(test("Bochi Bochi", no_case[s.c_str()]));
138 BOOST_TEST(test("Bochi Bochi", no_case[s]));
139 }
140
92f5a8d4
TL
141 {
142 {
143 using namespace boost::spirit::x3::standard;
144 BOOST_TEST(!test("ą", no_case['a']));
145 }
146 }
147
7c673cae
FG
148 return boost::report_errors();
149}