diff --git a/testing/io/itk/CMakeLists.txt b/testing/io/itk/CMakeLists.txt index 420bb91..111d320 100644 --- a/testing/io/itk/CMakeLists.txt +++ b/testing/io/itk/CMakeLists.txt @@ -1,27 +1,27 @@ #----------------------------------------------------------------------------- # Setup the system information test. Write out some basic failsafe # information in case the test doesn't run. #----------------------------------------------------------------------------- SET(ITKIO_TEST ${EXECUTABLE_OUTPUT_PATH}/rttbITKIOTests) SET(TEMP ${RTTBTesting_BINARY_DIR}/temporary) #----------------------------------------------------------------------------- -ADD_TEST(ITKDoseAccessorGeneratorTest ${ITKIO_TEST} ITKDoseAccessorGeneratorTest "${TEST_DATA_ROOT}/Images/ITK/MatchPointLogoSmall.nrrd") +ADD_TEST(ITKDoseAccessorGeneratorTest ${ITKIO_TEST} ITKDoseAccessorGeneratorTest "${TEST_DATA_ROOT}/Images/ITK/MatchPointLogoSmall.nrrd" "${TEST_DATA_ROOT}/Images/ITK/doseAccReference.nrrd" "${TEST_DATA_ROOT}/Images/ITK/emptyImageVector.png" "${TEST_DATA_ROOT}/Images/ITK/Png2D-bw.png") ADD_TEST(ITKIOTest ${ITKIO_TEST} ITKIOTest "${TEST_DATA_ROOT}/Images/ITK/MatchPointLogoSmall.nrrd") ADD_TEST(ITKDoseAccessorConverterTest ${ITKIO_TEST} ITKDoseAccessorConverterTest "${TEST_DATA_ROOT}/Dose/DICOM/ConstantTwo.dcm" "${TEST_DATA_ROOT}/Images/ITK/MatchPointLogoSmall.nrrd" ) ADD_TEST(ITKBioModelAccessorConverterTest ${ITKIO_TEST} ITKBioModelAccessorConverterTest "${TEST_DATA_ROOT}/Dose/DICOM/ConstantTwo.dcm") ADD_TEST(ITKMaskAccessorGeneratorTest ${ITKIO_TEST} ITKMaskAccessorGeneratorTest "${TEST_DATA_ROOT}/StructureSet/ITK/Nodes.nrrd") ADD_TEST(ITKMaskAccessorConverterTest ${ITKIO_TEST} ITKMaskAccessorConverterTest "${TEST_DATA_ROOT}/StructureSet/DICOM/RS1.3.6.1.4.1.2452.6.841242143.1311652612.1170940299.4217870819.dcm" "${TEST_DATA_ROOT}/Dose/DICOM/ConstantTwo.dcm" "${TEST_DATA_ROOT}/StructureSet/ITK/Nodes.nrrd") RTTB_CREATE_TEST_MODULE(rttbITKIO DEPENDS RTTBITKIO RTTBDicomIO RTTBMasks RTTBBoostMask RTTBModels PACKAGE_DEPENDS Boost Litmus ITK DCMTK RTTBData) diff --git a/testing/io/itk/ITKDoseAccessorGeneratorTest.cpp b/testing/io/itk/ITKDoseAccessorGeneratorTest.cpp index d3523a4..a215841 100644 --- a/testing/io/itk/ITKDoseAccessorGeneratorTest.cpp +++ b/testing/io/itk/ITKDoseAccessorGeneratorTest.cpp @@ -1,95 +1,106 @@ // ----------------------------------------------------------------------- // RTToolbox - DKFZ radiotherapy quantitative evaluation library // // Copyright (c) German Cancer Research Center (DKFZ), // Software development for Integrated Diagnostics and Therapy (SIDT). // ALL RIGHTS RESERVED. // See rttbCopyright.txt or // http://www.dkfz.de/en/sidt/projects/rttb/copyright.html [^] // // This software is distributed WITHOUT ANY WARRANTY; without even // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. See the above copyright notices for more information. // //------------------------------------------------------------------------ /*! // @file // @version $Revision$ (last changed revision) // @date $Date$ (last change date) // @author $Author$ (last changed by) */ // this file defines the rttbCoreTests for the test driver // and all it expects is that you have a function called RegisterTests #include #include #include "litCheckMacros.h" #include "itkImage.h" #include "itkImageFileReader.h" +#include "itkExceptionObject.h" #include "rttbBaseType.h" #include "rttbITKImageAccessorConverter.h" #include "rttbITKImageAccessorGenerator.h" #include "rttbITKImageFileAccessorGenerator.h" #include "rttbInvalidDoseException.h" - +#include "rttbInvalidParameterException.h" namespace rttb { namespace testing { /*!@brief ITKDoseAccessorGeneratorTest - test the generators for dicom data 1) test itk file generator generateDoseAccessor() 2) test itk generator generateDoseAccessor() */ int ITKDoseAccessorGeneratorTest(int argc, char* argv[]) { PREPARE_DEFAULT_TEST_REPORTING; //ARGUMENTS: - // 1: mhd/raw file name + // 1: mhd/raw file name with short image type + // 2: mhd/raw file name with double image type - std::string RTDOSE_FILENAME; + std::string ITKSHORTFILE_FILENAME, ITKDOUBLEFILE_FILENAME, ITK2DVECTORFILE_FILENAME, ITK2DFILE_FILENAME; - if (argc > 1) + if (argc > 4) { - RTDOSE_FILENAME = argv[1]; + ITKSHORTFILE_FILENAME = argv[1]; + ITKDOUBLEFILE_FILENAME = argv[2]; + ITK2DVECTORFILE_FILENAME = argv[3]; + ITK2DFILE_FILENAME = argv[4]; } /* test ITKFileDoseAccessorGenerator generateDoseAccessor()*/ CHECK_THROW_EXPLICIT(io::itk::ITKImageFileAccessorGenerator("test.test").generateDoseAccessor(), core::InvalidDoseException); CHECK_NO_THROW(io::itk::ITKImageFileAccessorGenerator( - RTDOSE_FILENAME.c_str()).generateDoseAccessor()); + ITKSHORTFILE_FILENAME.c_str()).generateDoseAccessor()); + CHECK_NO_THROW(io::itk::ITKImageFileAccessorGenerator( + ITKDOUBLEFILE_FILENAME.c_str()).generateDoseAccessor()); + CHECK_THROW_EXPLICIT(io::itk::ITKImageFileAccessorGenerator( + ITK2DFILE_FILENAME.c_str()).generateDoseAccessor(), core::InvalidParameterException); + CHECK_THROW(io::itk::ITKImageFileAccessorGenerator( + ITK2DVECTORFILE_FILENAME.c_str()).generateDoseAccessor()); /* test ITKDoseAccessorGenerator generateDoseAccessor()*/ typedef itk::Image< DoseTypeGy, 3 > DoseImageType; typedef itk::ImageFileReader ReaderType; DoseImageType::Pointer invalidDose = DoseImageType::New(); ReaderType::Pointer reader = ReaderType::New(); CHECK_THROW_EXPLICIT(io::itk::ITKImageAccessorGenerator( invalidDose.GetPointer()).generateDoseAccessor(), core::InvalidDoseException); - reader->SetFileName(RTDOSE_FILENAME); + reader->SetFileName(ITKSHORTFILE_FILENAME); //important to update the reader (won't work without) reader->Update(); CHECK_NO_THROW(io::itk::ITKImageAccessorGenerator(reader->GetOutput()).generateDoseAccessor()); RETURN_AND_REPORT_TEST_SUCCESS; } }//testing }//rttb