TubeTK/Midas Unit Tests
From KitwarePublic
< TubeTK
Jump to navigationJump to search
Revision as of 18:38, 26 July 2013 by Jamie.snape (talk | contribs)
Introduction
Tubetk has adopted Midas to store testing and algorithm validation dataset. For this purpose, we have created a dedicated tubetk Midas community
In the TubeTK community, we have two main types of folders
- Input data folder: Where all input data for testing will be stored
- Baseline dataset folder: These are individual folders that will be used to store the baseline images for regression tests in TubeTK
How to add a new TubeTK test
- If the input data is not already in Midas,
- Upload the data to the "Data" folder
- Download the key file (*.md5) and store it in the MIDAS_KEYS directory at the top level of TubeTK source code tree
- Add baseline dataset for the new test ( if your test is a regression testing )
- Upload the dataset to the appropriate CLI or module folder. If your test is part of a new "module" or CLI, create a new a folder in Midas and then upload the dataset
- Download the key file (*.md5) for the baseline image and store it in the MIDAS_KEYS directory.
- Modify cmake list files in the Testing directory to "add" unit tests to use the data from Midas.
- Use MIDAS_FETCH_ONLY macro, if you would like to fetch the dataset but not use it directly in the test
- Use MIDAS_DIRECTORY, if you would like to specify a whole directory as an input command line argument to your test
Examples:
Test using a data store in Midas
MIDAS_ADD_TEST( ${PROJECT_NAME}MIDAS-Test4 ${PROJ_EXE} MIDAS{SyntheticTubePlusSurfaceImage_oriented.mha.md5} ${TEMP}/SyntheticTubePlusSurfaceEEDFilterResultImage_oriented.mha )
Test with a directory as input argument: DICOMSeries
MIDAS_ADD_TEST( ${PROJECT_NAME}MIDAS-Test1 ${PROJ_EXE} -i -r -a Test1 001 -w -o ${TEMP} -b DSC_ MIDAS_DIRECTORY{DICOMSeries} )
Test that demonstrates fetch only option: tubeEdgeEnhancingAnisotropicDiffusionMIDAS-Test1
MIDAS_ADD_TEST( ${PROJECT_NAME}MIDAS-Test1 ${PROJ_EXE} MIDAS{CroppedWholeLungCTScan.mhd.md5} ${TEMP}/itkAnisotropicEdgeEnhancingDiffusionImageFilterTest.mha MIDAS_FETCH_ONLY{CroppedWholeLungCTScan.raw.md5} )
When setting up test dependencies in your CMakeLists.txt files describing the tests, use something like:
set_property(TEST ${PROJECT_NAME}-TestSphereNoReg-Compare APPEND PROPERTY DEPENDS ${PROJECT_NAME}-TestSphereNoReg )
Midas macro
The following are the essential midas macros for setting up a test using data stored in midas.