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

« back to all changes in this revision

Viewing changes to libs/spirit/test/karma/auto1.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
#include "auto.hpp"
 
7
 
 
8
///////////////////////////////////////////////////////////////////////////////
 
9
int main()
 
10
{
 
11
    {
 
12
        BOOST_TEST((!traits::meta_create_exists<karma::domain, my_type>::value));
 
13
    }
 
14
 
 
15
    {
 
16
        // test primitive types
 
17
        BOOST_TEST(test_create_generator("true", true));
 
18
        BOOST_TEST(test_create_generator("1", 1));
 
19
        BOOST_TEST(test_create_generator("1.1", 1.1));
 
20
        BOOST_TEST(test_create_generator("test", std::string("test")));
 
21
        BOOST_TEST(test_create_generator("a", 'a'));
 
22
        BOOST_TEST(test_create_generator(L"a", L'a'));
 
23
 
 
24
        // test containers
 
25
        std::vector<int> v;
 
26
        v.push_back(0);
 
27
        v.push_back(1);
 
28
        v.push_back(2);
 
29
        BOOST_TEST(test_create_generator("012", v));
 
30
 
 
31
        std::list<int> l;
 
32
        l.push_back(0);
 
33
        l.push_back(1);
 
34
        l.push_back(2);
 
35
        BOOST_TEST(test_create_generator("012", l));
 
36
 
 
37
        // test optional
 
38
        boost::optional<int> o;
 
39
        BOOST_TEST(test_create_generator("", o));
 
40
        o = 1;
 
41
        BOOST_TEST(test_create_generator("1", o));
 
42
 
 
43
        // test alternative
 
44
        boost::variant<int, double, float, std::string> vv;
 
45
        vv = 1;
 
46
        BOOST_TEST(test_create_generator("1", vv));
 
47
        vv = 1.0;
 
48
        BOOST_TEST(test_create_generator("1.0", vv));
 
49
        vv = 1.0f;
 
50
        BOOST_TEST(test_create_generator("1.0", vv));
 
51
        vv = "some string";
 
52
        BOOST_TEST(test_create_generator("some string", vv));
 
53
 
 
54
        // test fusion sequence
 
55
        std::pair<int, double> p (1, 2.0);
 
56
        BOOST_TEST(test_create_generator("12.0", p));
 
57
    }
 
58
 
 
59
    {
 
60
        // test primitive types
 
61
//         BOOST_TEST(test_create_generator_auto("true", true));
 
62
//         BOOST_TEST(test_create_generator_auto("1", 1));
 
63
//         BOOST_TEST(test_create_generator_auto("1.1", 1.1));
 
64
//         BOOST_TEST(test_create_generator_auto("test", std::string("test")));
 
65
//         BOOST_TEST(test_create_generator_auto("a", 'a'));
 
66
//         BOOST_TEST(test_create_generator_auto(L"a", L'a'));
 
67
 
 
68
        // test containers
 
69
        std::vector<int> v;
 
70
        v.push_back(0);
 
71
        v.push_back(1);
 
72
        v.push_back(2);
 
73
        BOOST_TEST(test_create_generator_auto("012", v));
 
74
 
 
75
        std::list<int> l;
 
76
        l.push_back(0);
 
77
        l.push_back(1);
 
78
        l.push_back(2);
 
79
        BOOST_TEST(test_create_generator_auto("012", l));
 
80
 
 
81
        // test optional
 
82
        boost::optional<int> o;
 
83
        BOOST_TEST(test_create_generator_auto("", o));
 
84
        o = 1;
 
85
        BOOST_TEST(test_create_generator_auto("1", o));
 
86
 
 
87
        // test alternative
 
88
        boost::variant<int, double, float, std::string> vv;
 
89
        vv = 1;
 
90
        BOOST_TEST(test_create_generator_auto("1", vv));
 
91
        vv = 1.0;
 
92
        BOOST_TEST(test_create_generator_auto("1.0", vv));
 
93
        vv = 1.0f;
 
94
        BOOST_TEST(test_create_generator_auto("1.0", vv));
 
95
        vv = "some string";
 
96
        BOOST_TEST(test_create_generator_auto("some string", vv));
 
97
 
 
98
        // test fusion sequence
 
99
        std::pair<int, double> p (1, 2.0);
 
100
        BOOST_TEST(test_create_generator_auto("12.0", p));
 
101
    }
 
102
 
 
103
    return boost::report_errors();
 
104
}