mirror of
https://github.com/ETLCPP/etl.git
synced 2026-10-28 18:07:10 +08:00
Added self assignment tests.
This commit is contained in:
parent
8acde380fa
commit
46de221cfe
@ -59,11 +59,11 @@ namespace
|
||||
TEST(test_assignment)
|
||||
{
|
||||
Data data = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
|
||||
Data otherData;
|
||||
Data other_data;
|
||||
|
||||
otherData = data;
|
||||
other_data = data;
|
||||
|
||||
bool isEqual = std::equal(data.begin(), data.end(), otherData.begin());
|
||||
bool isEqual = std::equal(data.begin(), data.end(), other_data.begin());
|
||||
|
||||
CHECK(isEqual);
|
||||
}
|
||||
|
||||
@ -471,6 +471,22 @@ namespace
|
||||
CHECK(are_equal);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_self_assignment)
|
||||
{
|
||||
CompareDataNDC compare_data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC other_data(data);
|
||||
|
||||
other_data = other_data;
|
||||
|
||||
CHECK_EQUAL(data.size(), other_data.size());
|
||||
|
||||
are_equal = std::equal(data.begin(), data.end(), other_data.begin());
|
||||
|
||||
CHECK(are_equal);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_unique)
|
||||
{
|
||||
|
||||
@ -698,6 +698,22 @@ namespace
|
||||
CHECK(are_equal);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_self_assignment)
|
||||
{
|
||||
CompareData compare_data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC data(sorted_data.begin(), sorted_data.end());
|
||||
DataNDC other_data = data;
|
||||
|
||||
other_data = other_data;
|
||||
|
||||
CHECK_EQUAL(data.size(), other_data.size());
|
||||
|
||||
are_equal = std::equal(data.begin(), data.end(), other_data.begin());
|
||||
|
||||
CHECK(are_equal);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_unique)
|
||||
{
|
||||
|
||||
@ -127,13 +127,28 @@ namespace
|
||||
TEST_FIXTURE(SetupFixture, test_assignment)
|
||||
{
|
||||
Data data(initial_data.begin(), initial_data.end());
|
||||
Data otherData;
|
||||
Data other_data;
|
||||
|
||||
otherData = data;
|
||||
other_data = data;
|
||||
|
||||
bool isEqual = std::equal(data.begin(),
|
||||
data.end(),
|
||||
otherData.begin());
|
||||
other_data.begin());
|
||||
|
||||
CHECK(isEqual);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST_FIXTURE(SetupFixture, test_self_assignment)
|
||||
{
|
||||
Data data(initial_data.begin(), initial_data.end());
|
||||
Data other_data(data);
|
||||
|
||||
other_data = other_data;
|
||||
|
||||
bool isEqual = std::equal(data.begin(),
|
||||
data.end(),
|
||||
other_data.begin());
|
||||
|
||||
CHECK(isEqual);
|
||||
}
|
||||
@ -887,26 +902,5 @@ namespace
|
||||
const Data initial2(initial_data.begin(), initial_data.end());
|
||||
CHECK((initial >= initial2) == (initial_data >= initial_data));
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_swap)
|
||||
{
|
||||
std::vector<int> first = { 1, 2, 3, 4, 5, 6 };
|
||||
std::vector<int> second = { 6, 5, 4 };
|
||||
|
||||
Data data1(first.begin(), first.end());
|
||||
Data data2(second.begin(), second.end());
|
||||
|
||||
swap(data1, data2);
|
||||
|
||||
CHECK_EQUAL(second.size(), data1.size());
|
||||
CHECK_EQUAL(first.size(), data2.size());
|
||||
|
||||
CHECK_EQUAL(std::distance(second.begin(), second.end()), std::distance(data1.begin(), data1.end()));
|
||||
CHECK_EQUAL(std::distance(first.begin(), first.end()), std::distance(data2.begin(), data2.end()));
|
||||
|
||||
CHECK(std::equal(second.begin(), second.end(), data1.begin()));
|
||||
CHECK(std::equal(first.begin(), first.end(), data2.begin()));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user