diff --git a/Core/Code/Testing/CMakeLists.txt b/Core/Code/Testing/CMakeLists.txt index a63bf771ef..ac0288dabe 100644 --- a/Core/Code/Testing/CMakeLists.txt +++ b/Core/Code/Testing/CMakeLists.txt @@ -1,36 +1,44 @@ MITK_CREATE_MODULE_TESTS(LABELS MITK-Core) # MITK_INSTALL_TARGETS(EXECUTABLES MitkTestDriver) mitkAddCustomModuleTest(mitkDICOMLocaleTest_spacingOk_CT mitkDICOMLocaleTest ${MITK_DATA_DIR}/spacing-ok-ct.dcm) mitkAddCustomModuleTest(mitkDICOMLocaleTest_spacingOk_MR mitkDICOMLocaleTest ${MITK_DATA_DIR}/spacing-ok-mr.dcm) mitkAddCustomModuleTest(mitkDICOMLocaleTest_spacingOk_SC mitkDICOMLocaleTest ${MITK_DATA_DIR}/spacing-ok-sc.dcm) mitkAddCustomModuleTest(mitkEventMapperTest_Test1And2 mitkEventMapperTest ${MITK_DATA_DIR}/TestStateMachine1.xml ${MITK_DATA_DIR}/TestStateMachine2.xml) #mitkAddCustomModuleTest(mitkNodeDependentPointSetInteractorTest mitkNodeDependentPointSetInteractorTest ${MITK_DATA_DIR}/Pic3D.pic.gz ${MITK_DATA_DIR}/BallBinary30x30x30.pic.gz) mitkAddCustomModuleTest(mitkNodeDependentPointSetInteractorTest mitkNodeDependentPointSetInteractorTest ${MITK_DATA_DIR}/Pic3D.nrrd ${MITK_DATA_DIR}/BallBinary30x30x30.nrrd) mitkAddCustomModuleTest(mitkDataStorageTest_US4DCyl mitkDataStorageTest ${MITK_DATA_DIR}/US4DCyl.nrrd) mitkAddCustomModuleTest(mitkStateMachineFactoryTest_TestStateMachine1_2 mitkStateMachineFactoryTest ${MITK_DATA_DIR}/TestStateMachine1.xml ${MITK_DATA_DIR}/TestStateMachine2.xml) mitkAddCustomModuleTest(mitkDicomSeriesReaderTest_CTImage mitkDicomSeriesReaderTest ${MITK_DATA_DIR}/TinyCTAbdomen) mitkAddCustomModuleTest(mitkPointSetReaderTest mitkPointSetReaderTest ${MITK_DATA_DIR}/PointSetReaderTestData.mps) + +IF(MITK_ENABLE_GUI_TESTING) +mitkAddCustomModuleTest(mitkImageVtkMapper2D_rgbaImage640x480 mitkImageVtkMapper2DTest + ${MITK_DATA_DIR}/RenderingTestData/rgbaImage.png #input image to load in data storage + -V ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/rgbaImage640x480REF.png #corresponding reference screenshot +) +ENDIF() + # see bug 9882 IF(NOT APPLE) ADD_TEST(mitkPointSetLocaleTest ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TESTDRIVER} mitkPointSetLocaleTest ${MITK_DATA_DIR}/pointSet.mps) SET_PROPERTY(TEST mitkPointSetLocaleTest PROPERTY LABELS MITK-Core) ENDIF() ADD_TEST(mitkImageTest_brainImage ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TESTDRIVER} mitkImageTest ${MITK_DATA_DIR}/brain.mhd) SET_PROPERTY(TEST mitkImageTest_brainImage PROPERTY LABELS MITK-Core) # ADD_TEST(mitkImageTest_4DImageData ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TESTDRIVER} mitkImageTest ${MITK_DATA_DIR}/US4DCyl.pic.gz) # SET_PROPERTY(TEST mitkImageTest_4DImageData PROPERTY LABELS MITK-Core) ADD_TEST(mitkImageWriterTest_nrrdImage ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TESTDRIVER} mitkImageWriterTest ${MITK_DATA_DIR}/NrrdWritingTestImage.jpg) SET_PROPERTY(TEST mitkImageWriterTest_nrrdImage PROPERTY LABELS MITK-Core) add_subdirectory(DICOMTesting) add_subdirectory(TestModules) diff --git a/Core/Code/Testing/DICOMTesting/Testing/files.cmake b/Core/Code/Testing/DICOMTesting/Testing/files.cmake index 92af05e67b..0cbf00be06 100644 --- a/Core/Code/Testing/DICOMTesting/Testing/files.cmake +++ b/Core/Code/Testing/DICOMTesting/Testing/files.cmake @@ -1,6 +1,11 @@ # tests with no extra command line parameter SET(MODULE_CUSTOM_TESTS mitkDICOMTestingSanityTest.cpp ) +# this shouldn't be necessary if this variable +# would actually be a parameter of the MITK_CREATE_MODULE_TESTS +# macro. See bug #10592 +SET(TEST_CPP_FILES "") + diff --git a/Core/Code/Testing/files.cmake b/Core/Code/Testing/files.cmake index d9ca852bc6..f8f08cb479 100644 --- a/Core/Code/Testing/files.cmake +++ b/Core/Code/Testing/files.cmake @@ -1,118 +1,119 @@ - # tests with no extra command line parameter SET(MODULE_TESTS mitkAccessByItkTest.cpp mitkCoreObjectFactoryTest.cpp mitkMaterialTest.cpp mitkActionTest.cpp mitkEnumerationPropertyTest.cpp mitkEventTest.cpp mitkFocusManagerTest.cpp mitkGenericPropertyTest.cpp mitkGeometry3DTest.cpp mitkGeometryDataToSurfaceFilterTest.cpp mitkGlobalInteractionTest.cpp mitkImageDataItemTest.cpp #mitkImageMapper2DTest.cpp mitkImageGeneratorTest.cpp mitkBaseDataTest.cpp #mitkImageToItkTest.cpp mitkInstantiateAccessFunctionTest.cpp mitkInteractorTest.cpp mitkITKThreadingTest.cpp mitkLDAPFilterTest.cpp # mitkLevelWindowManagerTest.cpp mitkLevelWindowTest.cpp mitkMessageTest.cpp mitkModuleTest.cpp #mitkPipelineSmartPointerCorrectnessTest.cpp mitkPixelTypeTest.cpp mitkPlaneGeometryTest.cpp mitkPointSetFileIOTest.cpp mitkPointSetTest.cpp mitkPointSetWriterTest.cpp mitkPointSetReaderTest.cpp mitkPointSetInteractorTest.cpp mitkPropertyTest.cpp mitkPropertyListTest.cpp #mitkRegistrationBaseTest.cpp #mitkSegmentationInterpolationTest.cpp mitkServiceListenerTest.cpp mitkSlicedGeometry3DTest.cpp mitkSliceNavigationControllerTest.cpp mitkStateMachineTest.cpp mitkStateTest.cpp #mitkSurfaceTest.cpp mitkSurfaceToSurfaceFilterTest.cpp mitkTimeSlicedGeometryTest.cpp mitkTransitionTest.cpp mitkUndoControllerTest.cpp mitkVtkWidgetRenderingTest.cpp mitkVerboseLimitedLinearUndoTest.cpp mitkWeakPointerTest.cpp mitkTransferFunctionTest.cpp #mitkAbstractTransformGeometryTest.cpp mitkStepperTest.cpp itkTotalVariationDenoisingImageFilterTest.cpp mitkRenderingManagerTest.cpp vtkMitkThickSlicesFilterTest.cpp mitkNodePredicateSourceTest.cpp mitkVectorTest.cpp mitkClippedSurfaceBoundsCalculatorTest.cpp + #QmitkRenderingTestHelper.cpp ) # test with image filename as an extra command line parameter SET(MODULE_IMAGE_TESTS mitkPlanePositionManagerTest.cpp mitkSurfaceVtkWriterTest.cpp #mitkImageSliceSelectorTest.cpp mitkImageTimeSelectorTest.cpp # mitkVtkPropRendererTest.cpp mitkDataNodeFactoryTest.cpp #mitkSTLFileReaderTest.cpp ) # list of images for which the tests are run SET(MODULE_TESTIMAGES # Pic-Factory no more available in Core, test images now in .nrrd format US4DCyl.nrrd Pic3D.nrrd Pic2DplusT.nrrd BallBinary30x30x30.nrrd binary.stl ball.stl ) SET(MODULE_CUSTOM_TESTS #mitkLabeledImageToSurfaceFilterTest.cpp #mitkExternalToolsTest.cpp mitkDataStorageTest.cpp mitkDataNodeTest.cpp mitkDicomSeriesReaderTest.cpp mitkDICOMLocaleTest.cpp mitkEventMapperTest.cpp mitkNodeDependentPointSetInteractorTest.cpp mitkStateMachineFactoryTest.cpp mitkPointSetLocaleTest.cpp mitkImageTest.cpp mitkImageWriterTest.cpp + mitkImageVtkMapper2DTest.cpp ) # Create an artificial module initializing class for # the mitkServiceListenerTest.cpp SET(module_name_orig ${MODULE_NAME}) SET(module_libname_orig ${MODULE_LIBNAME}) SET(MODULE_NAME "${MODULE_NAME}TestDriver") SET(MODULE_LIBNAME "") SET(MODULE_DEPENDS_STR "Mitk") SET(MODULE_PACKAGE_DEPENDS_STR "") SET(MODULE_VERSION "0.1.0") SET(MODULE_QT_BOOL "false") SET(testdriver_init_file "${CMAKE_CURRENT_BINARY_DIR}/MitkTestDriver_init.cpp") CONFIGURE_FILE("${MITK_SOURCE_DIR}/CMake/mitkModuleInit.cpp" ${testdriver_init_file} @ONLY) -SET(TEST_CPP_FILES ${testdriver_init_file}) +SET(TEST_CPP_FILES ${testdriver_init_file} mitkRenderingTestHelper.cpp) SET(MODULE_NAME ${module_name_orig}) SET(MODULE_LIBNAME ${module_libname_orig}) diff --git a/Core/Code/Testing/mitkImageVtkMapper2DTest.cpp b/Core/Code/Testing/mitkImageVtkMapper2DTest.cpp new file mode 100644 index 0000000000..c8010cc619 --- /dev/null +++ b/Core/Code/Testing/mitkImageVtkMapper2DTest.cpp @@ -0,0 +1,124 @@ +/*========================================================================= + +Program: Medical Imaging & Interaction Toolkit +Language: C++ +Date: $Date: 2008-02-25 17:27:17 +0100 (Mo, 25 Feb 2008) $ +Version: $Revision: 7837 $ + +Copyright (c) German Cancer Research Center, Division of Medical and +Biological Informatics. All rights reserved. +See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. + +This software is distributed WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + + +#include "mitkTestingMacros.h" + +#include "mitkDataNodeFactory.h" +#include "mitkStandaloneDataStorage.h" + +#include +#include +#include +#include // nice one + +#include +#include + +#include "mitkRenderingTestHelper.h" +#include + +class mitkRenderingTestHelperClass +{ + +public: + + static mitk::BaseData::Pointer AddToStorage(const std::string& filename) + { + mitk::DataNodeFactory::Pointer reader = mitk::DataNodeFactory::New(); + try + { + reader->SetFileName( filename ); + reader->Update(); + + if(reader->GetNumberOfOutputs()<1) + { + MITK_TEST_FAILED_MSG(<< "Could not find test data '" << filename << "'"); + } + + mitk::DataNode::Pointer node = reader->GetOutput( 0 ); + mitkRenderingTestHelperClass::s_DataStorage->Add(node); + return node->GetData(); + } + catch ( itk::ExceptionObject & e ) + { + MITK_TEST_FAILED_MSG(<< "Failed loading test data '" << filename << "': " << e.what()); + } + } + + static mitk::DataStorage::Pointer s_DataStorage; + +}; // end test helper class + +mitk::DataStorage::Pointer mitkRenderingTestHelperClass::s_DataStorage; + +int mitkImageVtkMapper2DTest(int argc, char* argv[]) +{ + // load all arguments into a datastorage, take last argument as reference rendering + // setup a renderwindow of fixed size X*Y + // render the datastorage + // compare rendering to reference image + MITK_TEST_BEGIN("mitkImageVtkMapper2DTest") + + // enough parameters? + if ( argc < 2 ) + { + MITK_TEST_OUTPUT( << "Usage: " << std::string(*argv) << " [file1 file2 ...] outputfile" ) + MITK_TEST_OUTPUT( << "Will render a central transversal slice of all given files into outputfile" ) + exit( EXIT_SUCCESS ); + } + + // parse parameters + std::vector inputFileNames; + for (int i = 1; i < argc-1; ++i) + { + //add everything to a list but -T and -V + std::string tmp = argv[i]; + if((tmp.compare("-T")) && (tmp.compare("-V"))) + { + inputFileNames.push_back( tmp ); + } + } + // std::string outputFileName( argv[argc-1] ); + + // load all input into a data storage + mitkRenderingTestHelperClass::s_DataStorage = mitk::StandaloneDataStorage::New().GetPointer(); + MITK_TEST_CONDITION_REQUIRED(mitkRenderingTestHelperClass::s_DataStorage.IsNotNull(),"StandaloneDataStorage instantiation"); + + std::for_each( inputFileNames.begin(), inputFileNames.end(), mitkRenderingTestHelperClass::AddToStorage ); + + // create a mitkRenderWindow, let it render the scene and get the vtkRenderWindow + mitkRenderingTestHelper renderingHelper( 640, 480, mitkRenderingTestHelperClass::s_DataStorage ); + + //use this to generate a reference screenshot or save the file: + bool generateReferenceScreenshot = false; + if(generateReferenceScreenshot) + { + renderingHelper.SaveAsPNG("/home/kilgus/Pictures/RenderingTestData/output.png"); + } + int retVal = vtkRegressionTestImage( renderingHelper.GetVtkRenderWindow() ); + + //retVal meanings: (see VTK/Rendering/vtkTesting.h) + //0 = test failed + //1 = test passed + //2 = test not run + //3 = something with vtkInteraction + MITK_TEST_CONDITION( retVal == 1, "VTK test result positive" ); + + MITK_TEST_END(); +} + diff --git a/Core/Code/Testing/mitkRenderingTestHelper.cpp b/Core/Code/Testing/mitkRenderingTestHelper.cpp new file mode 100644 index 0000000000..bc95059cd6 --- /dev/null +++ b/Core/Code/Testing/mitkRenderingTestHelper.cpp @@ -0,0 +1,88 @@ +/*========================================================================= + +Program: Medical Imaging & Interaction Toolkit +Language: C++ +Date: $Date: 2010-03-31 17:34:48 +0200 (Wed, 31 Mar 2010) $ +Version: $Revision: 21985 $ + +Copyright (c) German Cancer Research Center, Division of Medical and +Biological Informatics. All rights reserved. +See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. + +This software is distributed WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#include "mitkRenderingTestHelper.h" +#include "mitkStandaloneDataStorage.h" + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +mitkRenderingTestHelper::mitkRenderingTestHelper(int width, int height, mitk::DataStorage *ds) +{ + // Global interaction must(!) be initialized + mitk::GlobalInteraction::GetInstance()->Initialize("global"); + + m_RenderWindow = mitk::RenderWindow::New(); + m_RenderWindow->GetRenderer()->SetDataStorage(ds); + m_RenderWindow->GetRenderer()->SetMapperID(mitk::BaseRenderer::Standard2D); + this->GetVtkRenderWindow()->SetSize( width, height ); + + mitk::BaseRenderer::GetInstance(m_RenderWindow->GetVtkRenderWindow())->GetSliceNavigationController()->SetDefaultViewDirection(mitk::SliceNavigationController::Transversal); + mitk::TimeSlicedGeometry::Pointer geo = ds->ComputeBoundingGeometry3D(ds->GetAll()); + + //Level Window Property +// ds->GetNode(mitk::NodePredicateDataType::New("Image"))->SetProperty( "levelwindow", mitk::LevelWindowProperty::New( mitk::LevelWindow(254.0, 1.0) ) ); + + mitk::RenderingManager::GetInstance()->InitializeViews( geo ); + mitk::RenderingManager::GetInstance()->ForceImmediateUpdate(m_RenderWindow->GetVtkRenderWindow()); + +//use this to actually show the iamge in a renderwindow +// this->GetVtkRenderWindow()->Render(); +// this->GetVtkRenderWindow()->GetInteractor()->Start(); +} + +mitkRenderingTestHelper::~mitkRenderingTestHelper() +{ +} + +vtkRenderer* mitkRenderingTestHelper::GetVtkRenderer() +{ + return m_RenderWindow->GetRenderer()->GetVtkRenderer(); +} + +vtkRenderWindow* mitkRenderingTestHelper::GetVtkRenderWindow() +{ + return m_RenderWindow->GetVtkRenderWindow(); +} + +//method to save a screenshot of the renderwindow (e.g. create a reference screenshot) +void mitkRenderingTestHelper::SaveAsPNG(std::string fileName) +{ + vtkSmartPointer renderer = this->GetVtkRenderer(); + bool doubleBuffering( renderer->GetRenderWindow()->GetDoubleBuffer() ); + renderer->GetRenderWindow()->DoubleBufferOff(); + + vtkSmartPointer magnifier = vtkSmartPointer::New(); + magnifier->SetInput(renderer); + magnifier->SetMagnification(1.0); + + vtkSmartPointer fileWriter = vtkSmartPointer::New(); + fileWriter->SetInput(magnifier->GetOutput()); + fileWriter->SetFileName(fileName.c_str()); + + fileWriter->Write(); + renderer->GetRenderWindow()->SetDoubleBuffer(doubleBuffering); +} + diff --git a/Core/Code/Testing/mitkRenderingTestHelper.h b/Core/Code/Testing/mitkRenderingTestHelper.h new file mode 100644 index 0000000000..93840a4fab --- /dev/null +++ b/Core/Code/Testing/mitkRenderingTestHelper.h @@ -0,0 +1,51 @@ +/*========================================================================= + +Program: Medical Imaging & Interaction Toolkit +Language: C++ +Date: $Date: 2010-03-31 17:34:48 +0200 (Wed, 31 Mar 2010) $ +Version: $Revision: 21985 $ + +Copyright (c) German Cancer Research Center, Division of Medical and +Biological Informatics. All rights reserved. +See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. + +This software is distributed WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ + +#ifndef mitkRenderingTestHelper_h +#define mitkRenderingTestHelper_h + +#include +#include +#include +#include + +class vtkRenderWindow; +class vtkRenderer; + +namespace mitk +{ + class DataStorage; +} + +class MITK_CORE_EXPORT mitkRenderingTestHelper +{ + public: + mitkRenderingTestHelper(int width, int height, mitk::DataStorage* ds); + + ~mitkRenderingTestHelper(); + + vtkRenderer* GetVtkRenderer(); + vtkRenderWindow* GetVtkRenderWindow(); + void SaveAsPNG(std::string fileName); + + protected: + mitk::RenderWindow::Pointer m_RenderWindow; + +}; + +#endif + diff --git a/Documentation/Doxygen/Concepts.dox b/Documentation/Doxygen/Concepts.dox index 9184996901..fc6db18d4f 100644 --- a/Documentation/Doxygen/Concepts.dox +++ b/Documentation/Doxygen/Concepts.dox @@ -1,13 +1,14 @@ /** \page Concepts MITK concepts The following items describe some issues about MITK on a more abstract level. If you want to start using MITK, you also want to see \ref Development \li \subpage GeometryOverviewPage \li \subpage InteractionPage \li \subpage OverviewPage \li \subpage PropertiesPage \li \subpage Rendering +\li \subpage RenderingTests */ diff --git a/Documentation/Doxygen/RenderingTests.dox b/Documentation/Doxygen/RenderingTests.dox new file mode 100644 index 0000000000..74a63b4a7a --- /dev/null +++ b/Documentation/Doxygen/RenderingTests.dox @@ -0,0 +1,97 @@ +namespace mitk{ +/** +\page RenderingTests Automatic Rendering Tests + +Available sections: + +-# \ref WhatIsARenderingTest "What is an automatic rendering test?" +-# \ref HowToCreateATest "How to create a rendering test" + +\section WhatIsARenderingTest What is an automatic rendering test? + +An automatic rendering test is a powerful tool to test rendering results automatically via dashboard. +Regarding rendering lots of different sources influence the output on the screen (e.g. different +mappers, renderes, camera settings or the algorithm creating the data). Thus, during the rendering +process of an image many different classes are involved and can have impact on the output. A minor +change in an important class (e.g. mitkVtkPropRenderer) can have major impact on the actual rendering. +An automatic rendering test takes an arbitrary object as input (e.g. image, surface, point set), +renders this into an mitkRenderWindow, makes a screen shot of that renderwindow and finally compares +that screen shot to a given reference. Of course, the reference has to be defined by the user. +Internally, a VTK test method is used to compare both screen shots and measure differences. In case +of failure, a difference can be generated to show exactly which pixels are rendered incorrectly. +Implementing automatic rendering tests for algorithms ensures that algorithms deliver the same output +as they used to do in previous version of MITK. + +\section HowToCreateATest How to create your own automatic rendering test + +To create an automatic rendering test you should use an existing test as example +(e.g. mitkImageVtkMapper2DTest). + +1. Adding the test to CMake +Like adding any test with parameters to CMake, you have to add a custom test to +the files.cmake and the corresponding CMakeLists.txt: + +For instance a test for the mitkImageVtkMapper2D has to be added like this: + +files.cmake +\code +SET(MODULE_CUSTOM_TESTS + ... + mitkImageVtkMapper2D.cpp +) +\endcode + +CMakeLists.txt +\code +mitkAddCustomModuleTest(mitkImageVtkMapper2D_rgbaImage640x480 mitkImageVtkMapper2D #custom name of the test and executable + ${MITK_DATA_DIR}/RenderingTestData/rgbaImage.png #input image to load in data storage + -V ${MITK_DATA_DIR}/RenderingTestData/ReferenceScreenshots/rgbaImage640x480REF.png #corresponding reference screenshot +) +\endcode + +The first parameter defines a name for the test on the dashboard. This is a feature to distinguish +between tests with different inputs. In this example the test is named +mitkImageVtkMapper2D_rgbaImage640x480 to show that this test is using the test image +rbgaImage640x480 as input. + +The next parameters sets test name (i.e. the name of the test class). Here: mitkImageVtkMapper2D. + +The next parameter(s) are used to pass the input to the test. For instance, it is possible to set +multiple objects as input for a test (e.g. /path/to/img1.jpg /path/to/img2.pic /path/to/pointset.mps). +All test data for core tests should be placed into the MITK-DATA repository inside the folder: +${MITK_DATA_DIR}/RenderingTestData/ +It is possible to create another folders for other modules/bundles. + +The option -V defines the path to the reference screen shot and is internally used by VTK. The reference +screen shot is highly important and has to be triple-checked if is correct!!! The +mitkRenderingTestHelper offers means to capture a screen shot of a renderwindow. +Capturing a reference screen shot should happen just once and NOT be a permanent part of the test. + +It is also possible to set the option -T /path/to/directory/. This option is internally used by VTK +to save a difference image. This is meant for debugging and should not be used on the dashboard. + + +2. Coding the test +Writing the test code is pretty straight forward. In the example of the mitkImageVtkMapper2DTest +the input parameters are added to a datastorage and rendered into a render window via the +mitkRenderingTestHelper. Last, the vtkTesting macro is called to compare the given reference to +the data rendered in the renderwindow: + +\code +int retVal = vtkRegressionTestImage( renderingHelper.GetVtkRenderWindow() ); + +//retVal meanings: (see VTK/Rendering/vtkTesting.h) +//0 = test failed +//1 = test passed +//2 = test not run +//3 = something with vtkInteraction +MITK_TEST_CONDITION( retVal == 1, "VTK test result positive" ); +\endcode + +If the content of the previously filled renderwindow does not equal the reference, the test will fail. + +Feel free to modify the data before rendering. E.g. create a surface from the loaded image and render +that surface afterwards or add compute QBalls for an image and render those. Happy testing! + +*/ +}