]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/spirit/test/karma/tricky_alignment.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / spirit / test / karma / tricky_alignment.cpp
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 "test.hpp"
16
17 ///////////////////////////////////////////////////////////////////////////////
18 int
19 main()
20 {
21 using namespace spirit_test;
22 using namespace boost::spirit;
23 using namespace boost::spirit::ascii;
24
25 {
26 BOOST_TEST(test("x *****", left_align(15, '*')[left_align[char_('x')]]));
27 BOOST_TEST(test(" x *****", left_align(15, '*')[center[char_('x')]]));
28 BOOST_TEST(test(" x*****", left_align(15, '*')[right_align[char_('x')]]));
29
30 BOOST_TEST(test("*****x ", right_align(15, '*')[left_align[char_('x')]]));
31 BOOST_TEST(test("***** x ", right_align(15, '*')[center[char_('x')]]));
32 BOOST_TEST(test("***** x", right_align(15, '*')[right_align[char_('x')]]));
33
34 BOOST_TEST(test("***x **", center(15, '*')[left_align[char_('x')]]));
35 BOOST_TEST(test("*** x **", center(15, '*')[center[char_('x')]]));
36 BOOST_TEST(test("*** x**", center(15, '*')[right_align[char_('x')]]));
37
38 BOOST_TEST(test("ab *****", left_align(15, '*')[left_align[lit("ab")]]));
39 BOOST_TEST(test(" ab *****", left_align(15, '*')[center[lit("ab")]]));
40 BOOST_TEST(test(" ab*****", left_align(15, '*')[right_align[lit("ab")]]));
41
42 BOOST_TEST(test("*****ab ", right_align(15, '*')[left_align[lit("ab")]]));
43 BOOST_TEST(test("***** ab ", right_align(15, '*')[center[lit("ab")]]));
44 BOOST_TEST(test("***** ab", right_align(15, '*')[right_align[lit("ab")]]));
45
46 BOOST_TEST(test("***ab **", center(15, '*')[left_align[lit("ab")]]));
47 BOOST_TEST(test("*** ab **", center(15, '*')[center[lit("ab")]]));
48 BOOST_TEST(test("*** ab**", center(15, '*')[right_align[lit("ab")]]));
49 }
50
51 {
52 BOOST_TEST(test("x ******", left_align(16, '*')[left_align[char_('x')]]));
53 BOOST_TEST(test(" x ******", left_align(16, '*')[center[char_('x')]]));
54 BOOST_TEST(test(" x******", left_align(16, '*')[right_align[char_('x')]]));
55
56 BOOST_TEST(test("******x ", right_align(16, '*')[left_align[char_('x')]]));
57 BOOST_TEST(test("****** x ", right_align(16, '*')[center[char_('x')]]));
58 BOOST_TEST(test("****** x", right_align(16, '*')[right_align[char_('x')]]));
59
60 BOOST_TEST(test("***x ***", center(16, '*')[left_align[char_('x')]]));
61 BOOST_TEST(test("*** x ***", center(16, '*')[center[char_('x')]]));
62 BOOST_TEST(test("*** x***", center(16, '*')[right_align[char_('x')]]));
63
64 BOOST_TEST(test("ab ******", left_align(16, '*')[left_align[lit("ab")]]));
65 BOOST_TEST(test(" ab ******", left_align(16, '*')[center[lit("ab")]]));
66 BOOST_TEST(test(" ab******", left_align(16, '*')[right_align[lit("ab")]]));
67
68 BOOST_TEST(test("******ab ", right_align(16, '*')[left_align[lit("ab")]]));
69 BOOST_TEST(test("****** ab ", right_align(16, '*')[center[lit("ab")]]));
70 BOOST_TEST(test("****** ab", right_align(16, '*')[right_align[lit("ab")]]));
71
72 BOOST_TEST(test("***ab ***", center(16, '*')[left_align[lit("ab")]]));
73 BOOST_TEST(test("*** ab ***", center(16, '*')[center[lit("ab")]]));
74 BOOST_TEST(test("*** ab***", center(16, '*')[right_align[lit("ab")]]));
75 }
76
77 {
78 BOOST_TEST(test("x ****", left_align(15, '*')[left_align(11)[char_('x')]]));
79 BOOST_TEST(test(" x ****", left_align(15, '*')[center(11)[char_('x')]]));
80 BOOST_TEST(test(" x****", left_align(15, '*')[right_align(11)[char_('x')]]));
81
82 BOOST_TEST(test("****x ", right_align(15, '*')[left_align(11)[char_('x')]]));
83 BOOST_TEST(test("**** x ", right_align(15, '*')[center(11)[char_('x')]]));
84 BOOST_TEST(test("**** x", right_align(15, '*')[right_align(11)[char_('x')]]));
85
86 BOOST_TEST(test("**x **", center(15, '*')[left_align(11)[char_('x')]]));
87 BOOST_TEST(test("** x **", center(15, '*')[center(11)[char_('x')]]));
88 BOOST_TEST(test("** x**", center(15, '*')[right_align(11)[char_('x')]]));
89
90 BOOST_TEST(test("ab ****", left_align(15, '*')[left_align(11)[lit("ab")]]));
91 BOOST_TEST(test(" ab ****", left_align(15, '*')[center(11)[lit("ab")]]));
92 BOOST_TEST(test(" ab****", left_align(15, '*')[right_align(11)[lit("ab")]]));
93
94 BOOST_TEST(test("****ab ", right_align(15, '*')[left_align(11)[lit("ab")]]));
95 BOOST_TEST(test("**** ab ", right_align(15, '*')[center(11)[lit("ab")]]));
96 BOOST_TEST(test("**** ab", right_align(15, '*')[right_align(11)[lit("ab")]]));
97
98 BOOST_TEST(test("**ab **", center(15, '*')[left_align(11)[lit("ab")]]));
99 BOOST_TEST(test("** ab **", center(15, '*')[center(11)[lit("ab")]]));
100 BOOST_TEST(test("** ab**", center(15, '*')[right_align(11)[lit("ab")]]));
101 }
102
103 {
104 BOOST_TEST(test("x *****", left_align(16, '*')[left_align(11)[char_('x')]]));
105 BOOST_TEST(test(" x *****", left_align(16, '*')[center(11)[char_('x')]]));
106 BOOST_TEST(test(" x*****", left_align(16, '*')[right_align(11)[char_('x')]]));
107
108 BOOST_TEST(test("*****x ", right_align(16, '*')[left_align(11)[char_('x')]]));
109 BOOST_TEST(test("***** x ", right_align(16, '*')[center(11)[char_('x')]]));
110 BOOST_TEST(test("***** x", right_align(16, '*')[right_align(11)[char_('x')]]));
111
112 BOOST_TEST(test("***x **", center(16, '*')[left_align(11)[char_('x')]]));
113 BOOST_TEST(test("*** x **", center(16, '*')[center(11)[char_('x')]]));
114 BOOST_TEST(test("*** x**", center(16, '*')[right_align(11)[char_('x')]]));
115
116 BOOST_TEST(test("ab *****", left_align(16, '*')[left_align(11)[lit("ab")]]));
117 BOOST_TEST(test(" ab *****", left_align(16, '*')[center(11)[lit("ab")]]));
118 BOOST_TEST(test(" ab*****", left_align(16, '*')[right_align(11)[lit("ab")]]));
119
120 BOOST_TEST(test("*****ab ", right_align(16, '*')[left_align(11)[lit("ab")]]));
121 BOOST_TEST(test("***** ab ", right_align(16, '*')[center(11)[lit("ab")]]));
122 BOOST_TEST(test("***** ab", right_align(16, '*')[right_align(11)[lit("ab")]]));
123
124 BOOST_TEST(test("***ab **", center(16, '*')[left_align(11)[lit("ab")]]));
125 BOOST_TEST(test("*** ab **", center(16, '*')[center(11)[lit("ab")]]));
126 BOOST_TEST(test("*** ab**", center(16, '*')[right_align(11)[lit("ab")]]));
127 }
128
129 return boost::report_errors();
130 }