]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/spirit/test/karma/char_class.cpp
1 // Copyright (c) 2001-2011 Hartmut Kaiser
3 // Distributed under the Boost Software License, Version 1.0. (See accompanying
4 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 // this file intentionally contains non-ascii characters
7 // boostinspect:noascii
9 #include <boost/config/warning_disable.hpp>
10 #include <boost/detail/lightweight_test.hpp>
12 #include <boost/spirit/include/karma_char.hpp>
13 #include <boost/spirit/include/karma_generate.hpp>
14 #include <boost/spirit/include/karma_directive.hpp>
21 ///////////////////////////////////////////////////////////////////////////////
24 using namespace spirit_test
;
25 using namespace boost::spirit
;
28 using namespace boost::spirit::ascii
;
29 BOOST_TEST(test("a", alpha
, 'a'));
30 BOOST_TEST(!test("", alpha
, '1'));
31 BOOST_TEST(test(" ", blank
, ' '));
32 BOOST_TEST(!test("", blank
, 'x'));
33 BOOST_TEST(test("1", digit
, '1'));
34 BOOST_TEST(!test("", digit
, 'x'));
35 BOOST_TEST(test("a", lower
, 'a'));
36 BOOST_TEST(!test("", lower
, 'A'));
37 BOOST_TEST(test("!", punct
, '!'));
38 BOOST_TEST(!test("", punct
, 'x'));
39 BOOST_TEST(test(" ", space
));
40 BOOST_TEST(test(" ", space
, ' '));
41 BOOST_TEST(!test("", space
, '\n'));
42 BOOST_TEST(test("\r", space
, '\r'));
43 BOOST_TEST(test("\t", space
, '\t'));
44 BOOST_TEST(test("A", upper
, 'A'));
45 BOOST_TEST(!test("", upper
, 'a'));
46 BOOST_TEST(test("A", xdigit
, 'A'));
47 BOOST_TEST(test("0", xdigit
, '0'));
48 BOOST_TEST(test("f", xdigit
, 'f'));
49 BOOST_TEST(!test("", xdigit
, 'g'));
53 using namespace boost::spirit::ascii
;
54 BOOST_TEST(!test("", ~alpha
, 'a'));
55 BOOST_TEST(test("1", ~alpha
, '1'));
56 BOOST_TEST(!test("", ~blank
, ' '));
57 BOOST_TEST(test("x", ~blank
, 'x'));
58 BOOST_TEST(!test("", ~digit
, '1'));
59 BOOST_TEST(test("x", ~digit
, 'x'));
60 BOOST_TEST(!test("", ~lower
, 'a'));
61 BOOST_TEST(test("A", ~lower
, 'A'));
62 BOOST_TEST(!test("", ~punct
, '!'));
63 BOOST_TEST(test("x", ~punct
, 'x'));
64 BOOST_TEST(!test("", ~space
));
65 BOOST_TEST(!test("", ~space
, ' '));
66 BOOST_TEST(!test("", ~space
, '\r'));
67 BOOST_TEST(!test("", ~space
, '\t'));
68 BOOST_TEST(!test("", ~upper
, 'A'));
69 BOOST_TEST(test("a", ~upper
, 'a'));
70 BOOST_TEST(!test("", ~xdigit
, 'A'));
71 BOOST_TEST(!test("", ~xdigit
, '0'));
72 BOOST_TEST(!test("", ~xdigit
, 'f'));
73 BOOST_TEST(test("g", ~xdigit
, 'g'));
77 using namespace boost::spirit::ascii
;
78 BOOST_TEST(test("a", ~~alpha
, 'a'));
79 BOOST_TEST(!test("", ~~alpha
, '1'));
80 BOOST_TEST(test(" ", ~~blank
, ' '));
81 BOOST_TEST(!test("", ~~blank
, 'x'));
82 BOOST_TEST(test("1", ~~digit
, '1'));
83 BOOST_TEST(!test("", ~~digit
, 'x'));
84 BOOST_TEST(test("a", ~~lower
, 'a'));
85 BOOST_TEST(!test("", ~~lower
, 'A'));
86 BOOST_TEST(test("!", ~~punct
, '!'));
87 BOOST_TEST(!test("", ~~punct
, 'x'));
88 BOOST_TEST(test(" ", ~~space
));
89 BOOST_TEST(test(" ", ~~space
, ' '));
90 BOOST_TEST(!test("", ~~space
, '\n'));
91 BOOST_TEST(test("\r", ~~space
, '\r'));
92 BOOST_TEST(test("\t", ~~space
, '\t'));
93 BOOST_TEST(test("A", ~~upper
, 'A'));
94 BOOST_TEST(!test("", ~~upper
, 'a'));
95 BOOST_TEST(test("A", ~~xdigit
, 'A'));
96 BOOST_TEST(test("0", ~~xdigit
, '0'));
97 BOOST_TEST(test("f", ~~xdigit
, 'f'));
98 BOOST_TEST(!test("", ~~xdigit
, 'g'));
102 using namespace boost::spirit::ascii
;
103 BOOST_TEST(test("a", lower
[alpha
], 'a'));
104 BOOST_TEST(!test("", lower
[alpha
], 'A'));
105 BOOST_TEST(!test("", lower
[alpha
], '1'));
106 BOOST_TEST(test("a", lower
[alnum
], 'a'));
107 BOOST_TEST(!test("", lower
[alnum
], 'A'));
108 BOOST_TEST(test("1", lower
[alnum
], '1'));
110 BOOST_TEST(!test("", upper
[alpha
], 'a'));
111 BOOST_TEST(test("A", upper
[alpha
], 'A'));
112 BOOST_TEST(!test("", upper
[alpha
], '1'));
113 BOOST_TEST(!test("", upper
[alnum
], 'a'));
114 BOOST_TEST(test("A", upper
[alnum
], 'A'));
115 BOOST_TEST(test("1", upper
[alnum
], '1'));
119 using namespace boost::spirit::iso8859_1
;
120 BOOST_TEST(test("a", alpha
, 'a'));
121 BOOST_TEST(!test("", alpha
, '1'));
122 BOOST_TEST(test(" ", blank
, ' '));
123 BOOST_TEST(!test("", blank
, 'x'));
124 BOOST_TEST(test("1", digit
, '1'));
125 BOOST_TEST(!test("", digit
, 'x'));
126 BOOST_TEST(test("a", lower
, 'a'));
127 BOOST_TEST(!test("", lower
, 'A'));
128 BOOST_TEST(test("!", punct
, '!'));
129 BOOST_TEST(!test("", punct
, 'x'));
130 BOOST_TEST(test(" ", space
));
131 BOOST_TEST(test(" ", space
, ' '));
132 BOOST_TEST(!test("", space
, '\n'));
133 BOOST_TEST(test("\r", space
, '\r'));
134 BOOST_TEST(test("\t", space
, '\t'));
135 BOOST_TEST(test("A", upper
, 'A'));
136 BOOST_TEST(!test("", upper
, 'a'));
137 BOOST_TEST(test("A", xdigit
, 'A'));
138 BOOST_TEST(test("0", xdigit
, '0'));
139 BOOST_TEST(test("f", xdigit
, 'f'));
140 BOOST_TEST(!test("", xdigit
, 'g'));
143 // needed for VC7.1 only
144 #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
145 #pragma setlocale("german")
147 BOOST_TEST(test("é", alpha
, 'é'));
148 BOOST_TEST(test("é", lower
, 'é'));
149 BOOST_TEST(!test("", upper
, 'é'));
150 #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
151 #pragma setlocale("")
156 using namespace boost::spirit::standard
;
157 BOOST_TEST(test("a", alpha
, 'a'));
158 BOOST_TEST(!test("", alpha
, '1'));
159 BOOST_TEST(test(" ", blank
, ' '));
160 BOOST_TEST(!test("", blank
, 'x'));
161 BOOST_TEST(test("1", digit
, '1'));
162 BOOST_TEST(!test("", digit
, 'x'));
163 BOOST_TEST(test("a", lower
, 'a'));
164 BOOST_TEST(!test("", lower
, 'A'));
165 BOOST_TEST(test("!", punct
, '!'));
166 BOOST_TEST(!test("", punct
, 'x'));
167 BOOST_TEST(test(" ", space
));
168 BOOST_TEST(test(" ", space
, ' '));
169 BOOST_TEST(!test("", space
, '\n'));
170 BOOST_TEST(test("\r", space
, '\r'));
171 BOOST_TEST(test("\t", space
, '\t'));
172 BOOST_TEST(test("A", upper
, 'A'));
173 BOOST_TEST(!test("", upper
, 'a'));
174 BOOST_TEST(test("A", xdigit
, 'A'));
175 BOOST_TEST(test("0", xdigit
, '0'));
176 BOOST_TEST(test("f", xdigit
, 'f'));
177 BOOST_TEST(!test("", xdigit
, 'g'));
181 using namespace boost::spirit::standard_wide
;
182 BOOST_TEST(test(L
"a", alpha
, L
'a'));
183 BOOST_TEST(!test(L
"", alpha
, L
'1'));
184 BOOST_TEST(test(L
" ", blank
, L
' '));
185 BOOST_TEST(!test(L
"", blank
, L
'x'));
186 BOOST_TEST(test(L
"1", digit
, L
'1'));
187 BOOST_TEST(!test(L
"", digit
, L
'x'));
188 BOOST_TEST(test(L
"a", lower
, L
'a'));
189 BOOST_TEST(!test(L
"", lower
, L
'A'));
190 BOOST_TEST(test(L
"!", punct
, L
'!'));
191 BOOST_TEST(!test(L
"", punct
, L
'x'));
192 BOOST_TEST(test(L
" ", space
));
193 BOOST_TEST(test(L
" ", space
, L
' '));
194 BOOST_TEST(!test(L
"", space
, L
'\n'));
195 BOOST_TEST(test(L
"\r", space
, L
'\r'));
196 BOOST_TEST(test(L
"\t", space
, L
'\t'));
197 BOOST_TEST(test(L
"A", upper
, L
'A'));
198 BOOST_TEST(!test(L
"", upper
, L
'a'));
199 BOOST_TEST(test(L
"A", xdigit
, L
'A'));
200 BOOST_TEST(test(L
"0", xdigit
, L
'0'));
201 BOOST_TEST(test(L
"f", xdigit
, L
'f'));
202 BOOST_TEST(!test(L
"", xdigit
, L
'g'));
205 return boost::report_errors();