emplace_front, emplace_back updates

This commit is contained in:
John Wellbelove 2023-01-07 15:20:25 +00:00
parent a507f8f2a6
commit a398207e3d
6 changed files with 116 additions and 56 deletions

View File

@ -354,9 +354,11 @@ namespace etl
/// If asserts or exceptions are enabled, emits vector_full if the vector is already full.
///\param value The value to add.
//*********************************************************************
void emplace_back(parameter_t value)
reference emplace_back(parameter_t value)
{
base_t::emplace_back(value);
return back();
}
//*************************************************************************

View File

@ -634,38 +634,6 @@ namespace
CHECK(is_equal);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_emplace_back)
{
Compare_Data compare_data;
Data data;
for (int i = 0; i < int(SIZE); ++i)
{
compare_data.emplace_back(i);
}
for (int i = 0; i < int(SIZE); ++i)
{
data.emplace_back(i);
}
CHECK_EQUAL(compare_data.size(), data.size());
bool is_equal = std::equal(data.begin(),
data.end(),
compare_data.begin());
CHECK(is_equal);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_emplace_back_return)
{
Data data;
CHECK_EQUAL(42, data.emplace_back(42));
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_push_back_literal)
{
@ -704,6 +672,38 @@ namespace
CHECK_THROW(data.push_back(SIZE), etl::vector_full);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_emplace_back)
{
Compare_Data compare_data;
Data data;
for (int i = 0; i < int(SIZE); ++i)
{
compare_data.emplace_back(i);
}
for (int i = 0; i < int(SIZE); ++i)
{
data.emplace_back(i);
}
CHECK_EQUAL(compare_data.size(), data.size());
bool is_equal = std::equal(data.begin(),
data.end(),
compare_data.begin());
CHECK(is_equal);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_emplace_back_return)
{
Data data;
CHECK_EQUAL(42, data.emplace_back(42));
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_pop_back)
{

View File

@ -685,6 +685,38 @@ namespace
CHECK_THROW(data.push_back(SIZE), etl::vector_full);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_emplace_back)
{
Compare_Data compare_data;
Data data(buffer1, SIZE);
for (int i = 0; i < int(SIZE); ++i)
{
compare_data.emplace_back(i);
}
for (int i = 0; i < int(SIZE); ++i)
{
data.emplace_back(i);
}
CHECK_EQUAL(compare_data.size(), data.size());
bool is_equal = std::equal(data.begin(),
data.end(),
compare_data.begin());
CHECK(is_equal);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_emplace_back_return)
{
Data data(buffer1, SIZE);
CHECK_EQUAL(42, data.emplace_back(42));
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_pop_back)
{

View File

@ -662,29 +662,6 @@ namespace
CHECK_THROW(data.push_back(NDC("Z")), etl::vector_full);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_emplace_back)
{
CompareDataNDC compare_data;
DataNDC data;
for (size_t i = 0UL; i < SIZE; ++i)
{
std::string value(" ");
value[0] = char('A' + i);
compare_data.emplace_back(value, i);
data.emplace_back(value, i);
}
CHECK_EQUAL(compare_data.size(), data.size());
bool is_equal = std::equal(data.begin(),
data.end(),
compare_data.begin());
CHECK(is_equal);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_push_back_unique_ptr)
{
@ -711,6 +688,37 @@ namespace
CHECK_EQUAL(4, *data[3]);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_emplace_back)
{
CompareDataNDC compare_data;
DataNDC data;
for (size_t i = 0UL; i < SIZE; ++i)
{
std::string value(" ");
value[0] = char('A' + i);
compare_data.emplace_back(value, i);
data.emplace_back(value, i);
}
CHECK_EQUAL(compare_data.size(), data.size());
bool is_equal = std::equal(data.begin(),
data.end(),
compare_data.begin());
CHECK(is_equal);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_emplace_back_return)
{
DataNDC data;
CHECK_EQUAL(NDC("A", 42), data.emplace_back("A", 42));
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_insert_int)
{

View File

@ -1057,6 +1057,15 @@ namespace
CHECK(is_equal);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_emplace_back_return)
{
Data data;
int d = 42;
CHECK_EQUAL(&d, data.emplace_back(&d));
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_pop_back)
{

View File

@ -1043,6 +1043,15 @@ namespace
CHECK(is_equal);
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_emplace_back_return)
{
Data data(buffer1, SIZE);
int d = 42;
CHECK_EQUAL(&d, data.emplace_back(&d));
}
//*************************************************************************
TEST_FIXTURE(SetupFixture, test_pop_back)
{