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/spirit/include/karma_center_alignment.hpp>
7
8#include <boost/spirit/include/karma_char.hpp>
9#include <boost/spirit/include/karma_string.hpp>
10#include <boost/spirit/include/karma_numeric.hpp>
11#include <boost/spirit/include/karma_generate.hpp>
12#include <boost/spirit/include/karma_directive.hpp>
13#include <boost/spirit/include/karma_upper_lower_case.hpp>
14
15#include <string>
16#include <iterator>
17
18#include "test.hpp"
19
20///////////////////////////////////////////////////////////////////////////////
21int
22main()
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 BOOST_TEST(test("aaaaaxaaaa", lower[center(10, 'A')['X']]));
41 BOOST_TEST(test("AAAAAXAAAA", upper[center(10, 'a')['x']]));
42
43
44 BOOST_TEST(test("*****x****", center(char_('*'))[char_('x')]));
45 BOOST_TEST(test("*****x****", center(char_('*'))[char_], 'x'));
46 BOOST_TEST(test("*****x****", center(char_('*'))['x']));
47
48 BOOST_TEST(test(" x ", center(11)[char_('x')]));
49
50 BOOST_TEST(test(" abc ", center[lit("abc")]));
51 BOOST_TEST(test(" abc ", center[string], "abc"));
52
53 BOOST_TEST(test(" abc ", center(10)[lit("abc")]));
54 BOOST_TEST(test(" abc ", center(10)[string], "abc"));
55 BOOST_TEST(test(" abc ", center(10)["abc"]));
56
57 BOOST_TEST(test(" abc ", center(11)[lit("abc")]));
58 BOOST_TEST(test(" ab ", center(11)[lit("ab")]));
59
60 BOOST_TEST(test("****abc***", center(10, char_('*'))[lit("abc")]));
61 BOOST_TEST(test("****abc***", center(10, '*')[string], "abc"));
62 BOOST_TEST(test("****abc***", center(10, '*')["abc"]));
63
64 BOOST_TEST(test("****abc***", center(char_('*'))[lit("abc")]));
65 BOOST_TEST(test("****abc***", center(char_('*'))[string], "abc"));
66 BOOST_TEST(test("****abc***", center(char_('*'))["abc"]));
67
68 BOOST_TEST(test(" abc ", center(11)[lit("abc")]));
69
70 BOOST_TEST(test(" 100 ", center[int_(100)]));
71 BOOST_TEST(test(" 100 ", center[int_], 100));
72
73 BOOST_TEST(test(" 100 ", center(10)[int_(100)]));
74 BOOST_TEST(test(" 100 ", center(10)[int_], 100));
75
76 BOOST_TEST(test("****100***", center(10, char_('*'))[int_(100)]));
77 BOOST_TEST(test("****100***", center(10, '*')[int_], 100));
78
79 BOOST_TEST(test(" 100 ", center(11)[int_(100)]));
80
81 BOOST_TEST(test("****100***", center(char_('*'))[int_(100)]));
82 BOOST_TEST(test("****100***", center(char_('*'))[int_], 100));
83 }
84
85 return boost::report_errors();
86}
87

source code of boost/libs/spirit/test/karma/center_alignment.cpp