Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Speed up ci compilation with wrapping on follow up #706

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMake/ITKModuleDoxygen.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ macro( itk_module_doxygen _name )
endif()

if(NOT ${_name}_THIRD_PARTY AND EXISTS ${${_name}_SOURCE_DIR}/include)
if(PYTHON_EXECUTABLE AND BUILD_TESTING)
if(PYTHON_EXECUTABLE AND BUILD_TESTING AND NOT DISABLE_MODULE_TESTS)
itk_add_test(NAME ${_name}InDoxygenGroup COMMAND ${PYTHON_EXECUTABLE} "${ITK_CMAKE_DIR}/../Utilities/Doxygen/mcdoc.py" check ${_name} ${${_name}_SOURCE_DIR}/include)
itk_memcheck_ignore(${_name}InDoxygenGroup)
endif()
Expand Down
2 changes: 1 addition & 1 deletion CMake/ITKModuleEnablement.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ foreach(f ${meta})
get_filename_component(${itk-module}_BASE ${f} PATH)
set(${itk-module}_SOURCE_DIR ${ITK_SOURCE_DIR}/${${itk-module}_BASE})
set(${itk-module}_BINARY_DIR ${ITK_BINARY_DIR}/${${itk-module}_BASE})
if(BUILD_TESTING AND EXISTS ${${itk-module}_SOURCE_DIR}/test)
if(BUILD_TESTING AND NOT DISABLE_MODULE_TESTS AND EXISTS ${${itk-module}_SOURCE_DIR}/test)
list(APPEND ITK_MODULES_ALL ${itk-module-test})
set(${itk-module-test}_SOURCE_DIR ${${itk-module}_SOURCE_DIR}/test)
set(${itk-module-test}_BINARY_DIR ${${itk-module}_BINARY_DIR}/test)
Expand Down
20 changes: 11 additions & 9 deletions CMake/ITKModuleKWStyleTest.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,16 @@ macro(itk_module_kwstyle_test _name)
if (NOT KWSTYLE_EXECUTABLE)
message(WARNING "KWSTYLE_EXECUTABLE is not set!")
else()
itk_add_test(NAME ${itk-module}KWStyleTest
COMMAND ${KWSTYLE_EXECUTABLE}
-xml ${_kwstyle_itk_configuration_file}
-v
-o ${_kwstyle_itk_overwrite_file}
-D ${_kwstyle_itk_module_files_list_file}
-gcc
WORKING_DIRECTORY ${ITK_CMAKE_DIR}/..
)
if(NOT DISABLE_MODULE_TESTS)
itk_add_test(NAME ${itk-module}KWStyleTest
COMMAND ${KWSTYLE_EXECUTABLE}
-xml ${_kwstyle_itk_configuration_file}
-v
-o ${_kwstyle_itk_overwrite_file}
-D ${_kwstyle_itk_module_files_list_file}
-gcc
WORKING_DIRECTORY ${ITK_CMAKE_DIR}/..
)
endif()
endif()
endmacro()
84 changes: 34 additions & 50 deletions CMake/ITKModuleTest.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,9 @@
# ADDITIONAL_SRC (optional) - additional source files, which don't contain tests

macro(CreateTestDriver KIT KIT_LIBS KitTests)
if(NOT ITK_DISABLE_ALL_TESTS_BUT_OVERRIDEN)
set(ADDITIONAL_SRC ${ARGN})
if(EMSCRIPTEN)
set(emscripten_before "
set(ADDITIONAL_SRC ${ARGN})
if(EMSCRIPTEN)
set(emscripten_before "
EM_ASM(
var cmake_source_dir = '${CMAKE_SOURCE_DIR}'.split('/');
// This is intentionally global so it can be unmounted at the end.
Expand Down Expand Up @@ -44,34 +43,32 @@ EM_ASM(
}
);
")
set(emscripten_after "
set(emscripten_after "
EM_ASM(
FS.unmount(source_mount_dir);
if(source_mount_dir != binary_mount_dir) {
FS.unmount(binary_mount_dir);
}
);
")
endif()
set(CMAKE_TESTDRIVER_BEFORE_TESTMAIN "${emscripten_before}#include \"itkTestDriverBeforeTest.inc\"")
set(CMAKE_TESTDRIVER_AFTER_TESTMAIN "#include \"itkTestDriverAfterTest.inc\"${emscripten_after}")
create_test_sourcelist(Tests ${KIT}TestDriver.cxx
${KitTests}
EXTRA_INCLUDE itkTestDriverIncludeRequiredIOFactories.h
FUNCTION ProcessArgumentsAndRegisterRequiredFactories
)
add_executable(${KIT}TestDriver ${KIT}TestDriver.cxx ${Tests} ${ADDITIONAL_SRC})
target_link_libraries(${KIT}TestDriver LINK_PUBLIC ${KIT_LIBS} ${ITKTestKernel_LIBRARIES})
itk_module_target_label(${KIT}TestDriver)
endif()
set(CMAKE_TESTDRIVER_BEFORE_TESTMAIN "${emscripten_before}#include \"itkTestDriverBeforeTest.inc\"")
set(CMAKE_TESTDRIVER_AFTER_TESTMAIN "#include \"itkTestDriverAfterTest.inc\"${emscripten_after}")
create_test_sourcelist(Tests ${KIT}TestDriver.cxx
${KitTests}
EXTRA_INCLUDE itkTestDriverIncludeRequiredIOFactories.h
FUNCTION ProcessArgumentsAndRegisterRequiredFactories
)
add_executable(${KIT}TestDriver ${KIT}TestDriver.cxx ${Tests} ${ADDITIONAL_SRC})
target_link_libraries(${KIT}TestDriver LINK_PUBLIC ${KIT_LIBS} ${ITKTestKernel_LIBRARIES})
itk_module_target_label(${KIT}TestDriver)
endmacro()


macro(CreateTestDriver_SupportBuildInIOFactories KIT KIT_LIBS KitTests)
if(NOT ITK_DISABLE_ALL_TESTS_BUT_OVERRIDEN)
set(ADDITIONAL_SRC ${ARGN} )
if(EMSCRIPTEN)
set(emscripten_before "
set(ADDITIONAL_SRC ${ARGN} )
if(EMSCRIPTEN)
set(emscripten_before "
EM_ASM(
var cmake_source_dir = '${CMAKE_SOURCE_DIR}'.split('/');
// This is intentionally global so it can be unmounted at the end.
Expand Down Expand Up @@ -100,46 +97,34 @@ EM_ASM(
}
);
")
set(emscripten_after "
set(emscripten_after "
EM_ASM(
FS.unmount(source_mount_dir);
if(source_mount_dir != binary_mount_dir) {
FS.unmount(binary_mount_dir);
}
);
")
endif()
set(CMAKE_TESTDRIVER_BEFORE_TESTMAIN "${emscripten_before}#include \"itkTestDriverBeforeTest.inc\"")
set(CMAKE_TESTDRIVER_AFTER_TESTMAIN "#include \"itkTestDriverAfterTest.inc\"${emscripten_after}")
create_test_sourcelist(Tests ${KIT}TestDriver.cxx
${KitTests}
EXTRA_INCLUDE itkTestDriverIncludeBuiltInIOFactories.h
FUNCTION ProcessArgumentsAndRegisterBuiltInFactories
)
add_executable(${KIT}TestDriver ${KIT}TestDriver.cxx ${Tests} ${ADDITIONAL_SRC})
target_link_libraries(${KIT}TestDriver LINK_PUBLIC ${KIT_LIBS} ${ITKTestKernel_LIBRARIES})
itk_module_target_label(${KIT}TestDriver)
endif()
set(CMAKE_TESTDRIVER_BEFORE_TESTMAIN "${emscripten_before}#include \"itkTestDriverBeforeTest.inc\"")
set(CMAKE_TESTDRIVER_AFTER_TESTMAIN "#include \"itkTestDriverAfterTest.inc\"${emscripten_after}")
create_test_sourcelist(Tests ${KIT}TestDriver.cxx
${KitTests}
EXTRA_INCLUDE itkTestDriverIncludeBuiltInIOFactories.h
FUNCTION ProcessArgumentsAndRegisterBuiltInFactories
)
add_executable(${KIT}TestDriver ${KIT}TestDriver.cxx ${Tests} ${ADDITIONAL_SRC})
target_link_libraries(${KIT}TestDriver LINK_PUBLIC ${KIT_LIBS} ${ITKTestKernel_LIBRARIES})
itk_module_target_label(${KIT}TestDriver)
endmacro()

#-----------------------------------------------------------------------------
# ITK wrapper for add_test that automatically sets the test's LABELS property
# to the value of its containing module.
# OVERRIDE_DISABLE option allows to force the test to be run even if
# ITK_DISABLE_ALL_TESTS_BUT_OVERRIDEN is ON.
#
function(itk_add_test)

set(options OVERRIDE_DISABLE)
set(oneValueArgs )
set(multiValueArgs )
cmake_parse_arguments(ITK_ADD_TEST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})

if(ITK_DISABLE_ALL_TESTS_BUT_OVERRIDEN AND NOT OVERRIDE_DISABLE)
return()
endif()

# Add tests with data in the ITKData group.
ExternalData_add_test(ITKData ${ITK_ADD_TEST_UNPARSED_ARGUMENTS})
ExternalData_add_test(ITKData ${ARGN})

if("NAME" STREQUAL "${ARGV0}")
set(_iat_testname ${ARGV1})
Expand All @@ -149,7 +134,7 @@ function(itk_add_test)

if(itk-module)
set(_label ${itk-module})
if(TARGET ${itk-module}-all AND "${ITK_ADD_TEST_UNPARSED_ARGUMENTS}" MATCHES "DATA{")
if(TARGET ${itk-module}-all AND "${ARGN}" MATCHES "DATA{")
add_dependencies(${itk-module}-all ITKData)
endif()
else()
Expand Down Expand Up @@ -179,7 +164,7 @@ endfunction()
function(itk_python_add_test)
# No-op if wrapping is not available
if(NOT ITK_WRAP_PYTHON)
return()
message(FATAL_ERROR "`itk_python_add_test` should never be called if `ITK_WRAP_PYTHON` if OFF")
endif()

set(options )
Expand Down Expand Up @@ -214,9 +199,8 @@ function(itk_python_add_test)
${command}
${PYTHON_ADD_TEST_COMMAND}
WORKING_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}"
OVERRIDE_DISABLE
)
set_property(TEST ${name} APPEND PROPERTY LABELS Python)
set_property(TEST ${PYTHON_ADD_TEST_NAME} APPEND PROPERTY LABELS Python)
endfunction()

#-----------------------------------------------------------------------------
Expand All @@ -237,7 +221,7 @@ endfunction()
function(itk_python_expression_add_test)
# No-op if wrapping is not available
if(NOT ITK_WRAP_PYTHON)
return()
message(FATAL_ERROR "`itk_python_add_test` should never be called if `ITK_WRAP_PYTHON` if OFF")
endif()

set(options )
Expand Down
7 changes: 4 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -418,10 +418,11 @@ option(ITK_USE_FLOAT_SPACE_PRECISION "Use single precision for origin/spacing/di
mark_as_advanced(ITK_USE_FLOAT_SPACE_PRECISION)

# This flag allows to not build itkTestDrivers while still configuring all the tests and disable all
# tests that do not explicitely override this function (such as the Python tests).
# tests that are implemented in the `test` folder in each ITK module. It does not disable tests
# that are implemented in the wrapping folder.
# This is used by dashboards to speed up compilation and testing on certain platforms.
option(ITK_DISABLE_ALL_TESTS_BUT_OVERRIDEN "Disable all tests except the ones that override this option" OFF)
mark_as_advanced(ITK_DISABLE_ALL_TESTS_BUT_OVERRIDEN)
option(DISABLE_MODULE_TESTS "Disable all ITK module tests in `test` folder" OFF)
mark_as_advanced(DISABLE_MODULE_TESTS)

#----------------------------------------------------------------------
# Make sure remote modules are downloaded before sorting out the module
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
itk_module_test()

if(ITK_WRAP_PYTHON)
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import numpy"
RESULT_VARIABLE _have_numpy_return_code
Expand Down
9 changes: 0 additions & 9 deletions Modules/Core/Common/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -615,15 +615,6 @@ if(ITK_BUILD_SHARED_LIBS AND ITK_DYNAMIC_LOADING)
$<TARGET_FILE:ClientTestLibraryB>)
endif()

# This test doesn't compile. It exercises the bug I ran into if you multiply 2 vector images; if you
# try to compile it the compile fails.
# itk_add_test(NAME itkVectorMultiplyTest COMMAND ITKCommon2TestDriver itkVectorMultiplyTest)

itk_python_add_test(NAME itkMetaDataDictionaryPythonTest COMMAND itkMetaDataDictionaryTest.py)
itk_python_add_test(NAME itkDirectoryPythonTest COMMAND itkDirectoryTest.py)
itk_python_expression_add_test(NAME itkObjectPythonTest EXPRESSION "itkObject = itk.Object.New()")
itk_python_add_test(NAME itkIndexOffsetPythonTest COMMAND itkIndexOffsetTest.py)

set(ITKCommonGTests
itkAggregateTypesGTest.cxx
itkBuildInformationGTest.cxx
Expand Down
8 changes: 8 additions & 0 deletions Modules/Core/Common/wrapping/test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# This test doesn't compile. It exercises the bug I ran into if you multiply 2 vector images; if you
# try to compile it the compile fails.
# itk_add_test(NAME itkVectorMultiplyTest COMMAND ITKCommon2TestDriver itkVectorMultiplyTest)

itk_python_add_test(NAME itkMetaDataDictionaryPythonTest COMMAND itkMetaDataDictionaryTest.py)
itk_python_add_test(NAME itkDirectoryPythonTest COMMAND itkDirectoryTest.py)
itk_python_expression_add_test(NAME itkObjectPythonTest EXPRESSION "itkObject = itk.Object.New()")
itk_python_add_test(NAME itkIndexOffsetPythonTest COMMAND itkIndexOffsetTest.py)
3 changes: 0 additions & 3 deletions Modules/Core/ImageFunction/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,3 @@ itk_add_test(NAME itkLabelImageGaussianInterpolateImageFunctionTest

itk_add_test(NAME itkVectorLinearInterpolateNearestNeighborExtrapolateImageFunctionTest
COMMAND ITKImageFunctionTestDriver itkVectorLinearInterpolateNearestNeighborExtrapolateImageFunctionTest)

itk_python_expression_add_test(NAME itkExtrapolateImageFunctionPythonTest
EXPRESSION "extrapolate = itk.ExtrapolateImageFunction.New()")
2 changes: 2 additions & 0 deletions Modules/Core/ImageFunction/wrapping/test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
itk_python_expression_add_test(NAME itkExtrapolateImageFunctionPythonTest
EXPRESSION "extrapolate = itk.ExtrapolateImageFunction.New()")
23 changes: 0 additions & 23 deletions Modules/Core/Mesh/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -203,26 +203,3 @@ set_tests_properties(itkVTKPolyDataReaderTest2
itkVTKPolyDataReaderBadTest16
itkVTKPolyDataReaderBadTest17
PROPERTIES WILL_FAIL true)

list(FIND ITK_WRAP_IMAGE_DIMS 3 wrap_3_index)
if(wrap_3_index GREATER -1)
itk_python_expression_add_test(NAME itkTriangleMeshToBinaryImageFilterPythonTest
EXPRESSION "instance = itk.TriangleMeshToBinaryImageFilter.New()")
endif()

itk_python_expression_add_test(NAME itkBYUMeshIOPythonTest
EXPRESSION "instance = itk.BYUMeshIO.New()")
itk_python_expression_add_test(NAME itkFreeSurferAsciiMeshIOPythonTest
EXPRESSION "instance = itk.FreeSurferAsciiMeshIO.New()")
itk_python_expression_add_test(NAME itkFreeSurferBinaryMeshIOPythonTest
EXPRESSION "instance = itk.FreeSurferBinaryMeshIO.New()")
itk_python_expression_add_test(NAME itkMeshFileReaderPythonTest
EXPRESSION "instance = itk.MeshFileReader.New()")
itk_python_expression_add_test(NAME itkMeshFileWriterPythonTest
EXPRESSION "instance = itk.MeshFileWriter.New()")
itk_python_expression_add_test(NAME itkOBJMeshIOPythonTest
EXPRESSION "instance = itk.OBJMeshIO.New()")
itk_python_expression_add_test(NAME itkOFFMeshIOPythonTest
EXPRESSION "instance = itk.OFFMeshIO.New()")
itk_python_expression_add_test(NAME itkVTKPolyDataMeshIOPythonTest
EXPRESSION "instance = itk.VTKPolyDataMeshIO.New()")
22 changes: 22 additions & 0 deletions Modules/Core/Mesh/wrapping/test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
list(FIND ITK_WRAP_IMAGE_DIMS 3 wrap_3_index)
if(wrap_3_index GREATER -1)
itk_python_expression_add_test(NAME itkTriangleMeshToBinaryImageFilterPythonTest
EXPRESSION "instance = itk.TriangleMeshToBinaryImageFilter.New()")
endif()

itk_python_expression_add_test(NAME itkBYUMeshIOPythonTest
EXPRESSION "instance = itk.BYUMeshIO.New()")
itk_python_expression_add_test(NAME itkFreeSurferAsciiMeshIOPythonTest
EXPRESSION "instance = itk.FreeSurferAsciiMeshIO.New()")
itk_python_expression_add_test(NAME itkFreeSurferBinaryMeshIOPythonTest
EXPRESSION "instance = itk.FreeSurferBinaryMeshIO.New()")
itk_python_expression_add_test(NAME itkMeshFileReaderPythonTest
EXPRESSION "instance = itk.MeshFileReader.New()")
itk_python_expression_add_test(NAME itkMeshFileWriterPythonTest
EXPRESSION "instance = itk.MeshFileWriter.New()")
itk_python_expression_add_test(NAME itkOBJMeshIOPythonTest
EXPRESSION "instance = itk.OBJMeshIO.New()")
itk_python_expression_add_test(NAME itkOFFMeshIOPythonTest
EXPRESSION "instance = itk.OFFMeshIO.New()")
itk_python_expression_add_test(NAME itkVTKPolyDataMeshIOPythonTest
EXPRESSION "instance = itk.VTKPolyDataMeshIO.New()")
8 changes: 0 additions & 8 deletions Modules/Core/SpatialObjects/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -86,14 +86,6 @@ itk_add_test(NAME itkNewMetaObjectTypeTest
COMMAND ITKSpatialObjectsTestDriver itkNewMetaObjectTypeTest
${ITK_TEST_OUTPUT_DIR}/NewMetaObjectType.meta)

list(FIND ITK_WRAP_IMAGE_DIMS 2 wrap_2_index)
if(ITK_WRAP_float AND wrap_2_index GREATER -1)
itk_python_add_test(NAME PythonSpatialObjectTest
TEST_DRIVER_ARGS
COMMAND SpatialObjectTest.py
)
endif()

set(ITKSpatialObjectsGTests
itkImageMaskSpatialObjectGTest.cxx
)
Expand Down
7 changes: 7 additions & 0 deletions Modules/Core/SpatialObjects/wrapping/test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
list(FIND ITK_WRAP_IMAGE_DIMS 2 wrap_2_index)
if(ITK_WRAP_float AND wrap_2_index GREATER -1)
itk_python_add_test(NAME PythonSpatialObjectTest
TEST_DRIVER_ARGS
COMMAND SpatialObjectTest.py
)
endif()
25 changes: 0 additions & 25 deletions Modules/Filtering/AnisotropicSmoothing/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,28 +22,3 @@ itk_add_test(NAME itkGradientAnisotropicDiffusionImageFilterTest2
--compare DATA{${ITK_DATA_ROOT}/Baseline/BasicFilters/GradientAnisotropicDiffusionImageFilterTest2.png}
${ITK_TEST_OUTPUT_DIR}/GradientAnisotropicDiffusionImageFilterTest2.png
itkGradientAnisotropicDiffusionImageFilterTest2 DATA{${ITK_DATA_ROOT}/Input/cake_easy.png} ${ITK_TEST_OUTPUT_DIR}/GradientAnisotropicDiffusionImageFilterTest2.png)

list(FIND ITK_WRAP_IMAGE_DIMS 2 wrap_2_index)
if(ITK_WRAP_float AND wrap_2_index GREATER -1)
itk_python_add_test(NAME PythonCurvatureAnisotropicDiffusionImageFilterTest
COMMAND CurvatureAnisotropicDiffusionImageFilterTest.py
DATA{${ITK_DATA_ROOT}/Input/cthead1.png}
${ITK_TEST_OUTPUT_DIR}/CurvatureAnisotropicDiffusionImageFilterTest.png
5 0.125 3
)
itk_python_add_test(NAME PythonSmoothingRecursiveGaussianImageFilterTest
COMMAND SmoothingRecursiveGaussianImageFilterTest.py
DATA{${ITK_DATA_ROOT}/Input/cthead1.png}
${ITK_TEST_OUTPUT_DIR}/SmoothingRecursiveGaussianImageFilterTest.png
3
)
itk_python_add_test(NAME PythonGradientAnisotropicDiffusionImageFilterTest
TEST_DRIVER_ARGS
--compare ${ITK_TEST_OUTPUT_DIR}/PythonGradientAnisotropicDiffusionImageFilterTest.png
DATA{Baseline/PythonGradientAnisotropicDiffusionImageFilterTest.png}
COMMAND GradientAnisotropicDiffusionImageFilterTest.py
DATA{Input/BrainProtonDensitySlice.png}
${ITK_TEST_OUTPUT_DIR}/PythonGradientAnisotropicDiffusionImageFilterTest.png
5 0.125 1.0
)
endif()
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
set(test_input_dir ${itk-module_SOURCE_DIR}/test/Input)

list(FIND ITK_WRAP_IMAGE_DIMS 2 wrap_2_index)
if(ITK_WRAP_float AND wrap_2_index GREATER -1)
itk_python_add_test(NAME PythonCurvatureAnisotropicDiffusionImageFilterTest
COMMAND CurvatureAnisotropicDiffusionImageFilterTest.py
DATA{${ITK_DATA_ROOT}/Input/cthead1.png}
${ITK_TEST_OUTPUT_DIR}/CurvatureAnisotropicDiffusionImageFilterTest.png
5 0.125 3
)
itk_python_add_test(NAME PythonSmoothingRecursiveGaussianImageFilterTest
COMMAND SmoothingRecursiveGaussianImageFilterTest.py
DATA{${ITK_DATA_ROOT}/Input/cthead1.png}
${ITK_TEST_OUTPUT_DIR}/SmoothingRecursiveGaussianImageFilterTest.png
3
)
itk_python_add_test(NAME PythonGradientAnisotropicDiffusionImageFilterTest
TEST_DRIVER_ARGS
--compare ${ITK_TEST_OUTPUT_DIR}/PythonGradientAnisotropicDiffusionImageFilterTest.png
DATA{Baseline/PythonGradientAnisotropicDiffusionImageFilterTest.png}
COMMAND GradientAnisotropicDiffusionImageFilterTest.py
DATA{${test_input_dir}/BrainProtonDensitySlice.png}
${ITK_TEST_OUTPUT_DIR}/PythonGradientAnisotropicDiffusionImageFilterTest.png
5 0.125 1.0
)
endif()
Loading