16 #include <vtkWindow.h> 53 class mitkDataNodeTestClass
61 dataNode->SetData(baseData);
62 MITK_TEST_CONDITION(baseData == dataNode->GetData(),
"Testing if a nullptr pointer was set correctly")
65 dataNode->SetData(baseData);
66 MITK_TEST_CONDITION(baseData == dataNode->GetData(),
"Testing if a GeometryData object was set correctly")
69 dataNode->SetData(baseData);
70 MITK_TEST_CONDITION(baseData == dataNode->GetData(),
"Testing if a PlaneGeometryData object was set correctly")
73 dataNode->SetData(baseData);
74 MITK_TEST_CONDITION(baseData == dataNode->GetData(),
"Testing if a PointSet object was set correctly")
77 dataNode->SetData(baseData);
78 MITK_TEST_CONDITION(baseData == dataNode->GetData(),
"Testing if a Image object was set correctly")
81 dataNode->SetData(baseData);
82 MITK_TEST_CONDITION(baseData == dataNode->GetData(),
"Testing if a Surface object was set correctly")
84 dataNode->SetData(
nullptr);
86 "Testing if base data (already set) was replaced by a nullptr pointer")
96 dataNode->SetMapper(0, mapper);
97 MITK_TEST_CONDITION(mapper == dataNode->GetMapper(0),
"Testing if a nullptr pointer was set correctly")
100 dataNode->SetMapper(1, mapper);
101 MITK_TEST_CONDITION(mapper == dataNode->GetMapper(1),
"Testing if a PlaneGeometryDataMapper2D was set correctly")
102 MITK_TEST_CONDITION(dataNode == mapper->GetDataNode(),
"Testing if the mapper returns the right DataNode")
105 dataNode->SetMapper(1, mapper);
106 MITK_TEST_CONDITION(mapper == dataNode->GetMapper(1),
"Testing if a ImageVtkMapper2D was set correctly")
107 MITK_TEST_CONDITION(dataNode == mapper->GetDataNode(),
"Testing if the mapper returns the right DataNode")
110 dataNode->SetMapper(1, mapper);
111 MITK_TEST_CONDITION(mapper == dataNode->GetMapper(1),
"Testing if a PointSetVtkMapper2D was set correctly")
112 MITK_TEST_CONDITION(dataNode == mapper->GetDataNode(),
"Testing if the mapper returns the right DataNode")
115 dataNode->SetMapper(1, mapper);
116 MITK_TEST_CONDITION(mapper == dataNode->GetMapper(1),
"Testing if a SurfaceGLMapper2D was set correctly")
117 MITK_TEST_CONDITION(dataNode == mapper->GetDataNode(),
"Testing if the mapper returns the right DataNode")
120 dataNode->SetMapper(1, mapper);
121 MITK_TEST_CONDITION(mapper == dataNode->GetMapper(1),
"Testing if a PlaneGeometryDataVtkMapper3D was set correctly")
122 MITK_TEST_CONDITION(dataNode == mapper->GetDataNode(),
"Testing if the mapper returns the right DataNode")
125 dataNode->SetMapper(1, mapper);
126 MITK_TEST_CONDITION(mapper == dataNode->GetMapper(1),
"Testing if a PointSetVtkMapper3D was set correctly")
127 MITK_TEST_CONDITION(dataNode == mapper->GetDataNode(),
"Testing if the mapper returns the right DataNode")
130 dataNode->SetMapper(1, mapper);
131 MITK_TEST_CONDITION(mapper == dataNode->GetMapper(1),
"Testing if a SurfaceVtkMapper3D was set correctly")
132 MITK_TEST_CONDITION(dataNode == mapper->GetDataNode(),
"Testing if the mapper returns the right DataNode")
143 "Testing if a nullptr pointer was set correctly (DataInteractor)")
146 interactor->SetEventConfig(
"PointSetConfig.xml");
147 interactor->SetDataNode(dataNode);
149 "Testing if a PointSetDataInteractor was set correctly")
152 dataNode->SetDataInteractor(interactor);
154 "Testing if a PointSetDataInteractor was set correctly")
160 MITK_TEST_CONDITION(dataNode->GetPropertyList() !=
nullptr,
"Testing if the constructor set the propertylist")
162 dataNode->SetIntProperty(
"int", -31337);
164 dataNode->GetIntProperty(
"int", x);
167 dataNode->SetBoolProperty(
"bool",
true);
169 dataNode->GetBoolProperty(
"bool", b);
171 dataNode->SetFloatProperty(
"float", -31.337);
173 dataNode->GetFloatProperty(
"float", y);
176 dataNode->GetDoubleProperty(
"float", yd);
179 double d = sqrt(2.0);
180 dataNode->SetDoubleProperty(
"double", d);
182 MITK_TEST_CONDITION(dataNode->GetDoubleProperty(
"double", read_d),
"Testing GetDoubleProperty");
184 dataNode->SetStringProperty(
"string",
"MITK");
185 std::string s =
"GANZVIELPLATZ";
186 dataNode->GetStringProperty(
"string", s);
189 std::string name =
"MyTestName";
190 dataNode->SetName(name.c_str());
192 name =
"MySecondTestName";
193 dataNode->SetName(name);
197 "Testing if the propertylist has changed during the last tests")
202 const std::string name =
"Catch Me If You Can";
207 dataNode->SetData(
image);
209 auto property = dataNode->GetProperty(name.c_str());
210 MITK_TEST_CONDITION(
nullptr != property,
"Testing GetProperty data property fallback (new behavior)");
212 property = dataNode->GetProperty(name.c_str(),
nullptr,
false);
213 MITK_TEST_CONDITION(
nullptr == property,
"Testing GetProperty data property fallback (old behavior)");
218 vtkRenderWindow *renderWindow = vtkRenderWindow::New();
224 MITK_TEST_CONDITION(!dataNode->IsSelected(),
"Testing if this node is not set as selected")
226 dataNode->SetSelected(
true);
228 dataNode->SetSelected(
false);
230 dataNode->SetSelected(
true, base);
232 MITK_TEST_CONDITION(dataNode->IsSelected(base),
"Testing if this node with right base renderer is set as selected")
235 renderWindow->Delete();
240 time = dataNode->GetMTime();
243 dataNode->SetData(pointSet);
245 "Testing if the node timestamp is updated after adding data to the node")
249 pointSet->SetPoint(0, point);
253 "Testing if the node timestamp is updated after base data was modified")
256 unsigned long lastModified = dataNode->GetMTime();
257 dataNode->SetIntProperty(
"testIntProp", 2344);
259 "Testing if the node timestamp is updated after property list was modified")
261 static void TestSetDataUnderPropertyChange(
void)
268 image = mitk::ImageGenerator::GenerateRandomImage<unsigned char>(3u, 3u);
270 dataNode->SetData(image);
272 const float defaultOutlineWidth = 1.0;
273 float outlineWidth = 0;
274 dataNode->GetPropertyValue(
"outline width", outlineWidth);
277 "Testing if the SetData set the default property list")
279 dataNode->SetProperty("outline width",
mitk::FloatProperty::New(42.0));
280 dataNode->SetData(image);
281 dataNode->GetPropertyValue("outline width", outlineWidth);
284 "Testing if the SetData does not set anything if image data is identical")
286 dataNode->SetData(additionalImage);
287 dataNode->GetPropertyValue("outline width", outlineWidth);
290 "Testing if the SetData does not set the default property list if image data is already set")
292 mitk::Surface::Pointer surface =
mitk::Surface::New();
293 dataNode->SetData(surface);
296 "Testing if SetData cleared previous property list and set the default property list if data "
297 "of different type has been set")
314 mitkDataNodeTestClass::TestDataSetting(myDataNode);
315 mitkDataNodeTestClass::TestMapperSetting(myDataNode);
318 mitkDataNodeTestClass::TestInteractorSetting(myDataNode);
319 mitkDataNodeTestClass::TestPropertyList(myDataNode);
320 mitkDataNodeTestClass::TestDataPropertiesFallback(myDataNode);
321 mitkDataNodeTestClass::TestSelected(myDataNode);
322 mitkDataNodeTestClass::TestGetMTime(myDataNode);
323 mitkDataNodeTestClass::TestSetDataUnderPropertyChange();
#define MITK_TEST_CONDITION_REQUIRED(COND, MSG)
DataCollection - Class to facilitate loading/accessing structured data.
int mitkDataNodeTest(int, char *[])
section GeneralTestsDeprecatedOldTestingStyle Deprecated macros All tests with MITK_TEST_BEGIN()
#define MITK_TEST_CONDITION(COND, MSG)
mitk::Image::Pointer image
MITKNEWMODULE_EXPORT bool Equal(mitk::ExampleDataStructure *leftHandSide, mitk::ExampleDataStructure *rightHandSide, mitk::ScalarType eps, bool verbose)
Returns true if the example data structures are considered equal.
static Pointer New(const char *_arga, vtkRenderWindow *_argb)