Pārlūkot izejas kodu

Add ctkDICOMDatasetViewTest1 to test ctkDICOMDatasetView

Julien Finet 14 gadi atpakaļ
vecāks
revīzija
f77b76aa42

+ 6 - 3
Libs/DICOM/Core/ctkDICOMImage.cpp

@@ -28,7 +28,7 @@
 #include "ctkLogger.h"
 
 // DCMTK includes
-#include "dcmimage.h"
+#include <dcmimage.h>
 #include <ofbmanip.h>
 
 static ctkLogger logger ( "org.commontk.dicom.DICOMImage" );
@@ -68,8 +68,11 @@ ctkDICOMImage::ctkDICOMImage(DicomImage* dicomImage, QObject* parentValue)
   Q_UNUSED(parentValue);
   Q_D(ctkDICOMImage);
   d->DicomImage = dicomImage;
-  // select first window by default
-  d->DicomImage->setWindow(0);
+  if (d->DicomImage)
+    {
+    // select first window by default
+    d->DicomImage->setWindow(0);
+    }
 }
 
 //------------------------------------------------------------------------------

+ 5 - 0
Libs/DICOM/Widgets/Testing/Cpp/CMakeLists.txt

@@ -2,6 +2,7 @@ SET(KIT ${PROJECT_NAME})
 
 CREATE_TEST_SOURCELIST(Tests ${KIT}CppTests.cpp
   ctkDICOMAppWidgetTest1.cpp
+  ctkDICOMDatasetViewTest1.cpp
   ctkDICOMModelTest2.cpp
   ctkDICOMQueryRetrieveWidgetTest1.cpp
   )
@@ -26,6 +27,10 @@ ENDMACRO( SIMPLE_TEST  )
 #
 
 SIMPLE_TEST(ctkDICOMAppWidgetTest1)
+ADD_TEST( ctkDICOMDatasetViewTest1  ${KIT_TESTS} 
+          ctkDICOMDatasetViewTest1  ${CTKData_DIR}/Data/DICOM/MRHEAD/000055.IMA)
+SET_PROPERTY(TEST ctkDICOMDatasetViewTest1 PROPERTY LABELS ${PROJECT_NAME})
+
 ADD_TEST( ctkDICOMModelTest2 ${KIT_TESTS}
           ctkDICOMModelTest2 ${CMAKE_CURRENT_BINARY_DIR}/dicom.db
                              ${CMAKE_CURRENT_SOURCE_DIR}/../../../Core/Resources/dicom-sample.sql)

+ 53 - 0
Libs/DICOM/Widgets/Testing/Cpp/ctkDICOMDatasetViewTest1.cpp

@@ -0,0 +1,53 @@
+
+// Qt includes
+#include <QApplication>
+#include <QDebug>
+#include <QDir>
+#include <QTimer>
+
+// ctkDICOMCore includes
+#include "ctkDICOMImage.h"
+#include "ctkDICOMDatasetView.h"
+
+// DCMTK includes
+#include <dcmimage.h>
+
+// STD includes
+#include <iostream>
+
+/* Test from build directory:
+ ./CTK-build/bin/CTKDICOMWidgetsCxxTests ctkDICOMDatasetViewTest1 test.db ../CTK/Libs/DICOM/Core/Resources/dicom-sample.sql
+*/
+
+int ctkDICOMDatasetViewTest1( int argc, char * argv [] )
+{
+  QApplication app(argc, argv);
+  if (argc < 2)
+    {
+    std::cerr << "Usage: ctkDICOMDatasetViewTest1 dcmimage [-I]" << std::endl;
+    return EXIT_FAILURE;
+    }
+  
+  DicomImage    img(argv[1]);
+  ctkDICOMImage dicomImage(&img);
+  ctkDICOMImage dicomImage2(0);
+  QImage image;
+  QImage image2(200, 200, QImage::Format_RGB32);
+  
+  ctkDICOMDatasetView datasetView;
+  datasetView.addImage(dicomImage);
+  datasetView.addImage(dicomImage2);
+  datasetView.addImage(image);
+  datasetView.addImage(image2);
+  datasetView.update( false, false );
+  datasetView.update( false, true);
+  datasetView.update( true, false);
+  datasetView.update( true, true);
+  datasetView.show();
+
+  if (argc <= 2 || QString(argv[2]) != "-I")
+    {
+    QTimer::singleShot(200, &app, SLOT(quit()));
+    }
+  return app.exec();
+}