#1783: test and fix for the bug

pull/13383/head
Andrey Pavlenko 13 years ago
parent b253665f8c
commit dccfd79da8
  1. 2
      modules/core/src/mathfuncs.cpp
  2. 12
      modules/core/test/test_math.cpp

@ -2051,7 +2051,7 @@ bool chackIntegerRang(cv::Mat src, Point& bad_pt, int minVal, int maxVal, double
for (int j = 0; j < as_one_channel.rows; ++j) for (int j = 0; j < as_one_channel.rows; ++j)
for (int i = 0; i < as_one_channel.cols; ++i) for (int i = 0; i < as_one_channel.cols; ++i)
{ {
if (as_one_channel.at<typename type_ass::type>(j ,i) <= minVal || as_one_channel.at<typename type_ass::type>(j ,i) >= maxVal) if (as_one_channel.at<typename type_ass::type>(j ,i) < minVal || as_one_channel.at<typename type_ass::type>(j ,i) >= maxVal)
{ {
bad_pt.y = j ; bad_pt.y = j ;
bad_pt.x = i % src.channels(); bad_pt.x = i % src.channels();

@ -2402,7 +2402,17 @@ TYPED_TEST_P(Core_CheckRange, Bounds)
delete bad_pt; delete bad_pt;
} }
REGISTER_TYPED_TEST_CASE_P(Core_CheckRange, Negative, Positive, Bounds); TYPED_TEST_P(Core_CheckRange, Zero)
{
double min_bound = 0.0;
double max_bound = 0.1;
cv::Mat src = cv::Mat::zeros(3,3, cv::DataDepth<TypeParam>::value);
ASSERT_TRUE( checkRange(src, true, NULL, min_bound, max_bound) );
}
REGISTER_TYPED_TEST_CASE_P(Core_CheckRange, Negative, Positive, Bounds, Zero);
typedef ::testing::Types<signed char,unsigned char, signed short, unsigned short, signed int> mat_data_types; typedef ::testing::Types<signed char,unsigned char, signed short, unsigned short, signed int> mat_data_types;
INSTANTIATE_TYPED_TEST_CASE_P(Negative_Test, Core_CheckRange, mat_data_types); INSTANTIATE_TYPED_TEST_CASE_P(Negative_Test, Core_CheckRange, mat_data_types);

Loading…
Cancel
Save