Documentation/Nightly/Developers/Tutorials/UploadTestData

From Slicer Wiki
Revision as of 15:49, 5 November 2012 by JChris.FillionR (talk | contribs) (Created page with '= Introduction = Slicer has adopted [http://slicer.kitware.com/midas3 MIDAS] to store testing and algorithm validation dataset. For this purpose, we have created a dedicated [ht…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Home < Documentation < Nightly < Developers < Tutorials < UploadTestData

Introduction

Slicer has adopted MIDAS to store testing and algorithm validation dataset. For this purpose, we have created a dedicated NA-MIC MIDAS community

In the NA-MIC community Slicer/Data folder, you will find:

  • Application
  • Modules

To organize the test data based on Slicer major release, you will find sub folders like:

  • Nightly
  • 4.2.

Note Each time a release of Slicer is done, for both the Application and Modules/<ModuleName> folders, the current Nightly is copied into an X.Y folders where X and Y corresponds to the major and minor release number of Slicer.

Test data are expected to be stored in folders likes:

  • Nightly/Testing/Baseline
  • Nightly/Testing/Input
  • X.Y/Testing/Baseline
  • X.Y/Testing/Input
  1. Input data folder: Used to store testing input data.
  2. Baseline dataset folder: Used to store the baseline images for regression tests.

How to add a new tubetk test

  1. If the input data is not already in Midas,
    1. Upload the data to the "Data" folder
    2. Download the key file (*.md5) and store it in the MIDAS_KEYS directory at the top level of tubetk source code tree
  2. Add baseline dataset for the new test ( if your test is a regression testing )
    1. 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
    2. Download the key file (*.md5) for the baseline image and store it in the MIDAS_KEYS directory.
  3. Modify cmake list files in the Testing directory to "add" unit tests to use the data from MIDAS.
    1. Use MIDAS_FETCH_ONLY macro, if you would like to fetch the dataset but not use it directly in the test
    2. 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.

  1. MIDAS_ADD_TEST
  2. MIDAS_TGZ
  3. MIDAS_FETCH ONLY
  4. MIDAS_DIRECTORY