• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //  (C) Copyright Raffi Enficiaud 2014.
2 //  Distributed under the Boost Software License, Version 1.0.
3 //  (See accompanying file LICENSE_1_0.txt or copy at
4 //  http://www.boost.org/LICENSE_1_0.txt)
5 //
6 //  See http://www.boost.org/libs/test for the library home page.
7 //
8 //  snippets included in the dataset documentation
9 // ***************************************************************************
10 
11 #define BOOST_TEST_MAIN
12 #include <boost/test/included/unit_test.hpp>
13 #include <boost/test/data/test_case.hpp>
14 
15 #include <boost/test/data/monomorphic.hpp>
16 
17 #include <boost/test/data/monomorphic/generators/xrange.hpp>
18 #include <boost/test/data/monomorphic/zip.hpp>
19 
20 // generation of a sequence/range
21 namespace data=boost::unit_test::data;
22 
23 
24 //[snippet_dataset1_1
25 BOOST_DATA_TEST_CASE( test_case_arity1_implicit, data::xrange(5) )
26 {
27   BOOST_TEST((sample <= 4 && sample >= 0));
28 }
29 //]
30 
31 //[snippet_dataset1_2
32 BOOST_DATA_TEST_CASE( test_case_arity1, data::xrange(5), my_var )
33 {
34   BOOST_TEST((my_var <= 4 && my_var >= 0));
35 }
36 //]
37 
38 //[snippet_dataset1_3
39 // The following definition of the dataset test case throws an exception before the
40 // test module starts (zip of non infinite or singleton datasets of different length)
41 BOOST_DATA_TEST_CASE( test_case_arity2, data::xrange(2) ^ data::xrange(5), apples, potatoes)
42 {
43   BOOST_TEST((apples <= 1 && apples >= 0));
44   BOOST_TEST((potatoes <= 4 && potatoes >= 0));
45 }
46 //]
47 
48 
49 
50 
51 //[snippet_dataset1_4
generate()52 std::vector<int> generate()
53 {
54   std::vector<int> out;
55   out.push_back(3);
56   out.push_back(1);
57   out.push_back(7);
58   return out;
59 }
60 
61 const std::vector<int> v = generate();
BOOST_DATA_TEST_CASE(test_case_3,data::make (v),var1)62 BOOST_DATA_TEST_CASE( test_case_3, data::make(v), var1)
63 {
64   BOOST_TEST_MESSAGE(var1);
65   BOOST_CHECK(true);
66 }
67 //]
68 
69 
70 #include <vector>
71 #include <map>
72 
generate_vector()73 std::vector<int> generate_vector()
74 {
75   std::vector<int> out;
76   out.push_back(3);
77   out.push_back(1);
78   out.push_back(7);
79   return out;
80 }
81 
82 typedef std::pair<const int, int> pair_int;
83 BOOST_TEST_DONT_PRINT_LOG_VALUE( pair_int )
84 
85 const std::vector<int> v = generate_vector();
BOOST_DATA_TEST_CASE(test_case_1,data::make (v),var1)86 BOOST_DATA_TEST_CASE( test_case_1, data::make(v), var1)
87 {
88   std::cout << var1 << std::endl;
89   BOOST_TEST(true);
90 }
91 
92 
generate_map()93 std::map<int, int> generate_map()
94 {
95   std::vector<int> v = generate_vector();
96   std::map<int, int> out;
97   for(std::size_t i = 0; i < v.size(); i++)
98   {
99     out[v[i]] = (i * 7) % 19;
100   }
101   return out;
102 }
103 
104 const std::map<int, int> m = generate_map();
BOOST_DATA_TEST_CASE(test_case_2,data::make (m),var1)105 BOOST_DATA_TEST_CASE( test_case_2, data::make(m), var1)
106 {
107   std::cout << var1.first << " -- " << var1.second << std::endl;
108   BOOST_TEST(true);
109 }
110