Skip to content
Snippets Groups Projects
Commit 12d5908f authored by Angel Santamaria-Navarro's avatar Angel Santamaria-Navarro
Browse files

Add FeatureIdxGrid TrackingGrid to gtest_vision_utils.cpp

parent 86f86485
No related branches found
No related tags found
No related merge requests found
...@@ -376,6 +376,131 @@ TEST(VisionUtils, FeatureIdxGrid) ...@@ -376,6 +376,131 @@ TEST(VisionUtils, FeatureIdxGrid)
result.push_back(elem.second); result.push_back(elem.second);
ASSERT_EQ(result.size(),1); ASSERT_EQ(result.size(),1);
ASSERT_EQ(result.at(0),1); ASSERT_EQ(result.at(0),1);
// Tracking grid
fg.clear();
// Check all are empty
for (unsigned int row=0;row<5;row++)
for (unsigned int col=0;col<5;col++)
ASSERT_TRUE(fg.pickEmptyTrackingCell(cell));
// Hit all by cell
for (unsigned int row=0;row<5;row++)
{
for (unsigned int col=0;col<5;col++)
{
cell << row, col;
fg.hitTrackingCell(cell);
}
}
// Check all are hit
for (unsigned int row=0;row<5;row++)
for (unsigned int col=0;col<5;col++)
ASSERT_FALSE(fg.pickEmptyTrackingCell(cell));
// Clear
fg.clear();
// Check all are empty
for (unsigned int row=0;row<5;row++)
for (unsigned int col=0;col<5;col++)
ASSERT_TRUE(fg.pickEmptyTrackingCell(cell));
// Hit all by [row, col]
for (unsigned int row=0;row<5;row++)
for (unsigned int col=0;col<5;col++)
fg.hitTrackingCell(row,col);
// Check all are hit
for (unsigned int row=0;row<5;row++)
for (unsigned int col=0;col<5;col++)
ASSERT_FALSE(fg.pickEmptyTrackingCell(cell));
// Clear
fg.clear();
// Check all are empty
for (unsigned int row=0;row<5;row++)
for (unsigned int col=0;col<5;col++)
ASSERT_TRUE(fg.pickEmptyTrackingCell(cell));
// Hit all by KeyPoint
for (unsigned int row=0;row<5;row++)
{
for (unsigned int col=0;col<5;col++)
{
cv::KeyPoint kp(row, col, CV_32F);
fg.hitTrackingCell(kp);
}
}
// Check all are hit
for (unsigned int row=0;row<5;row++)
for (unsigned int col=0;col<5;col++)
ASSERT_FALSE(fg.pickEmptyTrackingCell(cell));
// Block all (set to 0)
for (unsigned int row=0;row<5;row++)
{
for (unsigned int col=0;col<5;col++)
{
cell << row, col;
fg.blockTrackingCell(cell);
}
}
// Check all are blocked (empty)
for (unsigned int row=0;row<5;row++)
for (unsigned int col=0;col<5;col++)
ASSERT_TRUE(fg.pickEmptyTrackingCell(cell));
// Check hit + block
for (unsigned int row=0;row<5;row++)
{
for (unsigned int col=0;col<5;col++)
{
cell << row, col;
fg.hitTrackingCell(cell);
fg.blockTrackingCell(cell);
}
}
// Check all are blocked (empty)
for (unsigned int row=0;row<5;row++)
for (unsigned int col=0;col<5;col++)
ASSERT_TRUE(fg.pickEmptyTrackingCell(cell));
// Hit diagonal
fg.hitTrackingCell(0,0);
fg.hitTrackingCell(1,1);
fg.hitTrackingCell(2,2);
fg.hitTrackingCell(3,3);
fg.hitTrackingCell(4,4);
// Check the diagonal is not empty
for (unsigned int row=0;row<5;row++)
for (unsigned int col=0;col<5;col++)
{
bool empty = fg.pickEmptyTrackingCell(cell);
if (cell(0) == cell(1)) // diagonal must be hit
ASSERT_FALSE(empty);
else
ASSERT_TRUE(empty);
}
// block the diagonal
cell << 0,0; fg.blockTrackingCell(cell);
cell << 1,1; fg.blockTrackingCell(cell);
cell << 2,2; fg.blockTrackingCell(cell);
cell << 3,3; fg.blockTrackingCell(cell);
cell << 4,4; fg.blockTrackingCell(cell);
// Check all are blocked (empty)
for (unsigned int row=0;row<5;row++)
for (unsigned int col=0;col<5;col++)
ASSERT_TRUE(fg.pickEmptyTrackingCell(cell));
} }
int main(int argc, char **argv) { int main(int argc, char **argv) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment