Difference between revisions of "2009 Winter Project Week Command Line Program Testing"

From NAMIC Wiki
Jump to: navigation, search
Line 55: Line 55:
 
AffineRegistration
 
AffineRegistration
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 114: Line 114:
 
DicomToNrrdConverter
 
DicomToNrrdConverter
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 120: Line 120:
 
DiffusionTensorEstimation
 
DiffusionTensorEstimation
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 126: Line 126:
 
DiffusionTensorMathematics
 
DiffusionTensorMathematics
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 132: Line 132:
 
DiffusionTensorTest
 
DiffusionTensorTest
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 138: Line 138:
 
DiffusionWeightedTest
 
DiffusionWeightedTest
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 144: Line 144:
 
DWIDicomLoad
 
DWIDicomLoad
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 150: Line 150:
 
ExecutionModelTour
 
ExecutionModelTour
 
|
 
|
None
+
None (Smoke)
 
|
 
|
 +
--integer 30
 +
--double 30
 +
-f 1.3,2,-14
 +
--string_vector foo,bar,foobar
 +
--enumeration Bill
 +
--boolean1
 +
--transform1 ${TEST_DATA}/ExecutionModelTourTest.mrml\#vtkMRMLLinearTransformNode1
 +
--transform2 ${TEST_DATA}/ExecutionModelTourTest.mrml\#vtkMRMLLinearTransformNode2
 +
${TEST_DATA}/MRHeadResampled.nhdr
 +
${TEST_DATA}/CTHeadAxial.nhdr
 
|-
 
|-
 
|
 
|
 
ExtractSkeleton/ExtractSkeleton
 
ExtractSkeleton/ExtractSkeleton
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 162: Line 172:
 
FreesurferSurfaceSectionExtraction
 
FreesurferSurfaceSectionExtraction
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 175: Line 185:
 
GradientAnisotropicDiffusion
 
GradientAnisotropicDiffusion
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 181: Line 191:
 
GrayscaleFillHoleImageFilter
 
GrayscaleFillHoleImageFilter
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 187: Line 197:
 
GrayscaleGrindPeakImageFilter
 
GrayscaleGrindPeakImageFilter
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 193: Line 203:
 
GrayscaleModelMaker
 
GrayscaleModelMaker
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 199: Line 209:
 
HistogramMatching
 
HistogramMatching
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 205: Line 215:
 
ImageLabelCombine
 
ImageLabelCombine
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 211: Line 221:
 
ImageReadDicomWrite
 
ImageReadDicomWrite
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 217: Line 227:
 
LabelMapSmoothing
 
LabelMapSmoothing
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 246: Line 256:
 
ModelMaker
 
ModelMaker
 
|
 
|
None
+
None (Smoke)
 
|
 
|
 +
--labels 2
 +
--modelSceneFile ${TEMP}/ModelMakerTest.mrml\#vtkMRMLModelHierarchyNode1
 +
${MRML_TEST_DATA}/helix-roi-lable2.nrrd
 
|-
 
|-
 
|
 
|
 
MultipleModelsExample
 
MultipleModelsExample
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 275: Line 288:
 
OtsuThresholdSegmentation
 
OtsuThresholdSegmentation
 
|
 
|
None
+
None (Smoke)
 
|
 
|
 +
--brightObjects
 +
--numberOfBins 128
 +
--faceConnected
 +
--minimumObjectSize 1000
 +
${TEST_DATA}/CTHeadResampled.nhdr
 +
${TEMP}/OtsuThresholdImageFilterTest.nhdr
 
|-
 
|-
 
|
 
|
 
ProbeVolumeWithModel
 
ProbeVolumeWithModel
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 287: Line 306:
 
Realign/Realign
 
Realign/Realign
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 293: Line 312:
 
ResampleVolume2
 
ResampleVolume2
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 299: Line 318:
 
ResampleVolume
 
ResampleVolume
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 305: Line 324:
 
RigidRegistration
 
RigidRegistration
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-
Line 311: Line 330:
 
Subtract
 
Subtract
 
|
 
|
None
+
None (--help)
 
|
 
|
 
|-
 
|-

Revision as of 18:47, 2 January 2009

Home < 2009 Winter Project Week Command Line Program Testing



Key Investigators

  • Bill Lorensen (His Basement)

Objective

There is NA-MIC funded infrastructure in place to regression test the command line programs found in Applications/CLI. Surprisingly, of the over 50 command line programs in the current Slicer3 distribution, only 11 have tests. This project will illustrate the importance of testing and show how easy it is to create tests for command line programs using the existing infrastructure. The project will document the process, create tests and help others to create tests.

Approach, Plan

Using the existing infrastructure, the project will create regression tests for many of the existing command line programs in Applications/CLI. The project will provide expert assistance to those who feel that creating a test is difficult. A Wiki page will provide step-by-step procedures to test the command line programs.

Progress

There is really no excuse for the lack of testing in Applications/CLI. The infrastructure that has been in place for a few years makes it almost painless to test command line programs. Better documentation and peer pressure will help improve the situation.


Working Notes

Program Test Type Command Line

Add

Regression

${TEST_DATA}/CTHeadAxial.nhdr ${TEST_DATA}/CTHeadAxial.nhdr ${TEMP}/AddTest.nhdr

AffineRegistration

None (--help)

BSplineDeformableRegistration

Smoke

--resampledmovingfilename  ${TEMP}/BSplineDeformableRegistrationTest00.nhdr
--outputtransform ${TEMP}/BSplineDeformableRegistrationTest00Transform.txt 
--default 0
--maximumDeformation 1.0
--constrain
--spatialsamples 10000
--histogrambins 32
--gridSize 5
--iterations 50
${TEST_DATA}/CTHeadAxial.nhdr 
${TEST_DATA}/CTHeadAxial.nhdr 

CheckerBoard

Regression

--checkerPattern 5,3,2
${TEST_DATA}/CTHeadAxial.nhdr
${TEST_DATA}/CTHeadAxialDoubled.nhdr
${TEMP}/CheckerBoardTest.nhdr

ConfidenceConnected

None (Regression)

--smoothingIterations 1
--timestep 0.0625
--iterations 5
--multiplier 2.5
--neighborhood 1
--labelvalue 2
--seed 9.71622,-8.1,14.2189 --seed -12.9459,-8.1,18.577
${TEST_DATA}/MRHeadResampled.nhdr
${TEMP}/ConfidenceConnectedTest.nhdr

CurvatureAnisotropicDiffusion

None (Regression)

--conductance 2
--timeStep 0.0625
--iterations 2
${TEST_DATA}/MRHeadResampled.nhdr
${TEMP}/CurvatureAnisotropicDiffusionTest.nhdr

DicomToNrrdConverter

None (--help)

DiffusionTensorEstimation

None (--help)

DiffusionTensorMathematics

None (--help)

DiffusionTensorTest

None (--help)

DiffusionWeightedTest

None (--help)

DWIDicomLoad

None (--help)

ExecutionModelTour

None (Smoke)

--integer 30
--double 30
-f 1.3,2,-14
--string_vector foo,bar,foobar
--enumeration Bill
--boolean1
--transform1 ${TEST_DATA}/ExecutionModelTourTest.mrml\#vtkMRMLLinearTransformNode1
--transform2 ${TEST_DATA}/ExecutionModelTourTest.mrml\#vtkMRMLLinearTransformNode2
${TEST_DATA}/MRHeadResampled.nhdr
${TEST_DATA}/CTHeadAxial.nhdr

ExtractSkeleton/ExtractSkeleton

None (--help)

FreesurferSurfaceSectionExtraction

None (--help)

GaussianBlurImageFilter

Regression

--sigma 2.5 ${TEST_DATA}/CTHeadAxial.nhdr ${TEMP}/GaussianBlurImageFilterTest.nhdr

GradientAnisotropicDiffusion

None (--help)

GrayscaleFillHoleImageFilter

None (--help)

GrayscaleGrindPeakImageFilter

None (--help)

GrayscaleModelMaker

None (--help)

HistogramMatching

None (--help)

ImageLabelCombine

None (--help)

ImageReadDicomWrite

None (--help)

LabelMapSmoothing

None (--help)

LinearRegistration

Smoke

--resampledmovingfilename  ${TEMP}/LinearRegistrationTest00.nhdr
--outputtransform ${TEMP}/LinearRegistrationTest00Transform.txt 
--initialtransform ${TEST_DATA}/itkAffineTransform00.txt
--spatialsamples 10000
--histogrambins 32
--iterations 50
--learningrate 0.01
--translationscale 100
${TEST_DATA}/CTHeadAxial.nhdr 
${TEST_DATA}/CTHeadAxial.nhdr 

MedianImageFilter

Regression

--neighborhood 1,2,3 ${TEST_DATA}/CTHeadAxial.nhdr ${TEMP}/MedianImageFilterTest.nhdr

ModelMaker

None (Smoke)

--labels 2
--modelSceneFile ${TEMP}/ModelMakerTest.mrml\#vtkMRMLModelHierarchyNode1
${MRML_TEST_DATA}/helix-roi-lable2.nrrd

MultipleModelsExample

None (--help)

OrientImage

Regression

--orientation Axial ${MRML_DATA}/fixed.nrrd ${TEMP}/OrientImageTestAxial.nrrd


--orientation Coronal ${MRML_DATA}/fixed.nrrd ${TEMP}/OrientImageTestCoronal.nrrd


--orientation Sagittal ${MRML_DATA}/fixed.nrrd ${TEMP}/OrientImageTestSagittal.nrrd

OtsuThresholdImageFilter

None

OtsuThresholdSegmentation

None (Smoke)

--brightObjects
--numberOfBins 128
--faceConnected
--minimumObjectSize 1000
${TEST_DATA}/CTHeadResampled.nhdr
${TEMP}/OtsuThresholdImageFilterTest.nhdr 

ProbeVolumeWithModel

None (--help)

Realign/Realign

None (--help)

ResampleVolume2

None (--help)

ResampleVolume

None (--help)

RigidRegistration

None (--help)

Subtract

None (--help)

TestGridTransformRegistration

Smoke

--gridSize 5
--outputtransform ${TEMP}/TestGridTransformRegistrationTest00Transform.txt
${TEST_DATA}/CTHeadAxial.nhdr ${TEST_DATA}/CTHeadAxial.nhdr

VotingBinaryHoleFillingImageFilter

None (Regression)

--radius 3,3,3 
--majorityThreshold 1
--background 0
--foreground 1
${TEST_DATA}/CTHeadResampledOtsuSegmented.nhdr
${TEMP}/VotingBinaryHoleFillingImageFilterTest.nhdr

ZeroCrossingBasedEdgeDetectionImageFilter.xml

None (Regression)

${TEST_DATA}/CTHeadResampled.nhdr
${TEMP}/ZeroCrossingBasedEdgeDetectionImageFilterTest.nhdr