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