~ubuntu-branches/debian/sid/boost1.49/sid

« back to all changes in this revision

Viewing changes to libs/spirit/test/karma/generate_attr.cpp

  • Committer: Package Import Robot
  • Author(s): Steve M. Robbins
  • Date: 2012-02-26 00:31:44 UTC
  • Revision ID: package-import@ubuntu.com-20120226003144-eaytp12cbf6ubpms
Tags: upstream-1.49.0
ImportĀ upstreamĀ versionĀ 1.49.0

Show diffs side-by-side

added added

removed removed

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