BOOST_DATA_TEST_CASE с набором данных = Список кортежейC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 BOOST_DATA_TEST_CASE с набором данных = Список кортежей

Сообщение Anonymous »

Мой тестовый прибор, управляемый данными, принимает несколько параметров. Я решил сгруппировать их в STD :: Cutle. Таким образом, полученный набор данных состоит в списке кортежей.

за пределами 1-элементного корзина (тест1 ниже), компиляция не удается (тест 2 ниже): < /p>
#define BOOST_TEST_MAIN
#define BOOST_TEST_DYN_LINK

#include
#include

typedef std::tuple type1;
BOOST_DATA_TEST_CASE(test1, std::list({{1}}), i)
{
BOOST_CHECK(i);
}

typedef std::tuple type2;
BOOST_DATA_TEST_CASE(test2, std::list({{1, 0}}), i)
{
BOOST_CHECK(i.first);
BOOST_CHECK(! i.second);
}
< /code>
Полученное сообщение об ошибке: < /p>
$ g++ -o boost_data_test_case boost_data_test_case.cpp -I ~/workspace/boost_1_81_0/ && ./boost_data_test_case
In file included from boost_data_test_case.cpp:6:
~/workspace/boost_1_81_0/boost/test/data/test_case.hpp: In instantiation of ‘void boost::unit_test::data::ds_detail::test_case_gen::operator()(Arg&& ...) const [with Arg = {const int&, const int&}; TestCase = test2case; DataSet = boost::unit_test::data::monomorphic::collection]’:
~/workspace/boost_1_81_0/boost/test/data/for_each_sample.hpp:55:11: required from ‘void boost::unit_test::data::invoke_action_impl(const Action&, T&&, const boost::unit_test::data::index_sequence&) [with Action = boost::unit_test::data::ds_detail::test_case_gen; T = const std::tuple&; long unsigned int ...I = {0, 1}]’
~/workspace/boost_1_81_0/boost/test/data/for_each_sample.hpp:64:23: required from ‘void boost::unit_test::data::invoke_action(const Action&, T&&, std::true_type) [with Action = boost::unit_test::data::ds_detail::test_case_gen; T = const std::tuple&; std::true_type = std::integral_constant]’
~/workspace/boost_1_81_0/boost/test/data/for_each_sample.hpp:90:22: required from ‘typename std::enable_if::type boost::unit_test::data::for_each_sample(const DataSet&, const Action&, boost::unit_test::data::size_t) [with DataSet = boost::unit_test::data::monomorphic::collection; Action = boost::unit_test::data::ds_detail::test_case_gen; typename std::enable_if::type = void]’
~/workspace/boost_1_81_0/boost/test/data/test_case.hpp:160:34: required from ‘boost::unit_test::test_unit* boost::unit_test::data::ds_detail::test_case_gen::next() const [with TestCase = test2case; DataSet = boost::unit_test::data::monomorphic::collection]’
~/workspace/boost_1_81_0/boost/test/data/test_case.hpp:157:24: required from here
~/workspace/boost_1_81_0/boost/test/data/test_case.hpp:195:37: error: no matching function for call to ‘bind(, const int&, const int&)’
195 | std::bind( &TestCase::template test_method,
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
196 | boost_bind_rvalue_holder_helper(std::forward(arg))...)));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ~/workspace/boost_1_81_0/boost/smart_ptr/detail/shared_count.hpp:37,
from ~/workspace/boost_1_81_0/boost/smart_ptr/shared_ptr.hpp:17,
from ~/workspace/boost_1_81_0/boost/shared_ptr.hpp:17,
from ~/workspace/boost_1_81_0/boost/test/execution_monitor.hpp:24,
from ~/workspace/boost_1_81_0/boost/test/impl/compiler_log_formatter.ipp:22,
from ~/workspace/boost_1_81_0/boost/test/included/unit_test.hpp:18,
from boost_data_test_case.cpp:5:
/opt/rh/devtoolset-9/root/usr/include/c++/9/functional:808:5: note: candidate: ‘template typename std::_Bind_helper::type std::bind(_Func&&, _BoundArgs&& ...)’
808 | bind(_Func&& __f, _BoundArgs&&... __args)
| ^~~~
/opt/rh/devtoolset-9/root/usr/include/c++/9/functional:808:5: note: template argument deduction/substitution failed:
In file included from boost_data_test_case.cpp:6:
~/workspace/boost_1_81_0/boost/test/data/test_case.hpp:195:37: note: couldn’t deduce template parameter ‘_Func’
195 | std::bind( &TestCase::template test_method,
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
196 | boost_bind_rvalue_holder_helper(std::forward(arg))...)));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ~/workspace/boost_1_81_0/boost/smart_ptr/detail/shared_count.hpp:37,
from ~/workspace/boost_1_81_0/boost/smart_ptr/shared_ptr.hpp:17,
from ~/workspace/boost_1_81_0/boost/shared_ptr.hpp:17,
from ~/workspace/boost_1_81_0/boost/test/execution_monitor.hpp:24,
from ~/workspace/boost_1_81_0/boost/test/impl/compiler_log_formatter.ipp:22,
from ~/workspace/boost_1_81_0/boost/test/included/unit_test.hpp:18,
from boost_data_test_case.cpp:5:
/opt/rh/devtoolset-9/root/usr/include/c++/9/functional:832:5: note: candidate: ‘template typename std::_Bindres_helper::type std::bind(_Func&&, _BoundArgs&& ...)’
832 | bind(_Func&& __f, _BoundArgs&&... __args)
| ^~~~
/opt/rh/devtoolset-9/root/usr/include/c++/9/functional:832:5: note: template argument deduction/substitution failed:
In file included from boost_data_test_case.cpp:6:
~/workspace/boost_1_81_0/boost/test/data/test_case.hpp:195:37: note: couldn’t deduce template parameter ‘_Result’
195 | std::bind( &TestCase::template test_method,
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
196 | boost_bind_rvalue_holder_helper(std::forward(arg))...)));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Подробнее здесь: https://stackoverflow.com/questions/797 ... -of-tuples
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»