From 39dde69dec939bc1a6d17d8dbe6e66f91b58a16c Mon Sep 17 00:00:00 2001 From: Thomas Feuvrier <thomas.feuvrier@c-s.fr> Date: Fri, 28 Aug 2009 09:08:43 +0200 Subject: [PATCH] BUG: Improve FlexibleDistanceWithMissingValue testing with epsilon value in testing parameters --- Testing/Code/BasicFilters/CMakeLists.txt | 4 +++- .../otbFlexibleDistanceWithMissingValue.cxx | 10 ++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Testing/Code/BasicFilters/CMakeLists.txt b/Testing/Code/BasicFilters/CMakeLists.txt index 830d474ffe..ce2431ae98 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 512c4ebe0b..36d6a5a0ac 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; -- GitLab