]> Creatis software - gdcm.git/blobdiff - Testing/TestDataEntry.cxx
Fix mistypings
[gdcm.git] / Testing / TestDataEntry.cxx
index 7c2977c65753c98222f4ae888491c78df3577c0b..05755d35b1599d2eff7e97d87e808a574553c890 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: TestDataEntry.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/10/20 15:24:05 $
-  Version:   $Revision: 1.5 $
+  Date:      $Date: 2008/09/15 15:49:21 $
+  Version:   $Revision: 1.13 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
 =========================================================================*/
 #include "gdcmDictEntry.h"
 #include "gdcmDataEntry.h"
+#include <math.h>
 
 // ===============================================================
 
-char data[]="1\\2\\3\\4\\5";
-char fdata[]="1.1\\2.2\\3.3\\4.4\\5.5";
+const char data[] = "1\\2\\3\\4\\5";
+const char fdata[] = "1.1\\2.2\\3.3\\4.4\\5.5";
 
-short svalue[]={1,2,3,4,5};
-long lvalue[]={1,2,3,4,5};
-float fvalue[]={1.1f,2.2f,3.3f,4.4f,5.5f};
-double dvalue[]={1.1,2.2,3.3,4.4,5.5};
+const int16_t svalue[]={1,2,3,4,5};
+const int32_t lvalue[]={1,2,3,4,5};
+const float fvalue[]={1.1f,2.2f,3.3f,4.4f,5.5f};
+const double dvalue[]={1.1,2.2,3.3,4.4,5.5};
 
-unsigned long nbvalue = 5;
+const unsigned long nbvalue = 5;
+const double GDCM_EPS = 1e-6;
 
 /**
   * \brief Test the DataEntry object
   */  
 int TestDataEntry(int , char *[])
 {
+   /* Most of the tests are out of date! 
+   (we don't use any longer DictEntry to build a DocEntry!
+   
    unsigned int i;
-   gdcm::DictEntry *dict;
-   gdcm::DataEntry *entry;
-
-   //------------------------------------------------------------------
-   dict = gdcm::DictEntry::New(0x0000,0x0000);
-   entry = new gdcm::DataEntry(dict);
-   dict->SetVR("US");
+   GDCM_NAME_SPACE::DictEntry *dict;
+   GDCM_NAME_SPACE::DataEntry *entry;
+      
+   dict = GDCM_NAME_SPACE::DictEntry::New(0x0003,0x0004);
+   // SetVR *before* making the DataEntry!
+   dict->SetVR("US");   
+   entry = GDCM_NAME_SPACE::DataEntry::New(dict);
 
    std::cout << "Test for VR = " << dict->GetVR() << "..." << std::endl;
 
+   std::cout << "TagKey : [" << entry->GetKey() << "]" << std::endl;
+   std::cout << "Group : [" << entry->GetGroup() << "]" << std::endl; 
+   std::cout << "Element : [" << entry->GetElement() << "]" << std::endl; 
+      
    entry->SetString("1");
    std::cout << "1: ";
    entry->Print(std::cout);
@@ -57,8 +66,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetValueCount() 
                 << " - Must be: 1" << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
 
    entry->SetString("1\\2");
@@ -72,8 +81,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetValueCount() 
                 << " - Must be: 2" << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
 
    entry->SetString("");
@@ -87,18 +96,19 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetValueCount() 
                 << " - Must be: 0" << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
 
    std::cout << std::endl;
    dict->Delete();
-   delete entry;
+   entry->Delete();
 
    //------------------------------------------------------------------
-   dict = gdcm::DictEntry::New(0x0000,0x0000);
-   entry = new gdcm::DataEntry(dict);
+   dict = GDCM_NAME_SPACE::DictEntry::New(0x0000,0x0000);
+   // SetVR *before* making the DataEntry!   
    dict->SetVR("LT");
+   entry = GDCM_NAME_SPACE::DataEntry::New(dict);
 
    std::cout << "Test for VR = " << dict->GetVR() << "..." << std::endl;
    entry->SetString(data);
@@ -112,8 +122,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetLength() 
                 << " - Must be: " << strlen(data) + strlen(data)%2 << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    if( entry->GetValueCount() != nbvalue )
    {
@@ -122,16 +132,16 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetValueCount() 
                 << " - Must be: " << nbvalue << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    if( memcmp(entry->GetBinArea(),data,entry->GetLength()) != 0 )
    {
       std::cout << "   Failed" << std::endl
                 << "   Content of bin area is incorrect" << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    if( memcmp(entry->GetString().c_str(),data,entry->GetLength()) != 0 )
    {
@@ -140,8 +150,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetString().c_str()
                 << " - Must be: " << data << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    for(i=0;i<entry->GetValueCount();i++)
    {
@@ -152,19 +162,21 @@ int TestDataEntry(int , char *[])
                    << "   Found " << entry->GetValue(i)
                    << " - Must be " << svalue[i] << std::endl;
          dict->Delete();
-         delete entry;
-         return(1);
+         entry->Delete();
+         return 1;
       }
    }
 
    std::cout << std::endl;
    dict->Delete();
-   delete entry;
+   entry->Delete();
 
    //------------------------------------------------------------------
-   dict = gdcm::DictEntry::New(0x0000,0x0000);
-   entry = new gdcm::DataEntry(dict);
+   dict = GDCM_NAME_SPACE::DictEntry::New(0x0000,0x0000);
+   // SetVR *before* making the DataEntry! 
    dict->SetVR("US");
+   entry = GDCM_NAME_SPACE::DataEntry::New(dict);
+
 
    std::cout << "Test for VR = " << dict->GetVR() << "..." << std::endl;
    entry->SetString(data);
@@ -179,8 +191,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetLength()
                 << " - Must be: " << nbvalue*sizeof(uint16_t) << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    if( memcmp(entry->GetString().c_str(),data,strlen(data)) != 0 )
    {
@@ -189,8 +201,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetString().c_str()
                 << " - Must be: " << data << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    if( entry->GetValueCount() != nbvalue )
    {
@@ -199,8 +211,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetValueCount()
                 << " - Must be: " << nbvalue << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    for(i=0;i<entry->GetValueCount();i++)
    {
@@ -211,8 +223,8 @@ int TestDataEntry(int , char *[])
                    << "   Found: " << entry->GetValue(i)
                    << " - Must be: " << svalue[i] << std::endl;
          dict->Delete();
-         delete entry;
-         return(1);
+         entry->Delete();
+         return 1;
       }
    }
 
@@ -229,8 +241,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetString().c_str()
                 << " - Must be: " << data << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    if( entry->GetValueCount() != nbvalue )
    {
@@ -239,8 +251,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetValueCount() 
                 << " - Must be: " << nbvalue << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    for(i=0;i<entry->GetValueCount();i++)
    {
@@ -251,19 +263,19 @@ int TestDataEntry(int , char *[])
                    << "   Found: " << entry->GetValue(i)
                    << " - Must be: " << svalue[i] << std::endl;
          dict->Delete();
-         delete entry;
-         return(1);
+         entry->Delete();
+         return 1;
       }
    }
 
    std::cout << std::endl;
    dict->Delete();
-   delete entry;
+   entry->Delete();
 
    //------------------------------------------------------------------
-   dict = gdcm::DictEntry::New(0x0000,0x0000);
-   entry = new gdcm::DataEntry(dict);
+   dict = GDCM_NAME_SPACE::DictEntry::New(0x0000,0x0000);
    dict->SetVR("UL");
+   entry = GDCM_NAME_SPACE::DataEntry::New(dict);
 
    std::cout << "Test for VR = " << dict->GetVR() << "..." << std::endl;
    entry->SetString(data);
@@ -278,8 +290,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetLength()
                 << " - Must be: " << nbvalue*sizeof(uint32_t) << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    if( memcmp(entry->GetString().c_str(),data,strlen(data)) != 0 )
    {
@@ -288,8 +300,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetString().c_str()
                 << " - Must be: " << data << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    if( entry->GetValueCount() != nbvalue )
    {
@@ -298,8 +310,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetValueCount() 
                 << " - Must be: " << nbvalue << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    for(i=0;i<entry->GetValueCount();i++)
    {
@@ -310,8 +322,8 @@ int TestDataEntry(int , char *[])
                    << "   Found: " << entry->GetValue(i)
                    << " - Must be: " << lvalue[i] << std::endl;
          dict->Delete();
-         delete entry;
-         return(1);
+         entry->Delete();
+         return 1;
       }
    }
 
@@ -328,8 +340,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetString().c_str() 
                 << " - Must be: " << data << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    if( entry->GetValueCount() != nbvalue )
    {
@@ -338,8 +350,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetValueCount() 
                 << " - Must be: " << nbvalue << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    for(i=0;i<entry->GetValueCount();i++)
    {
@@ -350,19 +362,19 @@ int TestDataEntry(int , char *[])
                    << "   Found: " << entry->GetValue(i)
                    << " - Must be: " << lvalue[i] << std::endl;
          dict->Delete();
-         delete entry;
-         return(1);
+         entry->Delete();
+         return 1;
       }
    }
 
    std::cout << std::endl;
    dict->Delete();
-   delete entry;
+   entry->Delete();
 
    //------------------------------------------------------------------
-   dict = gdcm::DictEntry::New(0x0000,0x0000);
-   entry = new gdcm::DataEntry(dict);
+   dict = GDCM_NAME_SPACE::DictEntry::New(0x0000,0x0000);
    dict->SetVR("FL");
+   entry = GDCM_NAME_SPACE::DataEntry::New(dict);
 
    std::cout << "Test for VR = " << dict->GetVR() << "..." << std::endl;
    entry->SetString(fdata);
@@ -377,8 +389,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetLength() 
                 << " - Must be: " << nbvalue*sizeof(float) << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    if( memcmp(entry->GetString().c_str(),fdata,strlen(fdata)) != 0 )
    {
@@ -387,8 +399,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetString().c_str()
                 << " - Must be: " << fdata << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    if( entry->GetValueCount() != nbvalue )
    {
@@ -397,8 +409,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetValueCount() 
                 << " - Must be: " << nbvalue << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    for(i=0;i<entry->GetValueCount();i++)
    {
@@ -409,8 +421,8 @@ int TestDataEntry(int , char *[])
                    << "   Found: " << entry->GetValue(i)
                    << " - Must be: " << fvalue[i] << std::endl;
          dict->Delete();
-         delete entry;
-         return(1);
+         entry->Delete();
+         return 1;
       }
    }
 
@@ -427,8 +439,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetString().c_str()
                 << " - Must be: " << fdata << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    if( entry->GetValueCount() != nbvalue )
    {
@@ -437,8 +449,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetValueCount() 
                 << " - Must be: " << nbvalue << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    for(i=0;i<entry->GetValueCount();i++)
    {
@@ -449,19 +461,19 @@ int TestDataEntry(int , char *[])
                    << "   Found: " << entry->GetValue(i)
                    << " - Must be: " << fvalue[i] << std::endl;
          dict->Delete();
-         delete entry;
-         return(1);
+         entry->Delete();
+         return 1;
       }
    }
 
    std::cout << std::endl;
    dict->Delete();
-   delete entry;
+   entry->Delete();
 
    //------------------------------------------------------------------
-   dict = gdcm::DictEntry::New(0x0000,0x0000);
-   entry = new gdcm::DataEntry(dict);
+   dict = GDCM_NAME_SPACE::DictEntry::New(0x0000,0x0000);
    dict->SetVR("FD");
+   entry = GDCM_NAME_SPACE::DataEntry::New(dict);
 
    std::cout << "Test for VR = " << dict->GetVR() << "..." << std::endl;
    entry->SetString(fdata);
@@ -476,8 +488,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetLength()
                 << " - Must be: " << nbvalue*sizeof(double) << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    if( memcmp(entry->GetString().c_str(),fdata,strlen(fdata)) != 0 )
    {
@@ -486,8 +498,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetString().c_str()
                 << " - Must be: " << fdata << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    if( entry->GetValueCount() != nbvalue )
    {
@@ -496,20 +508,22 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetValueCount() 
                 << " - Must be: " << nbvalue << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    for(i=0;i<entry->GetValueCount();i++)
    {
-      if( entry->GetValue(i) != dvalue[i] )
+      // Never compare floating point value...
+      double dif = fabs(entry->GetValue(i) - dvalue[i]);
+      if( dif > GDCM_EPS)
       {
          std::cout << "   Failed" << std::endl
                    << "   Content of entry's values is incorrect : id " << i << std::endl
                    << "   Found: " << entry->GetValue(i)
                    << " - Must be: " << dvalue[i] << std::endl;
          dict->Delete();
-         delete entry;
-         return(1);
+         entry->Delete();
+         return 1;
       }
    }
 
@@ -526,8 +540,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetString().c_str()
                 << " - Must be: " << fdata << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    if( entry->GetValueCount() != nbvalue )
    {
@@ -536,8 +550,8 @@ int TestDataEntry(int , char *[])
                 << "   Found: " << entry->GetValueCount() 
                 << " - Must be: " << nbvalue << std::endl;
       dict->Delete();
-      delete entry;
-      return(1);
+      entry->Delete();
+      return 1;
    }
    for(i=0;i<entry->GetValueCount();i++)
    {
@@ -548,16 +562,17 @@ int TestDataEntry(int , char *[])
                    << "   Found: " << entry->GetValue(i)
                    << " - Must be: " << dvalue[i] << std::endl;
          dict->Delete();
-         delete entry;
-         return(1);
+         entry->Delete();
+         return 1;
       }
    }
 
    std::cout << std::endl;
    dict->Delete();
-   delete entry;
+   entry->Delete();
 
    //------------------------------------------------------------------
    std::cout<<std::flush;
+   */
    return 0;
 }