Hello,
I run into a compile problem with [Boost.Test] DataSet. I can reduce it
by re-using the example provided by the docs:
http://www.boost.org/doc/libs/1_62_0/libs/test/doc/html/boost_test/tests_org...
#define BOOST_TEST_MODULE dataset_example68
#include
#include
#include
#include <sstream>
namespace bdata = boost::unit_test::data;
// Dataset generating a Fibonacci sequence
class fibonacci_dataset {
public:
// Samples type is int
using sample=int;
enum { arity = 1 };
struct iterator {
iterator() : a(1), b(1) {}
int operator*() const { return b; }
void operator++()
{
a = a + b;
std::swap(a, b);
}
private:
int a;
int b; // b is the output
};
fibonacci_dataset() {}
// size is infinite
bdata::size_t size() const { return bdata::BOOST_TEST_DS_INFINITE_SIZE; }
// iterator
iterator begin() const { return iterator(); }
};
namespace boost { namespace unit_test { namespace data { namespace monomorphic {
// registering fibonacci_dataset as a proper dataset
template <>
struct is_dataset : boost::mpl::true_ {};
}}}}
// Creating a test-driven dataset
BOOST_DATA_TEST_CASE(
test1,
fibonacci_dataset() ^ fibonacci_dataset(),
fib_sample, exp)
{
BOOST_TEST(fib_sample == exp);
}
error: no match for 'operator^' (operand types are
'boost::unit_test::data::result_of::make::type {aka
fibonacci_dataset}' and 'fibonacci_dataset')
fibonacci_dataset() ^ fibonacci_dataset(),
My use case has to load input and expect files provides by two datasets.
How to fix it?
Thanks,
Olaf