]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/spirit/test/karma/encoding.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / spirit / test / karma / encoding.cpp
1 // Copyright (c) 2001-2011 Hartmut Kaiser
2 // Copyright (c) 2001-2011 Joel de Guzman
3 //
4 // Distributed under the Boost Software License, Version 1.0. (See accompanying
5 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6
7 // this file intentionally contains non-ascii characters
8 // boostinspect:noascii
9
10 #include <boost/detail/lightweight_test.hpp>
11 #include <boost/spirit/include/karma_char.hpp>
12 #include <boost/spirit/include/karma_string.hpp>
13 #include <boost/spirit/include/karma_directive.hpp>
14 #include <boost/spirit/include/karma_action.hpp>
15 #include <boost/spirit/include/phoenix_core.hpp>
16 #include <boost/spirit/include/phoenix_operator.hpp>
17
18 #include <iostream>
19 #include "test.hpp"
20
21 int
22 main()
23 {
24 using spirit_test::test;
25 using boost::spirit::karma::lit;
26 using boost::spirit::karma::lower;
27 using boost::spirit::karma::upper;
28 using boost::spirit::karma::char_;
29 using boost::spirit::karma::encoding;
30 namespace char_encoding = boost::spirit::char_encoding;
31
32 encoding<char_encoding::iso8859_1> iso8859_1;
33
34 // needed for VC7.1 only
35 #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
36 #pragma setlocale("french")
37 #endif
38
39 {
40 BOOST_TEST(test("á", iso8859_1[lower['á']]));
41 BOOST_TEST(test("Á", iso8859_1[upper['á']]));
42 BOOST_TEST(test("á", iso8859_1[lower[char_('á')]]));
43 BOOST_TEST(test("Á", iso8859_1[upper[char_('á')]]));
44 BOOST_TEST(test("á", iso8859_1[lower[lit('á')]]));
45 BOOST_TEST(test("Á", iso8859_1[upper[lit('á')]]));
46 BOOST_TEST(test("á", iso8859_1[lower[char_]], 'á'));
47 BOOST_TEST(test("Á", iso8859_1[upper[char_]], 'á'));
48 BOOST_TEST(test("á", iso8859_1[lower['Á']]));
49 BOOST_TEST(test("Á", iso8859_1[upper['Á']]));
50 BOOST_TEST(test("á", iso8859_1[lower[char_('Á')]]));
51 BOOST_TEST(test("Á", iso8859_1[upper[char_('Á')]]));
52 BOOST_TEST(test("á", iso8859_1[lower[lit('Á')]]));
53 BOOST_TEST(test("Á", iso8859_1[upper[lit('Á')]]));
54 BOOST_TEST(test("á", iso8859_1[lower[char_]], 'Á'));
55 BOOST_TEST(test("Á", iso8859_1[upper[char_]], 'Á'));
56 }
57
58 #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
59 #pragma setlocale("")
60 #endif
61
62 // needed for VC7.1 only
63 #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
64 #pragma setlocale("german")
65 #endif
66 {
67 BOOST_TEST(test("ää", iso8859_1[lower["Ää"]]));
68 BOOST_TEST(test("ää", iso8859_1[lower[lit("Ää")]]));
69
70 BOOST_TEST(test("ÄÄ", iso8859_1[upper["Ää"]]));
71 BOOST_TEST(test("ÄÄ", iso8859_1[upper[lit("Ää")]]));
72 }
73 #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
74 #pragma setlocale("")
75 #endif
76
77 return boost::report_errors();
78 }