#include "mitkPointSet.h"#include "mitkPointSetWriter.h"#include "mitkTestingMacros.h"#include <iostream>#include <time.h>Go to the source code of this file.
Functions | |
| int | mitkPointSetWriterTest (int, char *[]) |
| int mitkPointSetWriterTest | ( | int | , |
| char * | [] | ||
| ) |
Test for the class "mitkPointSetFileWriter".
argc and argv are the command line parameters which were passed to the ADD_TEST command in the CMakeLists.txt file. For the automatic tests, argv is either empty for the simple tests or contains the filename of a test image for the image tests (see CMakeLists.txt).
Definition at line 34 of file mitkPointSetWriterTest.cpp.
References EXIT_FAILURE, MITK_TEST_BEGIN, MITK_TEST_CONDITION_REQUIRED, MITK_TEST_END, MITK_TEST_FOR_EXCEPTION_BEGIN, MITK_TEST_FOR_EXCEPTION_END, MITK_TEST_OUTPUT, mitk::PointSet::New(), and mitk::PointSetWriter::New().
{
// always start with this!
MITK_TEST_BEGIN("PointSetWriter")
// let's create an object of our class
mitk::PointSetWriter::Pointer myPointSetWriter = mitk::PointSetWriter::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(myPointSetWriter.IsNotNull(),"Testing instantiation")
// write your own tests here and use the macros from mitkTestingMacros.h !!!
// do not write to std::cout and do not return from this function yourself!
// create pointSet
srand(time(NULL));
mitk::PointSet::Pointer pointSet = mitk::PointSet::New();
int numberOfPoints = rand()%100;
for (int i=0; i<=numberOfPoints+1;i++)
{
mitk::Point3D point;
point[0] = rand()%1000;
point[1] = rand()%1000;
point[2] = rand()%1000;
pointSet->SetPoint(i,point);
}
MITK_TEST_CONDITION_REQUIRED(pointSet.IsNotNull(),"PointSet creation")
try{
// test for exception handling
MITK_TEST_FOR_EXCEPTION_BEGIN(itk::ExceptionObject)
myPointSetWriter->SetInput(pointSet);
myPointSetWriter->SetFileName("/usr/bin");
myPointSetWriter->Update();
MITK_TEST_FOR_EXCEPTION_END(itk::ExceptionObject)
}
catch(...) {
//this means that a wrong exception (i.e. no itk:Exception) has been thrown
std::cout << "Wrong exception (i.e. no itk:Exception) caught during write [FAILED]" << std::endl;
return EXIT_FAILURE;
}
/*
MITK_TEST_OUTPUT( << "Check if filename can be set correctly: ");
myPointSetWriter->SetFileName("filename");
const char * filename = myPointSetWriter->GetFileName();
MITK_TEST_CONDITION_REQUIRED(std::string("filename") == "filename", "Filename set correctly?");
MITK_TEST_OUTPUT( << "Check if prefix can be set correctly: ");
myPointSetWriter->SetFilePrefix("pre");
const char * prefix = myPointSetWriter->GetFilePrefix();
MITK_TEST_CONDITION_REQUIRED(std::string("pre") == prefix, "Prefix set correctly?");
MITK_TEST_OUTPUT( << "Check if pattern can be set correctly: ");
myPointSetWriter->SetFilePattern("pattern");
const char * pattern = myPointSetWriter->GetFilePattern();
MITK_TEST_CONDITION_REQUIRED(std::string("pattern") == prefix, "Pattern set correctly?");
*/
MITK_TEST_OUTPUT( << "Check if input can be set correctly: ");
myPointSetWriter->SetInput(pointSet);
mitk::PointSet::Pointer pointSet2 = mitk::PointSet::New();
pointSet2 = myPointSetWriter->GetInput();
MITK_TEST_CONDITION_REQUIRED( pointSet->GetSize() == pointSet2->GetSize(), "Pointsets have unequal size" );
for(int i=0; i<pointSet->GetSize(); i++)
{
mitk::Point3D p1 = pointSet->GetPoint(i);
mitk::Point3D p2 = pointSet2->GetPoint(i);
MITK_TEST_CONDITION_REQUIRED( p1[0] == p2[0] && p1[0] == p2[0] && p1[0] == p2[0], "Pointsets aren't equal" );
}
std::vector< std::string > extensions = myPointSetWriter->GetPossibleFileExtensions();
// always end with this!
MITK_TEST_END()
}
1.7.2