Exemple #1
0
int mitkToFImageDownsamplingFilterTest(int argc , char* argv[])
{
  //Defining constants
  const int XDIM = 127; 
  const int YDIM = 96;
  const int ZDIM = 19;

  // always start with this

  MITK_TEST_BEGIN("mitkToFImageDownSamplingFilterFilter");

  // create a new instance of filter and new image
  mitk::ToFImageDownsamplingFilter::Pointer testDownSampler = mitk::ToFImageDownsamplingFilter::New();

  // make sure new filter ins't null 
  MITK_TEST_CONDITION_REQUIRED(testDownSampler.IsNotNull(), "Testing instantiation!");


  // Load ToF image
  MITK_INFO<<"Loading test image file: " << argv[1] << "\n"; // update with proper path and figure out how iti s passed from the test driver
  mitk::PicFileReader::Pointer reader = mitk::PicFileReader::New();

  std::string filename = MITK_TOF_DATA_DIR;
  filename.append("/"); 
  filename.append(argv[1]);
  reader->SetFileName(filename);
  reader->Update();
  mitk::Image::Pointer image = reader->GetOutput();

  MITK_TEST_CONDITION_REQUIRED(image.IsNotNull(), "Testing image reading");
  MITK_INFO << "Original image dimensions " << image->GetDimension (0)<<" " << image->GetDimension(1)<< " " << image->GetDimension(2) ;

  //call filter
  testDownSampler->SetInput(image); 
  testDownSampler->SetResampledX(XDIM);
  testDownSampler->SetResampledY(YDIM);
  testDownSampler->SetResampledZ(ZDIM);

  if(image->GetDimension(0) >= XDIM && image->GetDimension(1)>=YDIM && image->GetDimension(2)>=ZDIM &&
    (image->GetDimension()==2 || image->GetDimension()==3))
  {
    testDownSampler->Update(); 
    mitk::Image::Pointer resultImage = testDownSampler->GetOutput(); 
    MITK_TEST_CONDITION_REQUIRED(resultImage->GetDimension(0) == XDIM && resultImage->GetDimension(1)==YDIM &&resultImage->GetDimension(2)==ZDIM, "Test result image dimensions with 3D image");
    MITK_INFO << "new image dimensions " << resultImage->GetDimension (0)<<" " << resultImage->GetDimension(1)<<" " << resultImage->GetDimension(2) ;
  }
  else
  {
    MITK_TEST_FOR_EXCEPTION_BEGIN(itk::ExceptionObject);
    testDownSampler->Update(); 
    MITK_TEST_FOR_EXCEPTION_END(itk::ExceptionObject);
  }



  // Mean for debugging purposes if you want to write the resutling image to a file
  //mitk::PicFileWriter::Pointer writer = mitk::PicFileWriter::New();
  //writer->SetInputImage( resultImage);
  //writer->SetFileName( "tofResult1.pic" );

  //writer->Update(); 


  // always end with this!
  MITK_TEST_END();
}
/**Documentation
 *  test for the class "NavigationDataVisualizationByBaseDataTransformFilter".
 */
int mitkCameraVisualizationTest(int /* argc */, char* /*argv*/[])
{
  MITK_TEST_BEGIN("CameraVisualization")

  // let's create an object of our class
  mitk::CameraVisualization::Pointer myFilter = mitk::CameraVisualization::New();

  // first test: did this work?
  // using MITK_TEST_CONDITION_REQUIRED makes the test stop after failure, since
  // it makes no sense to continue without an object.
  MITK_TEST_CONDITION_REQUIRED(myFilter.IsNotNull(),"Testing instantiation");

  /* create helper objects: navigation data with position as origin, zero quaternion, zero error and data valid */
  srand(time(NULL));
  // generate a random position for the navigation data
  mitk::NavigationData::PositionType position;
  position[0] = rand()%1000;
  position[1] = rand()%1000;
  position[2] = rand()%1000;

  // generate a random orientation for the navigation data
  mitk::NavigationData::OrientationType orientation;
  orientation[0] = (rand()%1000)/1000.0;
  orientation[1] = (rand()%1000)/1000.0;
  orientation[2] = (rand()%1000)/1000.0;
  orientation[3] = (rand()%1000)/1000.0;

  // generate a random error for the navigation data
  mitk::ScalarType error = rand()%10;

  // data valid flag of navigation data
  int val = rand()%2;
  bool valid(0); // this was uninitialized. how was this test ever meant to work??
  if (val==0)
  {
    valid=false;
  }
  else if (val==1)
  {
    valid=true;
  }

  // set parameters of navigation data
  mitk::NavigationData::Pointer nd1 = mitk::NavigationData::New();
  nd1->SetPosition(position);
  nd1->SetOrientation(orientation);
  nd1->SetPositionAccuracy(error);
  nd1->SetDataValid(valid);

  // create renderer
  vtkRenderWindow* renderWindow = vtkRenderWindow::New();
  mitk::VtkPropRenderer::Pointer renderer = mitk::VtkPropRenderer::New( "TestRenderer",renderWindow, mitk::RenderingManager::GetInstance() );

  myFilter->SetInput(nd1);
  MITK_TEST_CONDITION(myFilter->GetInput() == nd1, "Testing Set-/GetInput() input 1");

  // test for exception if renderer not set
  MITK_TEST_FOR_EXCEPTION_BEGIN(itk::ExceptionObject)
    myFilter->Update();
  MITK_TEST_FOR_EXCEPTION_END(itk::ExceptionObject)

  // set renderer
  myFilter->SetRenderer(renderer);

  //Update filter
  myFilter->Update();

  //Delete renderWindow correctly
  renderWindow->Delete();

  // always end with this!
  MITK_TEST_END();

}