add toml::resize func that resize only resizable container

This commit is contained in:
ToruNiina
2017-05-06 23:40:57 +09:00
parent a506dfd3c1
commit 58c12a69be
3 changed files with 92 additions and 0 deletions

View File

@@ -1,5 +1,6 @@
set(TEST_NAMES
test_traits
test_utility
test_value
test_to_toml
test_from_toml

64
tests/test_utility.cpp Normal file
View File

@@ -0,0 +1,64 @@
#define BOOST_TEST_MODULE "test_acceptor"
#ifdef UNITTEST_FRAMEWORK_LIBRARY_EXIST
#include <boost/test/unit_test.hpp>
#else
#define BOOST_TEST_NO_LIB
#include <boost/test/included/unit_test.hpp>
#endif
#include <toml/utility.hpp>
#include <vector>
#include <array>
BOOST_AUTO_TEST_CASE(test_resize)
{
{
typedef std::vector<int> resizable_type;
typedef std::array<int,1> non_resizable_type;
BOOST_CHECK(toml::detail::has_resize_method<resizable_type>::value);
BOOST_CHECK(not toml::detail::has_resize_method<non_resizable_type>::value);
}
{
bool thrown = false;
std::vector<int> v;
try
{
toml::resize(v, 10);
}
catch(std::exception& ex)
{
thrown = true;
}
BOOST_CHECK(not thrown);
BOOST_CHECK_EQUAL(v.size(), 10);
}
{
bool thrown = false;
std::array<int, 15> a;
try
{
toml::resize(a, 10);
}
catch(std::exception& ex)
{
thrown = true;
}
BOOST_CHECK(not thrown);
BOOST_CHECK_EQUAL(a.size(), 15);
}
{
bool thrown = false;
std::array<int, 15> a;
try
{
toml::resize(a, 20);
}
catch(std::exception& ex)
{
thrown = true;
}
BOOST_CHECK(thrown);
}
}