Classes | Functions

mitkExtractImageFilterTest.cpp File Reference

#include "mitkExtractImageFilter.h"
#include "mitkCoreObjectFactory.h"
#include "mitkDataNodeFactory.h"
#include "mitkCompareImageSliceTestHelper.h"
#include "mitkImageTimeSelector.h"

Go to the source code of this file.

Classes

class  mitkExtractImageFilterTestClass

Functions

int mitkExtractImageFilterTest (int argc, char *argv[])
 ctest entry point

Function Documentation

int mitkExtractImageFilterTest ( int  argc,
char *  argv[] 
)

ctest entry point

Definition at line 362 of file mitkExtractImageFilterTest.cpp.

References EXIT_FAILURE, EXIT_SUCCESS, mitk::ExtractImageFilter::New(), mitk::DataNodeFactory::New(), mitkExtractImageFilterTestClass::Test2D(), mitkExtractImageFilterTestClass::Test3D(), and mitkExtractImageFilterTestClass::Test4D().

{
  // one big variable to tell if anything went wrong
    unsigned int numberFailed(0);
 
  // need one parameter (image filename)
    if(argc==0)
    {
      std::cerr<<"No file specified [FAILED]"<<std::endl;
      return EXIT_FAILURE;
    }
 
  // load the image

    mitk::Image::Pointer image = NULL;
    mitk::DataNodeFactory::Pointer factory = mitk::DataNodeFactory::New();
    try
    {
      std::cout << "Testing with parameter '" << argv[1] << "'" << std::endl;
      factory->SetFileName( argv[1] );
      factory->Update();

      if(factory->GetNumberOfOutputs()<1)
      {
        std::cerr<<"File could not be loaded [FAILED]"<<std::endl;
        return EXIT_FAILURE;
      }
      mitk::DataNode::Pointer node = factory->GetOutput( 0 );
      image = dynamic_cast<mitk::Image*>(node->GetData());
      if(image.IsNull())
      {
        std::cout<<"File not an image - test will not be applied [PASSED]"<<std::endl;
        std::cout<<"[TEST DONE]"<<std::endl;
        return EXIT_SUCCESS;
      }
    }
    catch ( itk::ExceptionObject & ex )
    {
      ++numberFailed;
      std::cerr << "Exception: " << ex << "[FAILED]" << std::endl;
      return EXIT_FAILURE;
    }

    std::cout << "  (II) Could load image." << std::endl;
    std::cout << "Testing filter instantiation" << std::endl;

  // instantiation
    mitk::ExtractImageFilter::Pointer filter = mitk::ExtractImageFilter::New();
    if (filter.IsNotNull())
    {
      std::cout << "  (II) Instantiation works." << std::endl;
    }
    else
    {
      ++numberFailed;
      std::cout << "Test failed, and it's the ugliest one!" << std::endl;
      return EXIT_FAILURE;
    }

  // some real work
    if ( image->GetDimension() == 2 )
    {
      mitkExtractImageFilterTestClass::Test2D( filter, image, numberFailed );
    }
    else if ( image->GetDimension() == 3 )
    {
      mitkExtractImageFilterTestClass::Test3D( filter, image, numberFailed );
    }
    else if ( image->GetDimension() == 4 )
    {
      mitkExtractImageFilterTestClass::Test4D( filter, image, numberFailed );
    }
  
    std::cout << "Testing filter destruction" << std::endl;

  // freeing
    filter = NULL;
      
    std::cout << "  (II) Freeing works." << std::endl;

    if (numberFailed > 0)
    {
      std::cerr << numberFailed << " tests failed." << std::endl;
      return EXIT_FAILURE;
    }
    else
    {
      std::cout << "PASSED all tests." << std::endl;
      return EXIT_SUCCESS;
    }
}
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines