diff --git a/Modules/DICOMReader/test/CMakeLists.txt b/Modules/DICOMReader/test/CMakeLists.txt index c29e224fc8..01b228e186 100644 --- a/Modules/DICOMReader/test/CMakeLists.txt +++ b/Modules/DICOMReader/test/CMakeLists.txt @@ -1,12 +1,12 @@ MITK_CREATE_MODULE_TESTS() file(GLOB_RECURSE tinyCTSlices ${MITK_DATA_DIR}/TinyCTAbdomen/1??) file(GLOB_RECURSE sloppyDICOMfiles ${MITK_DATA_DIR}/SloppyDICOMFiles/1*) #foreach(f ${sloppyDICOMfiles}) # message(" ${f}") #endforeach() mitkAddCustomModuleTest(mitkDICOMFileReaderTest_Basics mitkDICOMFileReaderTest ${tinyCTSlices}) mitkAddCustomModuleTest(mitkDICOMITKSeriesGDCMReaderBasicsTest_Basics mitkDICOMITKSeriesGDCMReaderBasicsTest ${tinyCTSlices}) -mitkAddCustomModuleTest(mitkDICOMSimpleVolumeImportTest mitkDICOMSimpleVolumeImportTest ${sloppyDICOMfiles}) +mitkAddCustomModuleTest(mitkDICOMSimpleVolumeImportTest_Basics mitkDICOMSimpleVolumeImportTest ${sloppyDICOMfiles}) diff --git a/Modules/DICOMReader/test/mitkDICOMSimpleVolumeImportTest.cpp b/Modules/DICOMReader/test/mitkDICOMSimpleVolumeImportTest.cpp index bcf2ee91fa..a0e4fdd6f6 100644 --- a/Modules/DICOMReader/test/mitkDICOMSimpleVolumeImportTest.cpp +++ b/Modules/DICOMReader/test/mitkDICOMSimpleVolumeImportTest.cpp @@ -1,108 +1,111 @@ /*=================================================================== The Medical Imaging Interaction Toolkit (MITK) Copyright (c) German Cancer Research Center, Division of Medical and Biological Informatics. All rights reserved. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE.txt or http://www.mitk.org for details. ===================================================================*/ #include "mitkDICOMFileReaderSelector.h" #include "mitkDICOMFileReaderTestHelper.h" #include #include #include #include #include #include #include "mitkImageToItk.h" #include "itkImageRegionConstIteratorWithIndex.h" #include "mitkTestingMacros.h" /** \brief Verify single block reading of SimpleDICOMvolumeImport for sloppily tagged data. */ int mitkDICOMSimpleVolumeImportTest(int argc, char* argv[]) { typedef mitk::DICOMFileReaderSelector::ReaderList ReaderList; typedef itk::Image< short, 3 > ImageType; typedef itk::ImageRegionConstIteratorWithIndex< ImageType > IteratorType; MITK_TEST_BEGIN("mitkDICOMSimpleVolumeImportTest"); us::ModuleResource resource = us::ModuleRegistry::GetModule("MitkDICOMReader")->GetResource("configurations/3D/simpleinstancenumber_soft.xml"); std::string descr; if ( resource.IsValid() ) { us::ModuleResourceStream stream(resource); stream.seekg(0, std::ios::end); descr.reserve(stream.tellg()); stream.seekg(0, std::ios::beg); descr.assign((std::istreambuf_iterator(stream)), std::istreambuf_iterator()); } mitk::DICOMFileReaderSelector::Pointer readerSelector = mitk::DICOMFileReaderSelector::New(); readerSelector->AddConfig( descr ); ReaderList readers = readerSelector->GetAllConfiguredReaders(); mitk::DICOMFileReader::Pointer simpleReader; for ( ReaderList::const_iterator it = readers.begin(); it != readers.end(); ++it ) { mitk::DICOMFileReader::Pointer reader = *it; std::string configLabel = reader->GetConfigurationLabel(); if ( configLabel == "Instance Number, non-consecutive, simple import" ) { simpleReader = reader; } } MITK_TEST_CONDITION_REQUIRED( simpleReader.IsNotNull(), "DICOMFileReaderSelector is able to create simple reader from XML"); - mitk::DICOMFileReaderTestHelper::SetTestInputFilenames( argc,argv ); - - mitk::DICOMFileReaderTestHelper::TestInputFilenames( simpleReader ); - mitk::DICOMFileReaderTestHelper::TestOutputsContainInputs( simpleReader ); - mitk::DICOMFileReaderTestHelper::TestSingleBlockIsRead( simpleReader ); + if ( argc > 1 ) + { + mitk::DICOMFileReaderTestHelper::SetTestInputFilenames( argc,argv ); - const mitk::DICOMImageBlockDescriptor block = simpleReader->GetOutput( 0 ); - const mitk::DICOMImageFrameList& outputFiles = block.GetImageFrameList(); - const mitk::Image::Pointer mitkImage = block.GetMitkImage(); + mitk::DICOMFileReaderTestHelper::TestInputFilenames( simpleReader ); + mitk::DICOMFileReaderTestHelper::TestOutputsContainInputs( simpleReader ); + mitk::DICOMFileReaderTestHelper::TestSingleBlockIsRead( simpleReader ); - ImageType::Pointer itkImage = mitk::ImageToItkImage( mitkImage ); + const mitk::DICOMImageBlockDescriptor block = simpleReader->GetOutput( 0 ); + const mitk::DICOMImageFrameList& outputFiles = block.GetImageFrameList(); + const mitk::Image::Pointer mitkImage = block.GetMitkImage(); - IteratorType it( itkImage, itkImage->GetLargestPossibleRegion() ); - bool success = true; - while ( !it.IsAtEnd() ) - { - ImageType::PixelType val = it.Get(); - ImageType::IndexType ind = it.GetIndex(); + ImageType::Pointer itkImage = mitk::ImageToItkImage( mitkImage ); - if ( !val == ind[2] ) + IteratorType it( itkImage, itkImage->GetLargestPossibleRegion() ); + bool success = true; + while ( !it.IsAtEnd() ) { - success = false; - break; + ImageType::PixelType val = it.Get(); + ImageType::IndexType ind = it.GetIndex(); + + if ( !val == ind[2] ) + { + success = false; + break; + } + + ++it; } - ++it; + MITK_TEST_CONDITION( success, "Single block image composed as expected."); } - MITK_TEST_CONDITION( success, "Single block image composed as expected."); - MITK_TEST_END(); }