Мой тестовый прибор, управляемый данными, принимает несколько параметров. Я решил сгруппировать их в 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
BOOST_DATA_TEST_CASE с набором данных = Список кортежей ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1759148060
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))...)));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Подробнее здесь: [url]https://stackoverflow.com/questions/79778083/boost-data-test-case-with-dataset-list-of-tuples[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия