mirror of
https://github.com/boostorg/container.git
synced 2025-08-03 06:24:26 +02:00
Added more tests for backwards expansion
This commit is contained in:
@@ -168,23 +168,24 @@ bool test_insert_with_expand_bwd()
|
|||||||
|
|
||||||
//Distance old and new buffer
|
//Distance old and new buffer
|
||||||
const int Offset[] =
|
const int Offset[] =
|
||||||
{ 350, 250, 150, 150,
|
{ 350, 300, 250, 200, 150, 100, 150, 100,
|
||||||
150, 50, 50, 50 };
|
150, 50, 50, 50 };
|
||||||
//Insert position
|
|
||||||
const int Position[] =
|
|
||||||
{ 100, 100, 100, 100,
|
|
||||||
100, 100, 100, 100 };
|
|
||||||
//Initial vector size
|
//Initial vector size
|
||||||
const int InitialSize[] =
|
const int InitialSize[] =
|
||||||
{ 200, 200, 200, 200,
|
{ 200, 200, 200, 200, 200, 200, 200, 200,
|
||||||
200, 200, 200, 200 };
|
200, 200, 200, 200 };
|
||||||
//Size of the data to insert
|
//Size of the data to insert
|
||||||
const int InsertSize[] =
|
const int InsertSize[] =
|
||||||
{ 100, 100, 100, 200,
|
{ 100, 100, 100, 100, 100, 100, 200, 200,
|
||||||
300, 25, 100, 200 };
|
300, 25, 100, 200 };
|
||||||
//Number of tests
|
//Number of tests
|
||||||
const int Iterations = sizeof(InsertSize)/sizeof(int);
|
const int Iterations = sizeof(InsertSize)/sizeof(int);
|
||||||
|
|
||||||
|
//Insert position
|
||||||
|
const int Position[] =
|
||||||
|
{ 0, 100, 200 };
|
||||||
|
|
||||||
|
for(int pos = 0; pos < sizeof(Position)/sizeof(Position[0]); ++pos){
|
||||||
for(int iteration = 0; iteration < Iterations; ++iteration)
|
for(int iteration = 0; iteration < Iterations; ++iteration)
|
||||||
{
|
{
|
||||||
boost::movelib::unique_ptr<char[]> memptr =
|
boost::movelib::unique_ptr<char[]> memptr =
|
||||||
@@ -212,13 +213,13 @@ bool test_insert_with_expand_bwd()
|
|||||||
VectorWithExpandBwdAllocator vector(alloc);
|
VectorWithExpandBwdAllocator vector(alloc);
|
||||||
vector.insert( vector.begin()
|
vector.insert( vector.begin()
|
||||||
, initial_data.begin(), initial_data.end());
|
, initial_data.begin(), initial_data.end());
|
||||||
vector.insert( vector.begin() + Position[iteration]
|
vector.insert( vector.begin() + Position[pos]
|
||||||
, data_to_insert.begin(), data_to_insert.end());
|
, data_to_insert.begin(), data_to_insert.end());
|
||||||
|
|
||||||
if(!life_count<value_type>::check(InitialSize[iteration]*2+InsertSize[iteration]*2))
|
if(!life_count<value_type>::check(InitialSize[iteration]*2+InsertSize[iteration]*2))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
initial_data.insert(initial_data.begin() + Position[iteration]
|
initial_data.insert(initial_data.begin() + Position[pos]
|
||||||
, data_to_insert.begin(), data_to_insert.end());
|
, data_to_insert.begin(), data_to_insert.end());
|
||||||
//Now check that values are equal
|
//Now check that values are equal
|
||||||
if(!CheckEqualVector(vector, initial_data)){
|
if(!CheckEqualVector(vector, initial_data)){
|
||||||
@@ -228,6 +229,7 @@ bool test_insert_with_expand_bwd()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user