Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include <vtkImageData.h>
00019
00020 #include "mitkTestingMacros.h"
00021
00022 #include "vtkMitkThickSlicesFilter.h"
00023
00024
00028 vtkImageData *GenerateTestImageForTSFilter()
00029 {
00030
00031 short myData[] =
00032 {
00033
00034 234,234,
00035 123,565,
00036
00037 -213,800,
00038 1000,-20
00039 };
00040
00041 vtkImageData *i = vtkImageData::New();
00042
00043 i->SetExtent(0,1,0,1,0,1);
00044
00045 i->SetScalarTypeToShort();
00046
00047 i->AllocateScalars();
00048
00049 short *p = (short*)i->GetScalarPointer();
00050
00051 memcpy(p,myData,2*2*2*sizeof(short));
00052
00053 return i;
00054 }
00055
00056 void CheckResultImageForTSFilter(vtkImageData *i)
00057 {
00058 int *e=i->GetExtent();
00059
00060 MITK_TEST_CONDITION_REQUIRED( e[0] == 0 && e[1] == 1 && e[2] == 0 && e[3] == 1 && e[4] == 0 && e[5] == 0 , "output image has correct extent" )
00061 MITK_TEST_CONDITION_REQUIRED( i->GetScalarType() == VTK_SHORT , "output image has correct scalar type" )
00062
00063 short expectedResult[] =
00064 {
00065
00066 234,800,
00067 1000,565
00068 };
00069
00070 short *d = (short*)i->GetScalarPointer();
00071
00072 MITK_TEST_CONDITION_REQUIRED( memcmp(d,expectedResult,sizeof(expectedResult)) == 0 , "output image has correct content" )
00073 }
00074
00075
00079 int vtkMitkThickSlicesFilterTest(int , char* [])
00080 {
00081 MITK_TEST_BEGIN("ThickSlicesFilter")
00082
00083 vtkImageData *i,*o;
00084
00085 i = GenerateTestImageForTSFilter();
00086
00087 vtkMitkThickSlicesFilter *f = vtkMitkThickSlicesFilter::New();
00088 f->SetThickSliceMode( 0 );
00089 f->SetInput( i );
00090 f->Update();
00091 o = f->GetOutput();
00092
00093 CheckResultImageForTSFilter(o);
00094
00095
00096 i->Delete();
00097 f->Delete();
00098
00099 MITK_TEST_END()
00100 }
00101