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)
5 
6 //  See http://www.boost.org/libs/test for the library home page.
7 //
8 //  File        : $RCSfile$
9 //
10 //  Version     : $Revision$
11 //
12 //  Description : tests singleton dataset
13 // ***************************************************************************
14 
15 // Boost.Test
16 #include <boost/test/unit_test.hpp>
17 
18 #include <boost/test/data/test_case.hpp>
19 #include <boost/test/data/monomorphic.hpp>
20 namespace data=boost::unit_test::data;
21 
22 #include "datasets-test.hpp"
23 
24 //____________________________________________________________________________//
25 
26 int samples1[] = {1,2,3};
27 int index1 = 0;
28 
BOOST_DATA_TEST_CASE(test_case_interface_01,samples1)29 BOOST_DATA_TEST_CASE( test_case_interface_01, samples1 )
30 {
31     BOOST_TEST( sample == samples1[index1++] );
32 }
33 
34 //____________________________________________________________________________//
35 
36 char const* samples2[] = {"qwerty","asdfg"};
37 int index2 = 0;
38 
BOOST_DATA_TEST_CASE(test_case_interface_02,samples2,str)39 BOOST_DATA_TEST_CASE( test_case_interface_02, samples2, str )
40 {
41     BOOST_TEST( str == samples2[index2++] );
42 }
43 
44 //____________________________________________________________________________//
45 
46 int samples3[] = {7,9};
47 int index3 = 0;
48 
49 BOOST_DATA_TEST_CASE( test_case_interface_03, data::make(samples1)+samples3, val )
50 {
51     if( index3 < 3 )
52         BOOST_TEST( val == samples1[index3] );
53     else
54         BOOST_TEST( val == samples3[index3-3] );
55 
56     ++index3;
57 }
58 
59 //____________________________________________________________________________//
60 
61 int index4 = 0;
62 
63 BOOST_DATA_TEST_CASE( test_case_interface_04, data::make(samples2)^samples3, str, intval )
64 {
65     BOOST_TEST( str == samples2[index4] );
66     BOOST_TEST( intval == samples3[index4] );
67 
68     ++index4;
69 }
70 
71 //____________________________________________________________________________//
72 
73 int index5 = 0;
74 
BOOST_DATA_TEST_CASE(test_case_interface_05,data::make (samples1)* samples2,sample0,sample1)75 BOOST_DATA_TEST_CASE( test_case_interface_05, data::make(samples1) * samples2, sample0, sample1 )
76 {
77     BOOST_TEST( sample0 == samples1[index5/2] );
78     BOOST_TEST( sample1 == samples2[index5%2] );
79 
80     ++index5;
81 }
82 
83 //____________________________________________________________________________//
84 
85 int index6 = 0;
86 
BOOST_DATA_TEST_CASE(test_case_interface_06,data::make (samples1)* samples2 * samples3,intval,str,val2)87 BOOST_DATA_TEST_CASE( test_case_interface_06, data::make(samples1) * samples2 * samples3, intval, str, val2 )
88 {
89     BOOST_TEST( intval == samples1[index6/4] );
90     BOOST_TEST( str == samples2[(index6/2)%2] );
91     BOOST_TEST( val2 == samples3[index6%2] );
92 
93     ++index6;
94 }
95 
96 //____________________________________________________________________________//
97 
98 // EOF
99