mirror of
https://github.com/opencv/opencv.git
synced 2025-08-06 14:36:36 +08:00
test: fix mulSpectrums error tolerance
This commit is contained in:
parent
26fbaada0a
commit
7bceef715c
@ -787,9 +787,7 @@ public:
|
||||
protected:
|
||||
void run_func();
|
||||
void prepare_to_validation( int test_case_idx );
|
||||
#if defined(__aarch64__) && defined(NDEBUG)
|
||||
double get_success_error_level( int test_case_idx, int i, int j );
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
@ -797,31 +795,19 @@ CxCore_MulSpectrumsTest::CxCore_MulSpectrumsTest() : CxCore_DXTBaseTest( true, t
|
||||
{
|
||||
}
|
||||
|
||||
#if defined(__aarch64__) && defined(NDEBUG)
|
||||
double CxCore_MulSpectrumsTest::get_success_error_level( int test_case_idx, int i, int j )
|
||||
{
|
||||
(void)test_case_idx;
|
||||
CV_Assert(i == OUTPUT);
|
||||
CV_Assert(j == 0);
|
||||
int elem_depth = CV_MAT_DEPTH(cvGetElemType(test_array[i][j]));
|
||||
if( elem_depth <= CV_32F )
|
||||
{
|
||||
return ArrayTest::get_success_error_level( test_case_idx, i, j );
|
||||
}
|
||||
switch( test_case_idx )
|
||||
{
|
||||
// Usual threshold is too strict for these test cases due to the difference of fmsub and fsub
|
||||
case 399:
|
||||
case 420:
|
||||
return DBL_EPSILON * 20000;
|
||||
case 65:
|
||||
case 161:
|
||||
case 287:
|
||||
case 351:
|
||||
case 458:
|
||||
return DBL_EPSILON * 10000;
|
||||
default:
|
||||
return ArrayTest::get_success_error_level( test_case_idx, i, j );
|
||||
}
|
||||
CV_Assert(elem_depth == CV_32F || elem_depth == CV_64F);
|
||||
|
||||
element_wise_relative_error = false;
|
||||
double maxInputValue = 1000; // ArrayTest::get_minmax_bounds
|
||||
double err = 8 * maxInputValue; // result = A*B + C*D
|
||||
return (elem_depth == CV_32F ? FLT_EPSILON : DBL_EPSILON) * err;
|
||||
}
|
||||
#endif
|
||||
|
||||
void CxCore_MulSpectrumsTest::run_func()
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user