array_view boundary test and fix. (#211)

This commit is contained in:
ProgmaticProgrammer 2020-04-15 13:51:34 +08:00 committed by GitHub
parent cdeef0fecc
commit 1bf775ae3d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 51 additions and 2 deletions

View File

@ -433,7 +433,10 @@ namespace etl
//*************************************************************************
void remove_prefix(const size_type n)
{
mbegin += n;
if (n < size())
mbegin += n;
else
mbegin = mend;
}
//*************************************************************************
@ -441,7 +444,10 @@ namespace etl
//*************************************************************************
void remove_suffix(const size_type n)
{
mend -= n;
if (n < size())
mend -= n;
else
mend = mbegin;
}
//*************************************************************************

View File

@ -598,6 +598,49 @@ namespace
CHECK(isEqual);
}
TEST(test_remove_prefix_boundary)
{
// On-point test
std::vector<int> original = { 1, 2, 3, 4, 5, 6, 7, 8 };
View view(original);
view.remove_prefix(original.size());
CHECK(view.empty());
// Off-point test
std::vector<int> original2 = { 1, 2, 3, 4, 5, 6, 7, 8 };
View view2(original2);
view2.remove_prefix(original.size() + 1);
CHECK(view2.empty());
}
TEST(test_remove_suffix_boundary)
{
// On-point test
std::vector<int> original = { 1, 2, 3, 4, 5, 6, 7, 8 };
View view(original);
view.remove_suffix(original.size());
CHECK(view.empty());
// Off-point test
std::vector<int> original2 = { 1, 2, 3, 4, 5, 6, 7, 8 };
View view2(original2);
view2.remove_suffix(original.size() + 1);
CHECK(view2.empty());
}
//*************************************************************************
TEST(test_hash)
{