diff --git a/modules/core/test/test_io.cpp b/modules/core/test/test_io.cpp index 454b627197..dc3d4a5328 100644 --- a/modules/core/test/test_io.cpp +++ b/modules/core/test/test_io.cpp @@ -611,28 +611,20 @@ static void test_filestorage_basic(int write_flags, const char* suffix_name, boo { /* init */ /* a normal mat u8 */ - _2d_out_u8 = cv::Mat(10, 20, CV_8UC3, cv::Scalar(1U, 2U, 127U)); - for (int i = 0; i < _2d_out_u8.rows; ++i) - for (int j = 0; j < _2d_out_u8.cols; ++j) - _2d_out_u8.at(i, j)[1] = (i + j) % 256; + _2d_out_u8 = Mat(10, 20, CV_8UC3); + cv::randu(_2d_out_u8, 0U, 255U); /* a normal mat u32 */ - _2d_out_u32 = cv::Mat(10, 20, CV_32UC3, cv::Scalar(1U, 2U, 2147483647U)); - for (int i = 0; i < _2d_out_u32.rows; ++i) - for (int j = 0; j < _2d_out_u32.cols; ++j) - _2d_out_u32.at>(i, j)[1] = i + j; + _2d_out_u32 = Mat(10, 20, CV_32UC3); + cv::randu(_2d_out_u32, 0U, 2147483647U); /* a normal mat i64 */ - _2d_out_i64 = cv::Mat(10, 20, CV_64SC3, cv::Scalar(1LL, 2LL, 2251799813685247LL)); - for (int i = 0; i < _2d_out_i64.rows; ++i) - for (int j = 0; j < _2d_out_i64.cols; ++j) - _2d_out_i64.at(i, j)[1] = i + j; + _2d_out_i64 = Mat(10, 20, CV_64SC3); + cv::randu(_2d_out_i64, -2251799813685247LL, 2251799813685247LL); /* a normal mat u64 */ - _2d_out_u64 = cv::Mat(10, 20, CV_64UC3, cv::Scalar(1ULL, 2ULL, 4503599627370495ULL)); - for (int i = 0; i < _2d_out_u64.rows; ++i) - for (int j = 0; j < _2d_out_u64.cols; ++j) - _2d_out_u64.at>(i, j)[1] = i + j; + _2d_out_u64 = Mat(10, 20, CV_64UC3); + cv::randu(_2d_out_u64, 0ULL, 4503599627370495ULL); /* a 4d mat */ const int Size[] = {4, 4, 4, 4}; @@ -756,93 +748,10 @@ static void test_filestorage_basic(int write_flags, const char* suffix_name, boo EXPECT_EQ(_em_in.depth(), _em_out.depth()); EXPECT_TRUE(_em_in.empty()); - ASSERT_EQ(_2d_in_u8.rows , _2d_out_u8.rows); - ASSERT_EQ(_2d_in_u8.cols , _2d_out_u8.cols); - ASSERT_EQ(_2d_in_u8.dims , _2d_out_u8.dims); - ASSERT_EQ(_2d_in_u8.depth(), _2d_out_u8.depth()); - - ASSERT_EQ(_2d_in_u32.rows , _2d_out_u32.rows); - ASSERT_EQ(_2d_in_u32.cols , _2d_out_u32.cols); - ASSERT_EQ(_2d_in_u32.dims , _2d_out_u32.dims); - ASSERT_EQ(_2d_in_u32.depth(), _2d_out_u32.depth()); - - ASSERT_EQ(_2d_in_i64.rows , _2d_out_i64.rows); - ASSERT_EQ(_2d_in_i64.cols , _2d_out_i64.cols); - ASSERT_EQ(_2d_in_i64.dims , _2d_out_i64.dims); - ASSERT_EQ(_2d_in_i64.depth(), _2d_out_i64.depth()); - - ASSERT_EQ(_2d_in_u64.rows , _2d_out_u64.rows); - ASSERT_EQ(_2d_in_u64.cols , _2d_out_u64.cols); - ASSERT_EQ(_2d_in_u64.dims , _2d_out_u64.dims); - ASSERT_EQ(_2d_in_u64.depth(), _2d_out_u64.depth()); - - errors = 0; - for(int i = 0; i < _2d_out_u8.rows; ++i) - { - for (int j = 0; j < _2d_out_u8.cols; ++j) - { - if (_2d_in_u8.at(i, j) != _2d_out_u8.at(i, j)) { - EXPECT_EQ(_2d_in_u8.at(i, j), _2d_out_u8.at(i, j)); - printf("i = %d, j = %d\n", i, j); - if (++errors >= 3) - { - i = _2d_out_u8.rows; - break; - } - } - } - } - - errors = 0; - for(int i = 0; i < _2d_out_u32.rows; ++i) - { - for (int j = 0; j < _2d_out_u32.cols; ++j) - { - if (_2d_in_u32.at>(i, j) != _2d_out_u32.at>(i, j)) { - EXPECT_EQ((_2d_in_u32.at>(i, j)), (_2d_out_u32.at>(i, j))); - printf("i = %d, j = %d\n", i, j); - if (++errors >= 3) - { - i = _2d_out_u32.rows; - break; - } - } - } - } - - errors = 0; - for(int i = 0; i < _2d_out_i64.rows; ++i) - { - for (int j = 0; j < _2d_out_i64.cols; ++j) - { - if (_2d_in_i64.at(i, j) != _2d_out_i64.at(i, j)) { - EXPECT_EQ(_2d_in_i64.at(i, j), _2d_out_i64.at(i, j)); - printf("i = %d, j = %d\n", i, j); - if (++errors >= 3) - { - i = _2d_out_i64.rows; - break; - } - } - } - } - - errors = 0; - for(int i = 0; i < _2d_out_u64.rows; ++i) - { - for (int j = 0; j < _2d_out_u64.cols; ++j) - { - if (_2d_in_u64.at>(i, j) != _2d_out_u64.at>(i, j)) { - EXPECT_EQ((_2d_in_u64.at>(i, j)), (_2d_out_u64.at>(i, j))); - printf("i = %d, j = %d\n", i, j); - if (++errors >= 3) - { - i = _2d_out_u64.rows; - break; - } - } - } - } + EXPECT_MAT_NEAR(_2d_in_u8, _2d_out_u8, 0); + EXPECT_MAT_NEAR(_2d_in_u32, _2d_out_u32, 0); + EXPECT_MAT_NEAR(_2d_in_i64, _2d_out_i64, 0); + EXPECT_MAT_NEAR(_2d_in_u64, _2d_out_u64, 0); ASSERT_EQ(_nd_in.rows , _nd_out.rows); ASSERT_EQ(_nd_in.cols , _nd_out.cols);