1 //  Copyright (c) 2001-2011 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 #include <boost/config/warning_disable.hpp>
7 #include <boost/detail/lightweight_test.hpp>
8 
9 #include <boost/spirit/include/karma_char.hpp>
10 #include <boost/spirit/include/karma_string.hpp>
11 #include <boost/spirit/include/karma_numeric.hpp>
12 #include <boost/spirit/include/karma_generate.hpp>
13 #include <boost/spirit/include/karma_directive.hpp>
14 
15 #include <string>
16 #include <iterator>
17 
18 #include "test.hpp"
19 
20 ///////////////////////////////////////////////////////////////////////////////
21 int
main()22 main()
23 {
24     using namespace spirit_test;
25     using namespace boost::spirit;
26     using namespace boost::spirit::ascii;
27 
28     {
29         BOOST_TEST(test("     x    ", center[char_('x')]));
30         BOOST_TEST(test("     x    ", center[char_], 'x'));
31         BOOST_TEST(test("     x    ", center['x']));
32 
33         BOOST_TEST(test("     x    ", center(10)[char_('x')]));
34         BOOST_TEST(test("     x    ", center(10)[char_], 'x'));
35         BOOST_TEST(test("     x    ", center(10)['x']));
36 
37         BOOST_TEST(test("*****x****", center(10, char_('*'))[char_('x')]));
38         BOOST_TEST(test("*****x****", center(10, '*')[char_], 'x'));
39         BOOST_TEST(test("*****x****", center(10, '*')['x']));
40 
41         BOOST_TEST(test("*****x****", center(char_('*'))[char_('x')]));
42         BOOST_TEST(test("*****x****", center(char_('*'))[char_], 'x'));
43         BOOST_TEST(test("*****x****", center(char_('*'))['x']));
44 
45         BOOST_TEST(test("     x     ", center(11)[char_('x')]));
46 
47         BOOST_TEST(test("    abc   ", center[lit("abc")]));
48         BOOST_TEST(test("    abc   ", center[string], "abc"));
49 
50         BOOST_TEST(test("    abc   ", center(10)[lit("abc")]));
51         BOOST_TEST(test("    abc   ", center(10)[string], "abc"));
52         BOOST_TEST(test("    abc   ", center(10)["abc"]));
53 
54         BOOST_TEST(test("    abc    ", center(11)[lit("abc")]));
55         BOOST_TEST(test("     ab    ", center(11)[lit("ab")]));
56 
57         BOOST_TEST(test("****abc***", center(10, char_('*'))[lit("abc")]));
58         BOOST_TEST(test("****abc***", center(10, '*')[string], "abc"));
59         BOOST_TEST(test("****abc***", center(10, '*')["abc"]));
60 
61         BOOST_TEST(test("****abc***", center(char_('*'))[lit("abc")]));
62         BOOST_TEST(test("****abc***", center(char_('*'))[string], "abc"));
63         BOOST_TEST(test("****abc***", center(char_('*'))["abc"]));
64 
65         BOOST_TEST(test("    abc    ", center(11)[lit("abc")]));
66 
67         BOOST_TEST(test("    100   ", center[int_(100)]));
68         BOOST_TEST(test("    100   ", center[int_], 100));
69 
70         BOOST_TEST(test("    100   ", center(10)[int_(100)]));
71         BOOST_TEST(test("    100   ", center(10)[int_], 100));
72 
73         BOOST_TEST(test("****100***", center(10, char_('*'))[int_(100)]));
74         BOOST_TEST(test("****100***", center(10, '*')[int_], 100));
75 
76         BOOST_TEST(test("    100    ", center(11)[int_(100)]));
77 
78         BOOST_TEST(test("****100***", center(char_('*'))[int_(100)]));
79         BOOST_TEST(test("****100***", center(char_('*'))[int_], 100));
80     }
81 
82     return boost::report_errors();
83 }
84