diff --git a/Testing/Code/BasicFilters/CMakeLists.txt b/Testing/Code/BasicFilters/CMakeLists.txt index 830d474ffefa7d8e36a403042358f3b74d0c283c..ce2431ae98f06c004cf10e79c6ac3ba920740d2e 100644 --- a/Testing/Code/BasicFilters/CMakeLists.txt +++ b/Testing/Code/BasicFilters/CMakeLists.txt @@ -831,7 +831,9 @@ ${TEMP}/bfTvVectorImageToAmplitudeImageFilterOutput.tif otbFlexibleDistanceWithMissingValueNew) ADD_TEST(bfTuFlexibleDistanceWithMissingValue ${BASICFILTERS_TESTS8} - otbFlexibleDistanceWithMissingValue) + otbFlexibleDistanceWithMissingValue + 0.00000001 +) # ------- otb::LabelizeNeighborhoodConnectedImageFilter ---------------------------- diff --git a/Testing/Code/BasicFilters/otbFlexibleDistanceWithMissingValue.cxx b/Testing/Code/BasicFilters/otbFlexibleDistanceWithMissingValue.cxx index 512c4ebe0b95d6197193e54307eea92221598bc9..36d6a5a0ac5d55176d8a28c6e9848846598f480b 100644 --- a/Testing/Code/BasicFilters/otbFlexibleDistanceWithMissingValue.cxx +++ b/Testing/Code/BasicFilters/otbFlexibleDistanceWithMissingValue.cxx @@ -21,6 +21,7 @@ PURPOSE. See the above copyright notices for more information. #include <iostream> #include <cstdlib> +#include <iomanip> #include "itkVariableLengthVector.h" #include "otbFlexibleDistanceWithMissingValue.h" @@ -30,7 +31,7 @@ int otbFlexibleDistanceWithMissingValue( int argc, char * argv[] ) typedef itk::VariableLengthVector< double > VectorType; typedef otb::Statistics::FlexibleDistanceWithMissingValue< VectorType > DistanceType; - const double epsilon = 0.00000001; + const double epsilon(atof(argv[1])); float a = 2.0; float b = 0.5; @@ -45,7 +46,12 @@ int otbFlexibleDistanceWithMissingValue( int argc, char * argv[] ) DistanceType::Pointer dist = DistanceType::New(); double distanceValue = dist->Evaluate( x, y ); - std::cout << "Distance: " << distanceValue << std::endl; + std::cout << std::setprecision(20)<< std::endl; + std::cout << "dim,a,b : " << dim<<","<<a<<","<<b<< std::endl; + std::cout << "dim*vcl_pow(3,b) : " << dim*vcl_pow(3,b) << std::endl; + std::cout << "Distance : " << distanceValue << std::endl; + std::cout << "Epsilon : " << epsilon << std::endl; + std::cout << "-> Tests diff : " << vcl_abs(distanceValue - dim*vcl_pow(3,b)) << std::endl; if ( vcl_abs(distanceValue - dim*vcl_pow(3,b)) < epsilon ) return EXIT_SUCCESS;