]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/spirit/test/x3/no_case.cpp
1 /*=============================================================================
2 Copyright (c) 2001-2015 Joel de Guzman
3 http://spirit.sourceforge.net/
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 =============================================================================*/
9 #include <boost/detail/lightweight_test.hpp>
10 #include <boost/spirit/home/x3.hpp>
18 using spirit_test::test
;
19 using spirit_test::test_attr
;
20 using boost::spirit::x3::no_case
;
22 BOOST_SPIRIT_ASSERT_CONSTEXPR_CTORS(no_case
['x']);
25 using namespace boost::spirit::x3::ascii
;
26 BOOST_TEST(test("x", no_case
[char_
]));
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("x", no_case
[char_('x')]));
31 BOOST_TEST(!test("z", no_case
[char_('X')]));
32 BOOST_TEST(!test("z", no_case
[char_('x')]));
33 BOOST_TEST(test("x", no_case
[char_('a', 'z')]));
34 BOOST_TEST(test("X", no_case
[char_('a', 'z')]));
35 BOOST_TEST(!test("a", no_case
[char_('b', 'z')]));
36 BOOST_TEST(!test("z", no_case
[char_('a', 'y')]));
39 using namespace boost::spirit::x3::ascii
;
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("x", no_case
['x']));
44 BOOST_TEST(!test("z", no_case
['X']));
45 BOOST_TEST(!test("z", no_case
['x']));
49 using namespace boost::spirit::x3::iso8859_1
;
50 BOOST_TEST(test("X", no_case
[char_("a-z")]));
51 BOOST_TEST(!test("1", no_case
[char_("a-z")]));
54 { // test extended ASCII characters
55 using namespace boost::spirit::x3::iso8859_1
;
56 BOOST_TEST(test("\xC1", no_case
[char_('\xE1')]));
58 BOOST_TEST(test("\xC9", no_case
[char_("\xE5-\xEF")]));
59 BOOST_TEST(!test("\xFF", no_case
[char_("\xE5-\xEF")]));
61 BOOST_TEST(test("\xC1\xE1", no_case
[lit("\xE1\xC1")]));
62 BOOST_TEST(test("\xE1\xE1", no_case
[no_case
[lit("\xE1\xC1")]]));
66 using namespace boost::spirit::x3::ascii
;
67 BOOST_TEST(test("Bochi Bochi", no_case
[lit("bochi bochi")]));
68 BOOST_TEST(test("BOCHI BOCHI", no_case
[lit("bochi bochi")]));
69 BOOST_TEST(!test("Vavoo", no_case
[lit("bochi bochi")]));
74 using namespace boost::spirit::x3::ascii
;
75 BOOST_TEST(test("x", no_case
[no_case
[char_
]]));
76 BOOST_TEST(test("x", no_case
[no_case
[char_('x')]]));
77 BOOST_TEST(test("yabadabadoo", no_case
[no_case
[lit("Yabadabadoo")]]));
81 using namespace boost::spirit::x3::ascii
;
82 BOOST_TEST(test("X", no_case
[alnum
]));
83 BOOST_TEST(test("6", no_case
[alnum
]));
84 BOOST_TEST(!test(":", no_case
[alnum
]));
86 BOOST_TEST(test("X", no_case
[lower
]));
87 BOOST_TEST(test("x", no_case
[lower
]));
88 BOOST_TEST(test("X", no_case
[upper
]));
89 BOOST_TEST(test("x", no_case
[upper
]));
90 BOOST_TEST(!test(":", no_case
[lower
]));
91 BOOST_TEST(!test(":", no_case
[upper
]));
95 using namespace boost::spirit::x3::iso8859_1
;
96 BOOST_TEST(test("X", no_case
[alnum
]));
97 BOOST_TEST(test("6", no_case
[alnum
]));
98 BOOST_TEST(!test(":", no_case
[alnum
]));
100 BOOST_TEST(test("X", no_case
[lower
]));
101 BOOST_TEST(test("x", no_case
[lower
]));
102 BOOST_TEST(test("X", no_case
[upper
]));
103 BOOST_TEST(test("x", no_case
[upper
]));
104 BOOST_TEST(!test(":", no_case
[lower
]));
105 BOOST_TEST(!test(":", no_case
[upper
]));
109 using namespace boost::spirit::x3::standard
;
110 BOOST_TEST(test("X", no_case
[alnum
]));
111 BOOST_TEST(test("6", no_case
[alnum
]));
112 BOOST_TEST(!test(":", no_case
[alnum
]));
114 BOOST_TEST(test("X", no_case
[lower
]));
115 BOOST_TEST(test("x", no_case
[lower
]));
116 BOOST_TEST(test("X", no_case
[upper
]));
117 BOOST_TEST(test("x", no_case
[upper
]));
118 BOOST_TEST(!test(":", no_case
[lower
]));
119 BOOST_TEST(!test(":", no_case
[upper
]));
124 namespace standard
= boost::spirit::x3::standard
;
125 namespace standard_wide
= boost::spirit::x3::standard_wide
;
127 BOOST_TEST(test("x", no_case
[standard::char_("a-z")]));
128 BOOST_TEST(test("X", no_case
[standard::char_("a-z")]));
129 BOOST_TEST(test(L
"X", no_case
[standard_wide::char_(L
"a-z")]));
130 BOOST_TEST(test(L
"X", no_case
[standard_wide::char_(L
"X")]));
134 using namespace boost::spirit::x3::standard
;
135 std::string
s("bochi bochi");
136 BOOST_TEST(test("Bochi Bochi", no_case
[lit(s
.c_str())]));
137 BOOST_TEST(test("Bochi Bochi", no_case
[lit(s
)]));
138 BOOST_TEST(test("Bochi Bochi", no_case
[s
.c_str()]));
139 BOOST_TEST(test("Bochi Bochi", no_case
[s
]));
144 using namespace boost::spirit::x3::standard
;
145 BOOST_TEST(!test("ą", no_case
['a']));
149 return boost::report_errors();