1 // (C) Copyright Gennadiy Rozental 2011-2015.
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)
6 // See http://www.boost.org/libs/test for the library home page.
10 // Version : $Revision$
12 // Description : tests singleton dataset
13 // ***************************************************************************
16 #include <boost/test/unit_test.hpp>
18 #include <boost/test/data/test_case.hpp>
19 #include <boost/test/data/monomorphic.hpp>
20 namespace data
=boost::unit_test::data
;
22 #include "datasets-test.hpp"
24 //____________________________________________________________________________//
26 int samples1
[] = {1,2,3};
29 BOOST_DATA_TEST_CASE( test_case_interface_01
, data::make({1,2,3}) )
31 BOOST_TEST( sample
== samples1
[index1
++] );
34 //____________________________________________________________________________//
36 std::vector
<std::string
> samples2
= {"qwerty","asdfg"};
39 BOOST_DATA_TEST_CASE( test_case_interface_02
, samples2
, str
)
41 BOOST_TEST( str
== samples2
[index2
++] );
44 //____________________________________________________________________________//
46 int samples3
[] = {7,9};
49 BOOST_DATA_TEST_CASE( test_case_interface_03
, data::make({1,2,3}) + samples3
, val
)
52 BOOST_TEST( val
== samples1
[index3
] );
54 BOOST_TEST( val
== samples3
[index3
-3] );
59 //____________________________________________________________________________//
63 BOOST_DATA_TEST_CASE( test_case_interface_04
, samples2
^ data::make({7,9}), str
, intval
)
65 BOOST_TEST( str
== samples2
[index4
] );
66 BOOST_TEST( intval
== samples3
[index4
] );
71 //____________________________________________________________________________//
75 BOOST_DATA_TEST_CASE( test_case_interface_05
, samples1
* samples2
, sample0
, sample1
)
77 BOOST_TEST( sample0
== samples1
[index5
/2] );
78 BOOST_TEST( sample1
== samples2
[index5
%2] );
83 //____________________________________________________________________________//
87 BOOST_DATA_TEST_CASE( test_case_interface_06
, samples1
* samples2
* samples3
, intval
, str
, val2
)
89 BOOST_TEST( intval
== samples1
[index6
/4] );
90 BOOST_TEST( str
== samples2
[(index6
/2)%2] );
91 BOOST_TEST( val2
== samples3
[index6
%2] );
96 //____________________________________________________________________________//
98 // test dataset dim > 3
101 float samples4
[] = {1E3f
, 1E-3f
, 3.14f
};
103 #define sizeoftable(x) (sizeof(x)/sizeof(x[0]))
105 BOOST_DATA_TEST_CASE( test_case_interface_07
, samples1
* samples2
* samples3
* samples4
, intval
, str
, val2
, floatval
)
107 BOOST_TEST_CONTEXT("index7 " << index7
) {
108 BOOST_TEST( intval
== samples1
[index7
/(sizeoftable(samples4
)*sizeoftable(samples3
)*samples2
.size())] );
109 BOOST_TEST( str
== samples2
[(index7
/(sizeoftable(samples4
)*sizeoftable(samples3
)))%samples2
.size()] );
110 BOOST_TEST( val2
== samples3
[(index7
/sizeoftable(samples4
))%sizeoftable(samples3
)] );
111 BOOST_TEST( floatval
== samples4
[index7
%sizeoftable(samples4
)] );
116 //____________________________________________________________________________//
118 static int index8
= 1;
120 struct SharedFixture
{
122 : m_expected(index8
++)
129 BOOST_DATA_TEST_CASE_F( SharedFixture
, test_case_interface_08
, data::make({1,2,3}) )
131 BOOST_TEST( sample
== m_expected
);
134 //____________________________________________________________________________//
136 BOOST_DATA_TEST_CASE(test_case_interface_correct_file_line_declaration
, samples2
)
138 boost::unit_test::test_case
const& current_test_case
= boost::unit_test::framework::current_test_case();
139 BOOST_TEST(current_test_case
.p_line_num
== 136);
140 BOOST_TEST(current_test_case
.p_file_name
== __FILE__
);
143 //____________________________________________________________________________//
146 BOOST_DATA_TEST_CASE(
148 data::make( { 1, 2, 3, 5 } ) ^
149 data::make( { 1, 2, 3, 5 } ) ^
150 data::make( { 1, 2, 3, 5 } ) ^
151 data::make( { 1, 2, 3, 5 } ) ^
152 data::make( { 1, 2, 3, 5 } ) ^
153 data::make( { 1, 2, 3, 5 } ) ^
154 data::make( { 1, 2, 3, 5 } ) ^
155 data::make( { 1, 2, 3, 5 } ) ^
156 data::make( { 1, 2, 3, 5 } ) ^
157 data::make( { 1, 2, 3, 5 } ),
158 sample1
, sample2
, sample3
, sample4
, sample5
, sample6
, sample7
, sample8
, sample9
, sample10
)