Static Public Member Functions

mitkExtractImageFilterTestClass Class Reference

List of all members.

Static Public Member Functions

static void Test3D (mitk::ExtractImageFilter *filter, mitk::Image *image, unsigned int &numberFailed)
static void Test2D (mitk::ExtractImageFilter *filter, mitk::Image *image, unsigned int &numberFailed)
static void Test4D (mitk::ExtractImageFilter *filter, mitk::Image *image, unsigned int &numberFailed)
static void TestOtherD (mitk::ExtractImageFilter *filter, mitk::Image *image, unsigned int &numberFailed)

Detailed Description

Definition at line 33 of file mitkExtractImageFilterTest.cpp.


Member Function Documentation

static void mitkExtractImageFilterTestClass::Test2D ( mitk::ExtractImageFilter filter,
mitk::Image image,
unsigned int &  numberFailed 
) [inline, static]

Definition at line 156 of file mitkExtractImageFilterTest.cpp.

References mitk::Image::GetDimension(), mitk::ImageToImageFilter::GetInput(), mitk::ImageSource::GetOutput(), mitk::ImageToImageFilter::SetInput(), mitk::ExtractImageFilter::SetSliceDimension(), and mitk::ExtractImageFilter::SetSliceIndex().

Referenced by mitkExtractImageFilterTest().

{
  // we expect the result to be the same as the input for 2D (the only possible slice)
  assert(filter);
  assert(image);

  filter->SetInput( image );

  unsigned int initialNumberFailed = numberFailed;

  for ( unsigned int sliceDimension = 0; sliceDimension < 6; ++sliceDimension )
  {
    filter->SetSliceDimension( sliceDimension );
    filter->SetSliceIndex( 1 ); // second slice in that direction
    try
    {
      filter->Update();
    }
    catch(...)
    {
      ++numberFailed;
      std::cerr << "  (EE) Extracting produced an exception for " 
                << image->GetDimension() 
                << "-dimensional image, sliceDimension " 
                << sliceDimension 
                << " sliceIndex 1." << "(l. " << __LINE__ << ")" << std::endl;
      continue;
    }

    mitk::Image::Pointer output = filter->GetOutput();

    if (output.GetPointer() != filter->GetInput())
    {
      ++numberFailed;
      std::cerr << "  (EE) Extracting failed with wrong result for " 
                << image->GetDimension() 
                << "-dimensional image, sliceDimension " 
                << sliceDimension 
                << " sliceIndex 1." << "(l. " << __LINE__ << ")" << std::endl;
     }

  }

  if ( numberFailed == initialNumberFailed )
  {
    std::cout << "  (II) Extracting works like expected for " 
              << image->GetDimension() 
              << "-dimensional image." << "(l. " << __LINE__ << ")" << std::endl;
  }
}
static void mitkExtractImageFilterTestClass::Test3D ( mitk::ExtractImageFilter filter,
mitk::Image image,
unsigned int &  numberFailed 
) [inline, static]

Definition at line 38 of file mitkExtractImageFilterTest.cpp.

References CompareImageSliceTestHelper::CompareSlice(), mitk::Image::GetDimension(), mitk::ImageToImageFilter::GetInput(), mitk::ImageSource::GetOutput(), mitk::ImageToImageFilter::SetInput(), mitk::ExtractImageFilter::SetSliceDimension(), and mitk::ExtractImageFilter::SetSliceIndex().

Referenced by mitkExtractImageFilterTest().

{
  // we expect the result to be the same as the input for 2D (the only possible slice)
  assert(filter);
  assert(image);

  filter->SetInput( image );

  unsigned int initialNumberFailed = numberFailed;

  for ( unsigned int sliceDimension = 0; sliceDimension < 6; ++sliceDimension )
  {
    for ( unsigned int sliceIndex = 1; sliceIndex < 3; ++sliceIndex )
    {
      filter->SetSliceDimension( sliceDimension );
      filter->SetSliceIndex( sliceIndex ); // second slice in that direction
      try
      {
        filter->Update();
      }
      catch(...)
      {
        if ( sliceDimension < 3 )
        {
          ++numberFailed;
          std::cerr << "  (EE) Extracting produced an exception for " 
                    << image->GetDimension() 
                    << "-dimensional image, sliceDimension " 
                    << sliceDimension 
                    << " sliceIndex " << sliceIndex << "." << "(l. " << __LINE__ << ")" << std::endl;
          continue;
        }
        else
        {
          // this was expected and is nice to see
          continue;
        }
      }

      if ( sliceDimension >= 3 )
      {
        // we would expect to get an exception earlier
        ++numberFailed;
        std::cerr << "  (EE) Extracting produced no exception (although it should) for " 
                  << image->GetDimension() 
                  << "-dimensional image, sliceDimension " 
                  << sliceDimension 
                    << " sliceIndex " << sliceIndex << "." << "(l. " << __LINE__ << ")" << std::endl;
        continue;
      }

      mitk::Image::Pointer output = filter->GetOutput();

      if (output.GetPointer() == filter->GetInput())
      {
        ++numberFailed;
        std::cerr << "  (EE) Extracting failed with wrong result (output == input) for " 
                  << image->GetDimension() 
                  << "-dimensional image, sliceDimension " 
                  << sliceDimension 
                    << " sliceIndex " << sliceIndex << "." << "(l. " << __LINE__ << ")" << std::endl;
       }

      if (output->GetDimension() == 2)
      {
        try
        {
          if (!CompareImageSliceTestHelper::CompareSlice( image, sliceDimension , sliceIndex , output ))
          {
            ++numberFailed;
            std::cerr << "  (EE) Extracting extracted the wrong pixels or somehow messed up with a " 
                      << image->GetDimension() 
                      << "-dimensional image, sliceDimension " 
                      << sliceDimension 
                      << " sliceIndex " << sliceIndex << "." << "(l. " << __LINE__ << ")" << std::endl;
          }
          else
          {
            std::cerr << "  :-) Extracting extracted somehow correct pixels with a " 
                      << image->GetDimension() 
                      << "-dimensional image, sliceDimension " 
                      << sliceDimension 
                      << " sliceIndex " << sliceIndex << "." << "(l. " << __LINE__ << ")" << std::endl;
          }
        }
        catch(std::exception& e)
        {
            ++numberFailed;
            std::cerr << "  (EE) Extracting extracted the wrong pixels or somehow SEVERELY messed up with a " 
                      << image->GetDimension() 
                      << "-dimensional image, sliceDimension " 
                      << sliceDimension 
                      << " sliceIndex " << sliceIndex << "." << "(l. " << __LINE__ << ")" << std::endl;
            std::cerr << "Following exception was thrown: " << e.what() << std::endl;
        }
      }
      else
      {
        ++numberFailed;
        std::cerr << "  (EE) Extracting failed with wrong result (not 2D) for " 
                  << image->GetDimension() 
                  << "-dimensional image, sliceDimension " 
                  << sliceDimension 
                  << " sliceIndex " << sliceIndex << "." << "(l. " << __LINE__ << ")" << std::endl;
       }

    }
  }

  if ( numberFailed == initialNumberFailed )
  {
    std::cout << "  (II) Extracting works like expected (2D result and all pixels the same) for " 
              << image->GetDimension() 
              << "-dimensional image." << "(l. " << __LINE__ << ")" << std::endl;
  }
}
static void mitkExtractImageFilterTestClass::Test4D ( mitk::ExtractImageFilter filter,
mitk::Image image,
unsigned int &  numberFailed 
) [inline, static]

Definition at line 207 of file mitkExtractImageFilterTest.cpp.

References CompareImageSliceTestHelper::CompareSlice(), mitk::Image::GetDimension(), mitk::ImageToImageFilter::GetInput(), mitk::ImageSource::GetOutput(), mitk::BaseData::GetTimeSteps(), mitk::ImageTimeSelector::New(), mitk::ImageToImageFilter::SetInput(), mitk::ExtractImageFilter::SetSliceDimension(), mitk::ExtractImageFilter::SetSliceIndex(), and mitk::ExtractImageFilter::SetTimeStep().

Referenced by mitkExtractImageFilterTest().

{
  // we expect the result to be the same as the input for 2D (the only possible slice)
  assert(filter);
  assert(image);

  filter->SetInput( image );

  unsigned int initialNumberFailed = numberFailed;

  for ( unsigned int timeStep = 0; timeStep < image->GetTimeSteps(); ++timeStep )
  {
    mitk::ImageTimeSelector::Pointer timeSelector = mitk::ImageTimeSelector::New();
    timeSelector->SetInput( image );
    timeSelector->SetTimeNr( timeStep );
    timeSelector->UpdateLargestPossibleRegion();
    mitk::Image::Pointer image3D = timeSelector->GetOutput();

    for ( unsigned int sliceDimension = 0; sliceDimension < 6; ++sliceDimension )
    {
      unsigned int maxSliceIndex = 3;
      if ( image->GetDimension( sliceDimension ) < 3 ) maxSliceIndex = 2;
      if ( image->GetDimension( sliceDimension ) < 2 ) maxSliceIndex = 1;
      for ( unsigned int sliceIndex = 1; sliceIndex < maxSliceIndex; ++sliceIndex )
      {
        filter->SetTimeStep( timeStep );
        filter->SetSliceDimension( sliceDimension );
        filter->SetSliceIndex( sliceIndex ); // second slice in that direction
        try
        {
          filter->Update();
        }
        catch(...)
        {
          if ( sliceDimension < 3 )
          {
            ++numberFailed;
            std::cerr << "  (EE) Extracting produced an exception for " 
                      << image->GetDimension() 
                      << "-dimensional image, sliceDimension " 
                      << sliceDimension 
                      << " sliceIndex " << sliceIndex << "." << "(l. " << __LINE__ << ")" << std::endl;
            continue;
          }
          else
          {
            // this was expected and is nice to see
            continue;
          }
        }

        if ( sliceDimension >= 3 )
        {
          // we would expect to get an exception earlier
          ++numberFailed;
          std::cerr << "  (EE) Extracting produced no exception (although it should) for " 
                    << image->GetDimension() 
                    << "-dimensional image, sliceDimension " 
                    << sliceDimension 
                      << " sliceIndex " << sliceIndex << "." << "(l. " << __LINE__ << ")" << std::endl;
          continue;
        }

        mitk::Image::Pointer output = filter->GetOutput();

        if (output.GetPointer() == filter->GetInput())
        {
          ++numberFailed;
          std::cerr << "  (EE) Extracting failed with wrong result (output == input) for " 
                    << image->GetDimension() 
                    << "-dimensional image, sliceDimension " 
                    << sliceDimension 
                      << " sliceIndex " << sliceIndex << "." << "(l. " << __LINE__ << ")" << std::endl;
         }

        if (output->GetDimension() == 2)
        {
          if (!CompareImageSliceTestHelper::CompareSlice( image3D, sliceDimension , sliceIndex , output ))
          {
            ++numberFailed;
            std::cerr << "  (EE) Extracting extracted the wrong pixels or somehow messed up with a " 
                      << image->GetDimension() 
                      << "-dimensional image, time step " 
                      << timeStep 
                      << "sliceDimension " 
                      << sliceDimension 
                      << " sliceIndex " << sliceIndex << "." << "(l. " << __LINE__ << ")" << std::endl;
          }
        }
        else
        {
          ++numberFailed;
          std::cerr << "  (EE) Extracting failed with wrong result (not 2D) for " 
                    << image->GetDimension() 
                    << "-dimensional image, sliceDimension " 
                    << sliceDimension 
                    << " sliceIndex " << sliceIndex << "." << "(l. " << __LINE__ << ")" << std::endl;
         }

      }
    }

    if ( numberFailed == initialNumberFailed )
    {
      std::cout << "  (II) Extracting works like expected (2D result and all pixels the same) for " 
                << image->GetDimension() 
                << "-dimensional image." << "(l. " << __LINE__ << ")" << std::endl;
    }
  }
}
static void mitkExtractImageFilterTestClass::TestOtherD ( mitk::ExtractImageFilter filter,
mitk::Image image,
unsigned int &  numberFailed 
) [inline, static]

Definition at line 319 of file mitkExtractImageFilterTest.cpp.

References mitk::Image::GetDimension(), mitk::ImageToImageFilter::SetInput(), mitk::ExtractImageFilter::SetSliceDimension(), and mitk::ExtractImageFilter::SetSliceIndex().

{
  // we expect the result to be empty for images other than 2D or 3D
  assert(filter);
  assert(image);

  filter->SetInput( image );

  unsigned int initialNumberFailed = numberFailed;

  for ( unsigned int sliceDimension = 0; sliceDimension < 6; ++sliceDimension )
  {
    filter->SetSliceDimension( sliceDimension );
    filter->SetSliceIndex( 1 ); // second slice in that direction
    try
    {
      filter->Update();
    }
    catch(...)
    {
     continue;
    }

    // no exception
    ++numberFailed;
    std::cerr << "  (EE) Extracting produced no exception for " 
              << image->GetDimension() 
              << "-dimensional image, sliceDimension " 
              << sliceDimension 
              << " sliceIndex 1." << "(l. " << __LINE__ << ")" << std::endl;
 }

  if ( numberFailed == initialNumberFailed )
  {
    std::cout << "  (II) Extracting works like expected for " 
              << image->GetDimension() 
              << "-dimensional image." << "(l. " << __LINE__ << ")" << std::endl;
  }
}

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines