]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/spirit/test/karma/format_manip_attr.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / spirit / test / karma / format_manip_attr.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 //#define KARMA_FAIL_COMPILATION
7
8 #define SPIRIT_ARGUMENTS_LIMIT 10
9
10 #include <boost/config/warning_disable.hpp>
11 #include <boost/detail/lightweight_test.hpp>
12
13 #include <boost/spirit/include/karma_char.hpp>
14 #include <boost/spirit/include/karma_numeric.hpp>
15 #include <boost/spirit/include/karma_directive.hpp>
16 #include <boost/spirit/include/karma_operator.hpp>
17 #include <boost/spirit/include/karma_action.hpp>
18 #include <boost/spirit/include/karma_stream.hpp>
19 #include <boost/spirit/include/karma_format_attr.hpp>
20
21 #include "test_manip_attr.hpp"
22
23 using spirit_test::test;
24 using spirit_test::test_delimited;
25 using spirit_test::test_predelimited;
26
27 ///////////////////////////////////////////////////////////////////////////////
28 int
29 main()
30 {
31 using namespace boost::spirit;
32
33 {
34 using namespace boost::spirit::ascii;
35
36 BOOST_TEST(test("1", char_, '1'));
37 BOOST_TEST(test("12", char_ << char_, '1', '2'));
38 BOOST_TEST(test("123", char_ << char_ << char_, '1', '2', '3'));
39 BOOST_TEST(test("1234"
40 , char_ << char_ << char_ << char_
41 , '1', '2', '3', '4'));
42 BOOST_TEST(test("12345"
43 , char_ << char_ << char_ << char_ << char_
44 , '1', '2', '3', '4', '5'));
45 BOOST_TEST(test("123456"
46 , char_ << char_ << char_ << char_ << char_ << char_
47 , '1', '2', '3', '4', '5', '6'));
48 BOOST_TEST(test("1234567"
49 , char_ << char_ << char_ << char_ << char_ << char_ << char_
50 , '1', '2', '3', '4', '5', '6', '7'));
51 BOOST_TEST(test("12345678"
52 , char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_
53 , '1', '2', '3', '4', '5', '6', '7', '8'));
54 BOOST_TEST(test("123456789"
55 , char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_
56 , '1', '2', '3', '4', '5', '6', '7', '8', '9'));
57 BOOST_TEST(test("1234567890"
58 , char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_
59 , '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'));
60 }
61
62 {
63 using namespace boost::spirit::ascii;
64
65 BOOST_TEST(test_delimited("1 ", char_, space, '1'));
66 BOOST_TEST(test_delimited("1 2 "
67 , char_ << char_, space, '1', '2'));
68 BOOST_TEST(test_delimited("1 2 3 "
69 , char_ << char_ << char_, space, '1', '2', '3'));
70 BOOST_TEST(test_delimited("1 2 3 4 "
71 , char_ << char_ << char_ << char_
72 , space, '1', '2', '3', '4'));
73 BOOST_TEST(test_delimited("1 2 3 4 5 "
74 , char_ << char_ << char_ << char_ << char_
75 , space, '1', '2', '3', '4', '5'));
76 BOOST_TEST(test_delimited("1 2 3 4 5 6 "
77 , char_ << char_ << char_ << char_ << char_ << char_
78 , space, '1', '2', '3', '4', '5', '6'));
79 BOOST_TEST(test_delimited("1 2 3 4 5 6 7 "
80 , char_ << char_ << char_ << char_ << char_ << char_ << char_
81 , space, '1', '2', '3', '4', '5', '6', '7'));
82 BOOST_TEST(test_delimited("1 2 3 4 5 6 7 8 "
83 , char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_
84 , space, '1', '2', '3', '4', '5', '6', '7', '8'));
85 BOOST_TEST(test_delimited("1 2 3 4 5 6 7 8 9 "
86 , char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_
87 , space, '1', '2', '3', '4', '5', '6', '7', '8', '9'));
88 BOOST_TEST(test_delimited("1 2 3 4 5 6 7 8 9 0 "
89 , char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_
90 , space, '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'));
91 }
92
93 {
94 using namespace boost::spirit::ascii;
95 using boost::spirit::karma::delimit_flag;
96
97 BOOST_TEST(test_predelimited(" 1 ", char_, space
98 , delimit_flag::predelimit, '1'));
99 BOOST_TEST(test_predelimited(" 1 2 "
100 , char_ << char_, space, delimit_flag::predelimit
101 , '1', '2'));
102 BOOST_TEST(test_predelimited(" 1 2 3 "
103 , char_ << char_ << char_, space
104 , delimit_flag::predelimit, '1', '2', '3'));
105 BOOST_TEST(test_predelimited(" 1 2 3 4 "
106 , char_ << char_ << char_ << char_
107 , space, delimit_flag::predelimit, '1', '2', '3', '4'));
108 BOOST_TEST(test_predelimited(" 1 2 3 4 5 "
109 , char_ << char_ << char_ << char_ << char_
110 , space, delimit_flag::predelimit, '1', '2', '3', '4', '5'));
111 BOOST_TEST(test_predelimited(" 1 2 3 4 5 6 "
112 , char_ << char_ << char_ << char_ << char_ << char_
113 , space, delimit_flag::predelimit
114 , '1', '2', '3', '4', '5', '6'));
115 BOOST_TEST(test_predelimited(" 1 2 3 4 5 6 7 "
116 , char_ << char_ << char_ << char_ << char_ << char_ << char_
117 , space, delimit_flag::predelimit
118 , '1', '2', '3', '4', '5', '6', '7'));
119 BOOST_TEST(test_predelimited(" 1 2 3 4 5 6 7 8 "
120 , char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_
121 , space, delimit_flag::predelimit
122 , '1', '2', '3', '4', '5', '6', '7', '8'));
123 BOOST_TEST(test_predelimited(" 1 2 3 4 5 6 7 8 9 "
124 , char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_
125 , space, delimit_flag::predelimit
126 , '1', '2', '3', '4', '5', '6', '7', '8', '9'));
127 BOOST_TEST(test_predelimited(" 1 2 3 4 5 6 7 8 9 0 "
128 , char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_
129 , space, delimit_flag::predelimit
130 , '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'));
131 }
132
133 {
134 using namespace boost::spirit::ascii;
135 using boost::spirit::karma::delimit_flag;
136
137 BOOST_TEST(test_predelimited("1 ", char_, space
138 , delimit_flag::dont_predelimit, '1'));
139 BOOST_TEST(test_predelimited("1 2 "
140 , char_ << char_, space, delimit_flag::dont_predelimit
141 , '1', '2'));
142 BOOST_TEST(test_predelimited("1 2 3 "
143 , char_ << char_ << char_, space
144 , delimit_flag::dont_predelimit, '1', '2', '3'));
145 BOOST_TEST(test_predelimited("1 2 3 4 "
146 , char_ << char_ << char_ << char_
147 , space, delimit_flag::dont_predelimit, '1', '2', '3', '4'));
148 BOOST_TEST(test_predelimited("1 2 3 4 5 "
149 , char_ << char_ << char_ << char_ << char_
150 , space, delimit_flag::dont_predelimit, '1', '2', '3', '4', '5'));
151 BOOST_TEST(test_predelimited("1 2 3 4 5 6 "
152 , char_ << char_ << char_ << char_ << char_ << char_
153 , space, delimit_flag::dont_predelimit
154 , '1', '2', '3', '4', '5', '6'));
155 BOOST_TEST(test_predelimited("1 2 3 4 5 6 7 "
156 , char_ << char_ << char_ << char_ << char_ << char_ << char_
157 , space, delimit_flag::dont_predelimit
158 , '1', '2', '3', '4', '5', '6', '7'));
159 BOOST_TEST(test_predelimited("1 2 3 4 5 6 7 8 "
160 , char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_
161 , space, delimit_flag::dont_predelimit
162 , '1', '2', '3', '4', '5', '6', '7', '8'));
163 BOOST_TEST(test_predelimited("1 2 3 4 5 6 7 8 9 "
164 , char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_
165 , space, delimit_flag::dont_predelimit
166 , '1', '2', '3', '4', '5', '6', '7', '8', '9'));
167 BOOST_TEST(test_predelimited("1 2 3 4 5 6 7 8 9 0 "
168 , char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_ << char_
169 , space, delimit_flag::dont_predelimit
170 , '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'));
171 }
172
173 return boost::report_errors();
174 }
175