Commit c146c54b authored by Andrey Kamaev's avatar Andrey Kamaev

Fix sanity checks for empty objects

parent f8672d49
...@@ -392,6 +392,13 @@ void Regression::verify(cv::FileNode node, cv::InputArray array, double eps, ERR ...@@ -392,6 +392,13 @@ void Regression::verify(cv::FileNode node, cv::InputArray array, double eps, ERR
cv::Mat expected; cv::Mat expected;
valnode >> expected; valnode >> expected;
if(expected.empty())
{
ASSERT_TRUE(actual.empty())
<< " expected empty " << node.name() << "[" << idx<< "]";
}
else
{
ASSERT_EQ(expected.size(), actual.size()) ASSERT_EQ(expected.size(), actual.size())
<< " " << node.name() << "[" << idx<< "] has unexpected size"; << " " << node.name() << "[" << idx<< "] has unexpected size";
...@@ -402,8 +409,12 @@ void Regression::verify(cv::FileNode node, cv::InputArray array, double eps, ERR ...@@ -402,8 +409,12 @@ void Regression::verify(cv::FileNode node, cv::InputArray array, double eps, ERR
{ {
if (!cv::checkRange(diff, true, 0, 0, eps)) if (!cv::checkRange(diff, true, 0, 0, eps))
{ {
if(expected.total() * expected.channels() < 12)
std::cout << " Expected: " << std::endl << expected << std::endl << " Actual:" << std::endl << actual << std::endl;
double max; double max;
cv::minMaxLoc(diff.reshape(1), 0, &max); cv::minMaxLoc(diff.reshape(1), 0, &max);
FAIL() << " Absolute difference (=" << max << ") between argument \"" FAIL() << " Absolute difference (=" << max << ") between argument \""
<< node.name() << "[" << idx << "]\" and expected value is bugger than " << eps; << node.name() << "[" << idx << "]\" and expected value is bugger than " << eps;
} }
...@@ -420,6 +431,7 @@ void Regression::verify(cv::FileNode node, cv::InputArray array, double eps, ERR ...@@ -420,6 +431,7 @@ void Regression::verify(cv::FileNode node, cv::InputArray array, double eps, ERR
} }
} }
} }
}
else else
{ {
if (valnode.isNone()) if (valnode.isNone())
...@@ -434,6 +446,13 @@ void Regression::verify(cv::FileNode node, cv::InputArray array, double eps, ERR ...@@ -434,6 +446,13 @@ void Regression::verify(cv::FileNode node, cv::InputArray array, double eps, ERR
valnode >> expected; valnode >> expected;
cv::Mat actual = array.getMat(); cv::Mat actual = array.getMat();
if(expected.empty())
{
ASSERT_TRUE(actual.empty())
<< " expected empty " << node.name();
}
else
{
ASSERT_EQ(expected.size(), actual.size()) ASSERT_EQ(expected.size(), actual.size())
<< " Argument \"" << node.name() << "\" has unexpected size"; << " Argument \"" << node.name() << "\" has unexpected size";
...@@ -444,9 +463,13 @@ void Regression::verify(cv::FileNode node, cv::InputArray array, double eps, ERR ...@@ -444,9 +463,13 @@ void Regression::verify(cv::FileNode node, cv::InputArray array, double eps, ERR
{ {
if (!cv::checkRange(diff, true, 0, 0, eps)) if (!cv::checkRange(diff, true, 0, 0, eps))
{ {
if(expected.total() * expected.channels() < 12)
std::cout << " Expected: " << std::endl << expected << std::endl << " Actual:" << std::endl << actual << std::endl;
double max; double max;
cv::minMaxLoc(diff.reshape(1), 0, &max); cv::minMaxLoc(diff.reshape(1), 0, &max);
FAIL() << " Difference (=" << max << ") between argument \"" << node.name()
FAIL() << " Difference (=" << max << ") between argument1 \"" << node.name()
<< "\" and expected value is bugger than " << eps; << "\" and expected value is bugger than " << eps;
} }
} }
...@@ -462,6 +485,7 @@ void Regression::verify(cv::FileNode node, cv::InputArray array, double eps, ERR ...@@ -462,6 +485,7 @@ void Regression::verify(cv::FileNode node, cv::InputArray array, double eps, ERR
} }
} }
} }
}
} }
Regression& Regression::operator() (const std::string& name, cv::InputArray array, double eps, ERROR_TYPE err) Regression& Regression::operator() (const std::string& name, cv::InputArray array, double eps, ERROR_TYPE err)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment