Merge remote-tracking branch 'origin/development'

This commit is contained in:
John Wellbelove 2016-03-18 20:36:15 +00:00
commit b0063d1d08
2 changed files with 77 additions and 13 deletions

View File

@ -463,7 +463,7 @@ namespace etl
if (i_node != end())
{
// Reduce.
erase_after(i_node, end());
erase_after(i_last_node, end());
}
else if (i_node == end())
{

View File

@ -182,6 +182,24 @@ namespace
CHECK_THROW(data.resize(data.max_size() + 1), etl::forward_list_full);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_resize_down)
{
const size_t INITIAL_SIZE = 4;
const size_t NEW_SIZE = 2;
const ItemNDC VALUE("1");
DataNDC data(INITIAL_SIZE, VALUE);
data.resize(NEW_SIZE, VALUE);
CompareDataNDC compare_data(INITIAL_SIZE, VALUE);
compare_data.resize(NEW_SIZE, VALUE);
are_equal = std::equal(data.begin(), data.end(), compare_data.begin());
CHECK(are_equal);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_clear)
{
@ -532,6 +550,20 @@ namespace
CHECK(are_equal);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_unique_empty)
{
CompareDataNDC compare_data;
DataNDC data;
compare_data.unique();
data.unique();
are_equal = std::equal(data.begin(), data.end(), compare_data.begin());
CHECK(are_equal);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_unique)
{
@ -670,6 +702,26 @@ namespace
are_equal = std::equal(data.begin(), data.end(), compare_data.begin());
CHECK(are_equal);
// Move to same.
i_from_before = data.begin();
std::advance(i_from_before, 3);
i_to_before = data.begin();
std::advance(i_to_before, 3);
i_compare_from_before = compare_data.begin();
std::advance(i_compare_from_before, 3);
i_compare_to_before = compare_data.begin();
std::advance(i_compare_to_before, 3);
compare_data.splice_after(i_compare_to_before, compare_data, i_compare_from_before);
data.move_after(i_from_before, i_to_before);
are_equal = std::equal(data.begin(), data.end(), compare_data.begin());
CHECK(are_equal);
}
//*************************************************************************
@ -731,18 +783,6 @@ namespace
compare_data.splice_after(i_compare_to_before, compare_data, i_compare_first_before, i_compare_last);
data.move_after(i_first_before, i_last, i_to_before);
//DataNDC::const_iterator id = data.begin();
//CompareDataNDC::const_iterator ic = compare_data.begin();
//ItemNDC d;
//ItemNDC c;
//while (ic != compare_data.end())
//{
// d = *id++;
// c = *ic++;
//}
are_equal = std::equal(data.begin(), data.end(), compare_data.begin());
// Move to nearby.
@ -769,6 +809,30 @@ namespace
are_equal = std::equal(data.begin(), data.end(), compare_data.begin());
// Move to same.
i_first_before = data.begin();
std::advance(i_first_before, 4);
i_last = i_first_before;
std::advance(i_last, 4);
i_to_before = data.begin();
std::advance(i_to_before, 4);
i_compare_first_before = compare_data.begin();
std::advance(i_compare_first_before, 4);
i_compare_last = i_compare_first_before;
std::advance(i_compare_last, 4);
i_compare_to_before = compare_data.begin();
std::advance(i_compare_to_before, 4);
compare_data.splice_after(i_compare_to_before, compare_data, i_compare_first_before, i_compare_last);
data.move_after(i_first_before, i_last, i_to_before);
are_equal = std::equal(data.begin(), data.end(), compare_data.begin());
// Move to illegal place.
i_first_before = data.begin();
std::advance(i_first_before, 2);