1 #define BOOST_TEST_MAIN
2 #include <boost/test/included/unit_test.hpp>
3 #include <boost/test/data/test_case.hpp>
5 #include <boost/test/data/monomorphic.hpp>
7 #include <boost/test/data/monomorphic/generators/xrange.hpp>
8 #include <boost/test/data/monomorphic/zip.hpp>
10 // generation of a sequence/range
11 namespace data
=boost::unit_test::data
;
15 BOOST_DATA_TEST_CASE( test_case_arity1_implicit
, data::xrange(5) )
17 BOOST_TEST((sample
<= 4 && sample
>= 0));
22 BOOST_DATA_TEST_CASE( test_case_arity1
, data::xrange(5), my_var
)
24 BOOST_TEST((my_var
<= 4 && my_var
>= 0));
29 BOOST_DATA_TEST_CASE( test_case_arity2
, data::xrange(2) ^ data::xrange(5), apples
, potatoes
)
31 BOOST_TEST((apples
<= 1 && apples
>= 0));
32 BOOST_TEST((potatoes
<= 4 && potatoes
>= 0));
40 std::vector
<int> generate()
49 const std::vector
<int> v
= generate();
50 BOOST_DATA_TEST_CASE( test_case_3
, data::make(v
), var1
)
52 BOOST_TEST_MESSAGE(var1
);
61 std::vector
<int> generate_vector()
70 typedef std::pair
<const int, int> pair_int
;
71 BOOST_TEST_DONT_PRINT_LOG_VALUE( pair_int
)
73 const std::vector
<int> v
= generate_vector();
74 BOOST_DATA_TEST_CASE( test_case_1
, data::make(v
), var1
)
76 std::cout
<< var1
<< std::endl
;
81 std::map
<int, int> generate_map()
83 std::vector
<int> v
= generate_vector();
84 std::map
<int, int> out
;
85 for(std::size_t i
= 0; i
< v
.size(); i
++)
87 out
[v
[i
]] = (i
* 7) % 19;
92 const std::map
<int, int> m
= generate_map();
93 BOOST_DATA_TEST_CASE( test_case_2
, data::make(m
), var1
)
95 std::cout
<< var1
.first
<< " -- " << var1
.second
<< std::endl
;