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
main()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", right_align[char_('x')]));
27         BOOST_TEST(test("         x", right_align[char_], 'x'));
28         BOOST_TEST(test("         x", right_align['x']));
29 
30         BOOST_TEST(test("         x", right_align(10)[char_('x')]));
31         BOOST_TEST(test("         x", right_align(10)[char_], 'x'));
32         BOOST_TEST(test("         x", right_align(10)['x']));
33 
34         BOOST_TEST(test("*********x", right_align(10, char_('*'))[char_('x')]));
35         BOOST_TEST(test("*********x", right_align(10, '*')[char_], 'x'));
36         BOOST_TEST(test("*********x", right_align(10, '*')['x']));
37 
38         BOOST_TEST(test("*********x", right_align(char_('*'))[char_('x')]));
39         BOOST_TEST(test("*********x", right_align(char_('*'))[char_], 'x'));
40         BOOST_TEST(test("*********x", right_align(char_('*'))['x']));
41 
42         BOOST_TEST(test("       abc", right_align[lit("abc")]));
43         BOOST_TEST(test("       abc", right_align[string], "abc"));
44 
45         BOOST_TEST(test("       abc", right_align(10)[lit("abc")]));
46         BOOST_TEST(test("       abc", right_align(10)[string], "abc"));
47         BOOST_TEST(test("       abc", right_align(10)["abc"]));
48 
49         BOOST_TEST(test("*******abc", right_align(10, char_('*'))[lit("abc")]));
50         BOOST_TEST(test("*******abc", right_align(10, '*')[string], "abc"));
51         BOOST_TEST(test("*******abc", right_align(10, '*')["abc"]));
52 
53         BOOST_TEST(test("*******abc", right_align(char_('*'))[lit("abc")]));
54         BOOST_TEST(test("*******abc", right_align(char_('*'))[string], "abc"));
55         BOOST_TEST(test("*******abc", right_align(char_('*'))["abc"]));
56 
57         BOOST_TEST(test("       100", right_align[int_(100)]));
58         BOOST_TEST(test("       100", right_align[int_], 100));
59 
60         BOOST_TEST(test("       100", right_align(10)[int_(100)]));
61         BOOST_TEST(test("       100", right_align(10)[int_], 100));
62 
63         BOOST_TEST(test("*******100", right_align(10, char_('*'))[int_(100)]));
64         BOOST_TEST(test("*******100", right_align(10, '*')[int_], 100));
65 
66         BOOST_TEST(test("*******100", right_align(char_('*'))[int_(100)]));
67         BOOST_TEST(test("*******100", right_align(char_('*'))[int_], 100));
68     }
69 
70     return boost::report_errors();
71 }
72