Browse Source

Add ctkDICOMDatasetTest1 to test ctkDICOMDataset

Julien Finet 14 years ago
parent
commit
1a92d58ab7

+ 2 - 0
Libs/DICOM/Core/Testing/Cpp/CMakeLists.txt

@@ -2,6 +2,7 @@ SET(KIT ${PROJECT_NAME})
 
 CREATE_TEST_SOURCELIST(Tests ${KIT}CppTests.cpp
   ctkDICOMDatabaseTest1.cpp
+  ctkDICOMDatasetTest1.cpp
   ctkDICOMImageTest1.cpp
   ctkDICOMIndexerTest1.cpp
   ctkDICOMModelTest1.cpp
@@ -28,6 +29,7 @@ ENDMACRO( SIMPLE_TEST  )
 # Add Tests
 #
 SIMPLE_TEST(ctkDICOMDatabaseTest1)
+SIMPLE_TEST(ctkDICOMDatasetTest1)
 
 ADD_TEST( ctkDICOMImageTest1 ${KIT_TESTS}
           ctkDICOMImageTest1 ${CTKData_DIR}/Data/DICOM/MRHEAD/000055.IMA)

+ 109 - 0
Libs/DICOM/Core/Testing/Cpp/ctkDICOMDatasetTest1.cpp

@@ -0,0 +1,109 @@
+
+// Qt includes
+#include <QApplication>
+#include <QDir>
+#include <QTimer>
+
+// ctkDICOMCore includes
+#include "ctkDICOMDataset.h"
+
+// STD includes
+#include <iostream>
+
+int ctkDICOMDatasetTest1( int argc, char * argv [] )
+{
+  ctkDICOMDataset dataset;
+  dataset.InitializeFromDataset(0);
+  dataset.InitializeFromFile(QString());
+  try
+    {
+    dataset.Serialize();
+    }
+  catch(...)
+    {
+    std::cout << "ctkDICOMDataset::Serialize() throws exceptions" << std::endl;
+    //return EXIT_FAILURE;
+    }
+  try
+    {
+    dataset.Deserialize();
+    }
+  catch(...)
+    {
+    std::cout << "ctkDICOMDataset::Deserialize() throws exceptions"
+              << std::endl;
+    //return EXIT_FAILURE;
+    }
+  dataset.MarkForInitialization();
+  try
+    {
+    dataset.EnsureDcmDataSetIsInitialized();
+    }
+  catch(...)
+    {
+    std::cout << "ctkDICOMDataset::EnsureDcmDataSetIsInitialized() throws"
+              << " exceptions" << std::endl;
+    //return EXIT_FAILURE;
+    }
+  dataset.CopyElement(0, DcmTagKey(), 0);
+  QString decode = dataset.Decode(DcmTag(),OFString());
+  if (!decode.isEmpty())
+    {
+    std::cerr << "ctkDICOMDataset::Decode() failed: "
+              << qPrintable(decode) << std::endl;
+    return EXIT_FAILURE;
+    }
+  OFString encode = dataset.Encode(DcmTag(), decode);
+  DcmElement* element = 0;
+  OFCondition condition = dataset.findAndGetElement(DcmTag(), element);
+  if (ctkDICOMDataset::CheckCondition(condition))
+    {
+    std::cerr << "ctkDICOMDataset::findAndGetElement() failed" << std::endl;
+    return EXIT_FAILURE;
+    }
+  condition = dataset.findAndGetOFString(DcmTag(), OFString());
+  if (ctkDICOMDataset::CheckCondition(condition))
+    {
+    std::cerr << "ctkDICOMDataset::findAndGetOFString() failed" << std::endl;
+    return EXIT_FAILURE;
+    }
+   try
+    {
+    QString string = dataset.GetAllElementValuesAsString(DcmTag());
+    QString string2 = dataset.GetElementAsString(DcmTag());
+    QStringList list = dataset.GetElementAsStringList(DcmTag());
+    ctkDICOMPersonName name = dataset.GetElementAsPersonName(DcmTag());
+    ctkDICOMPersonNameList nameList = dataset.GetElementAsPersonNameList(DcmTag());
+    QDate date = dataset.GetElementAsDate(DcmTag());
+    QTime time = dataset.GetElementAsTime(DcmTag());
+    double doubleValue = dataset.GetElementAsDouble(DcmTag());
+    int integerValue = dataset.GetElementAsInteger(DcmTag());
+    int shortValue = dataset.GetElementAsSignedShort(DcmTag());
+    int ushortValue = dataset.GetElementAsUnsignedShort(DcmTag());
+    QDateTime dateTime = dataset.GetElementAsDateTime(DcmTag());
+    
+    dataset.SetElementAsString( DcmTag(), QString());
+    dataset.SetElementAsStringList( DcmTag(), QStringList() );
+    dataset.SetElementAsPersonName( DcmTag(), ctkDICOMPersonName());
+    dataset.SetElementAsPersonNameList( DcmTag(), ctkDICOMPersonNameList() );
+    dataset.SetElementAsDate( DcmTag(), QDate() );
+    dataset.SetElementAsTime( DcmTag(), QTime() );
+    dataset.SetElementAsDateTime( DcmTag(), QDateTime() );
+    dataset.SetElementAsInteger( DcmTag(), 0 ); // type IS
+    dataset.SetElementAsSignedShort( DcmTag(), 0 ); // type SS
+    dataset.SetElementAsUnsignedShort( DcmTag(), 0 ); // type US
+    }
+  catch(...)
+    {
+    std::cout << "ctkDICOMDataset::GetElementValueAsXXX() throws exceptions"
+              << std::endl;
+    //return EXIT_FAILURE;
+    }
+  ctkDICOMDataset::TranslateDefinedTermPatientPosition(QString());
+  ctkDICOMDataset::TranslateDefinedTermModality(QString());
+  ctkDICOMDataset::TagKey(DcmTag());
+  ctkDICOMDataset::TagDescription(DcmTag());
+  ctkDICOMDataset::TagVR(DcmTag());
+  
+  return EXIT_SUCCESS;
+}