1 //  Copyright (c) 2001-2010 Hartmut Kaiser
2 //
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)
5 
6 // this file intentionally contains non-ascii characters
7 // boostinspect:noascii
8 
9 #include <boost/config/warning_disable.hpp>
10 #include <boost/detail/lightweight_test.hpp>
11 #include <boost/detail/workaround.hpp>
12 
13 #include <boost/spirit/include/karma_char.hpp>
14 #include <boost/spirit/include/karma_string.hpp>
15 #include <boost/spirit/include/karma_generate.hpp>
16 #include <boost/spirit/include/karma_directive.hpp>
17 
18 #include "test.hpp"
19 
20 using namespace spirit_test;
21 
22 ///////////////////////////////////////////////////////////////////////////////
23 int
main()24 main()
25 {
26     using namespace boost::spirit;
27 
28 // needed for VC7.1 only
29 #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
30 #pragma setlocale("german")
31 #endif
32     {
33         using namespace boost::spirit::iso8859_1;
34 
35         BOOST_TEST(test("�", lower['�']));
36         BOOST_TEST(test("�", lower['�']));
37 
38         BOOST_TEST(test("�", upper['�']));
39         BOOST_TEST(test("�", upper['�']));
40     }
41 #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
42 #pragma setlocale("")
43 #endif
44 
45     {
46         using namespace boost::spirit::ascii;
47 
48         BOOST_TEST(test("a1- ", lower["a1- "]));
49         BOOST_TEST(test("a1- ", lower["a1- "]));
50         BOOST_TEST(test("a1- ", lower["a1- "]));
51         BOOST_TEST(test("a1- ", lower["A1- "]));
52 
53         BOOST_TEST(test("a1- ", lower[string], "a1- "));
54         BOOST_TEST(test("a1- ", lower[string], "A1- "));
55         BOOST_TEST(test("a1- ", lower[lit("a1- ")]));
56         BOOST_TEST(test("a1- ", lower[lit("A1- ")]));
57         BOOST_TEST(test("a1- ", lower[string("a1- ")]));
58         BOOST_TEST(test("a1- ", lower[string("A1- ")]));
59 
60         BOOST_TEST(test("a1- ", lower[lower["a1- "]]));
61         BOOST_TEST(test("a1- ", lower[lower["a1- "]]));
62         BOOST_TEST(test("a1- ", lower[lower["a1- "]]));
63         BOOST_TEST(test("a1- ", lower[lower["A1- "]]));
64 
65         BOOST_TEST(test("a1- ", lower[lower[string]], "a1- "));
66         BOOST_TEST(test("a1- ", lower[lower[string]], "A1- "));
67         BOOST_TEST(test("a1- ", lower[lower[lit("a1- ")]]));
68         BOOST_TEST(test("a1- ", lower[lower[lit("A1- ")]]));
69         BOOST_TEST(test("a1- ", lower[lower[string("a1- ")]]));
70         BOOST_TEST(test("a1- ", lower[lower[string("A1- ")]]));
71 
72         BOOST_TEST(test("A1- ", upper[lower["a1- "]]));
73         BOOST_TEST(test("A1- ", upper[lower["a1- "]]));
74         BOOST_TEST(test("A1- ", upper[lower["a1- "]]));
75         BOOST_TEST(test("A1- ", upper[lower["A1- "]]));
76 
77         BOOST_TEST(test("A1- ", upper[lower[string]], "a1- "));
78         BOOST_TEST(test("A1- ", upper[lower[string]], "A1- "));
79         BOOST_TEST(test("A1- ", upper[lower[lit("a1- ")]]));
80         BOOST_TEST(test("A1- ", upper[lower[lit("A1- ")]]));
81         BOOST_TEST(test("A1- ", upper[lower[string("a1- ")]]));
82         BOOST_TEST(test("A1- ", upper[lower[string("A1- ")]]));
83 
84         BOOST_TEST(test("A1- ", upper["a1- "]));
85         BOOST_TEST(test("A1- ", upper["a1- "]));
86         BOOST_TEST(test("A1- ", upper["a1- "]));
87         BOOST_TEST(test("A1- ", upper["A1- "]));
88 
89         BOOST_TEST(test("A1- ", upper[string], "a1- "));
90         BOOST_TEST(test("A1- ", upper[string], "A1- "));
91         BOOST_TEST(test("A1- ", upper[lit("a1- ")]));
92         BOOST_TEST(test("A1- ", upper[lit("A1- ")]));
93 
94         BOOST_TEST(test("a1- ", lower[upper["a1- "]]));
95         BOOST_TEST(test("a1- ", lower[upper["a1- "]]));
96         BOOST_TEST(test("a1- ", lower[upper["a1- "]]));
97         BOOST_TEST(test("a1- ", lower[upper["A1- "]]));
98 
99         BOOST_TEST(test("a1- ", lower[upper[string]], "a1- "));
100         BOOST_TEST(test("a1- ", lower[upper[string]], "A1- "));
101         BOOST_TEST(test("a1- ", lower[upper[lit("a1- ")]]));
102         BOOST_TEST(test("a1- ", lower[upper[lit("A1- ")]]));
103         BOOST_TEST(test("a1- ", lower[upper[string("a1- ")]]));
104         BOOST_TEST(test("a1- ", lower[upper[string("A1- ")]]));
105 
106         BOOST_TEST(test("A1- ", upper[upper["a1- "]]));
107         BOOST_TEST(test("A1- ", upper[upper["a1- "]]));
108         BOOST_TEST(test("A1- ", upper[upper["a1- "]]));
109         BOOST_TEST(test("A1- ", upper[upper["A1- "]]));
110 
111         BOOST_TEST(test("A1- ", upper[upper[string]], "a1- "));
112         BOOST_TEST(test("A1- ", upper[upper[string]], "A1- "));
113         BOOST_TEST(test("A1- ", upper[upper[lit("a1- ")]]));
114         BOOST_TEST(test("A1- ", upper[upper[lit("A1- ")]]));
115         BOOST_TEST(test("A1- ", upper[upper[string("a1- ")]]));
116         BOOST_TEST(test("A1- ", upper[upper[string("A1- ")]]));
117     }
118 
119     return boost::report_errors();
120 }
121