Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve collision code coverage #878

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,9 @@ static const std::vector<std::string> ContactTestTypeStrings = {

struct ContactResult
{
// LCOV_EXCL_START
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
// LCOV_EXCL_STOP

/** @brief The distance between two links */
double distance{ std::numeric_limits<double>::max() };
Expand Down
149 changes: 147 additions & 2 deletions tesseract_collision/test/collision_core_unit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.addContactResult(key1, tesseract_collision::ContactResult{});
EXPECT_EQ(result_map.count(), 1);
EXPECT_EQ(result_map.size(), 1);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 1);
auto it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -212,6 +217,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.addContactResult(key1, tesseract_collision::ContactResult{});
EXPECT_EQ(result_map.count(), 2);
EXPECT_EQ(result_map.size(), 1);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 1);
it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -220,6 +230,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.addContactResult(key2, tesseract_collision::ContactResult{});
EXPECT_EQ(result_map.count(), 3);
EXPECT_EQ(result_map.size(), 2);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 2);
it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -233,6 +248,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.clear();
EXPECT_EQ(result_map.count(), 0);
EXPECT_EQ(result_map.size(), 0);
EXPECT_TRUE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 2);
it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -248,6 +268,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.release();
EXPECT_EQ(result_map.count(), 0);
EXPECT_EQ(result_map.size(), 0);
EXPECT_TRUE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_TRUE(result_map.getContainer().empty());
}

Expand All @@ -256,6 +281,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.addContactResult(key1, { tesseract_collision::ContactResult{}, tesseract_collision::ContactResult{} });
EXPECT_EQ(result_map.count(), 2);
EXPECT_EQ(result_map.size(), 1);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 1);
auto it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -264,6 +294,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.addContactResult(key1, { tesseract_collision::ContactResult{}, tesseract_collision::ContactResult{} });
EXPECT_EQ(result_map.count(), 4);
EXPECT_EQ(result_map.size(), 1);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 1);
it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -272,6 +307,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.addContactResult(key2, { tesseract_collision::ContactResult{}, tesseract_collision::ContactResult{} });
EXPECT_EQ(result_map.count(), 6);
EXPECT_EQ(result_map.size(), 2);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 2);
it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -285,6 +325,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.release();
EXPECT_EQ(result_map.count(), 0);
EXPECT_EQ(result_map.size(), 0);
EXPECT_TRUE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_TRUE(result_map.getContainer().empty());
}

Expand All @@ -293,6 +338,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.setContactResult(key1, tesseract_collision::ContactResult{});
EXPECT_EQ(result_map.count(), 1);
EXPECT_EQ(result_map.size(), 1);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 1);
auto it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -301,6 +351,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.addContactResult(key1, tesseract_collision::ContactResult{});
EXPECT_EQ(result_map.count(), 2);
EXPECT_EQ(result_map.size(), 1);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 1);
it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -309,6 +364,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.setContactResult(key1, tesseract_collision::ContactResult{});
EXPECT_EQ(result_map.count(), 1);
EXPECT_EQ(result_map.size(), 1);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 1);
it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -317,6 +377,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.setContactResult(key2, tesseract_collision::ContactResult{});
EXPECT_EQ(result_map.count(), 2);
EXPECT_EQ(result_map.size(), 2);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 2);
it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -341,10 +406,15 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
EXPECT_EQ(it->second.size(), 0);
EXPECT_TRUE(it->second.capacity() > 0);

// test release
result_map.release();
// test shrink to fit
result_map.shrinkToFit();
EXPECT_EQ(result_map.count(), 0);
EXPECT_EQ(result_map.size(), 0);
EXPECT_TRUE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_TRUE(result_map.getContainer().empty());
}

Expand All @@ -353,6 +423,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.setContactResult(key1, { tesseract_collision::ContactResult{}, tesseract_collision::ContactResult{} });
EXPECT_EQ(result_map.count(), 2);
EXPECT_EQ(result_map.size(), 1);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 1);
auto it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -361,6 +436,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.addContactResult(key1, { tesseract_collision::ContactResult{}, tesseract_collision::ContactResult{} });
EXPECT_EQ(result_map.count(), 4);
EXPECT_EQ(result_map.size(), 1);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 1);
it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -369,6 +449,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.setContactResult(key1, { tesseract_collision::ContactResult{}, tesseract_collision::ContactResult{} });
EXPECT_EQ(result_map.count(), 2);
EXPECT_EQ(result_map.size(), 1);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 1);
it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -377,6 +462,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.setContactResult(key2, { tesseract_collision::ContactResult{}, tesseract_collision::ContactResult{} });
EXPECT_EQ(result_map.count(), 4);
EXPECT_EQ(result_map.size(), 2);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 2);
it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -390,6 +480,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.release();
EXPECT_EQ(result_map.count(), 0);
EXPECT_EQ(result_map.size(), 0);
EXPECT_TRUE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_TRUE(result_map.getContainer().empty());
}

Expand All @@ -399,6 +494,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.addContactResult(key2, tesseract_collision::ContactResult{});
EXPECT_EQ(result_map.count(), 3);
EXPECT_EQ(result_map.size(), 2);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 2);
auto it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -413,6 +513,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT

EXPECT_EQ(result_map.count(), 0);
EXPECT_EQ(result_map.size(), 0);
EXPECT_TRUE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 2);
it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -431,6 +536,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.setContactResult(key2, tesseract_collision::ContactResult{});
EXPECT_EQ(result_map.count(), 3);
EXPECT_EQ(result_map.size(), 2);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 2);
auto it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -445,6 +555,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT

EXPECT_EQ(result_map.count(), 3);
EXPECT_EQ(result_map.size(), 2);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 2);
it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -461,6 +576,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.addContactResult(key2, tesseract_collision::ContactResult{});
EXPECT_EQ(result_map.count(), 3);
EXPECT_EQ(result_map.size(), 2);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 2);
auto it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -475,6 +595,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT

EXPECT_EQ(result_map.count(), 3);
EXPECT_EQ(result_map.size(), 2);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 2);
it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -491,6 +616,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.setContactResult(key2, tesseract_collision::ContactResult{});
EXPECT_EQ(result_map.count(), 3);
EXPECT_EQ(result_map.size(), 2);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 2);
auto it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -505,6 +635,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT

EXPECT_EQ(result_map.count(), 3);
EXPECT_EQ(result_map.size(), 2);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 2);
it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -521,6 +656,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT
result_map.addContactResult(key2, tesseract_collision::ContactResult{});
EXPECT_EQ(result_map.count(), 3);
EXPECT_EQ(result_map.size(), 2);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 2);
auto it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand All @@ -537,6 +677,11 @@ TEST(TesseractCoreUnit, ContactResultMapUnit) // NOLINT

EXPECT_EQ(result_map.count(), 1);
EXPECT_EQ(result_map.size(), 1);
EXPECT_FALSE(result_map.empty());
EXPECT_TRUE(result_map.begin() == result_map.getContainer().begin());
EXPECT_TRUE(result_map.end() == result_map.getContainer().end());
EXPECT_TRUE(result_map.cbegin() == result_map.getContainer().cbegin());
EXPECT_TRUE(result_map.cend() == result_map.getContainer().cend());
EXPECT_EQ(result_map.getContainer().size(), 2);
it = result_map.find(key1);
EXPECT_TRUE(it != result_map.end());
Expand Down
Loading