]> Creatis software - gdcm.git/blobdiff - Testing/TestDataEntry.cxx
* Fix memory leaks
[gdcm.git] / Testing / TestDataEntry.cxx
index c6fc0d312f2eb54d4bb0d0b32e153021f0499775..7c2977c65753c98222f4ae888491c78df3577c0b 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: TestDataEntry.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/10/18 19:06:29 $
-  Version:   $Revision: 1.2 $
+  Date:      $Date: 2005/10/20 15:24:05 $
+  Version:   $Revision: 1.5 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -35,11 +35,12 @@ unsigned long nbvalue = 5;
   */  
 int TestDataEntry(int , char *[])
 {
+   unsigned int i;
    gdcm::DictEntry *dict;
    gdcm::DataEntry *entry;
 
    //------------------------------------------------------------------
-   dict = new gdcm::DictEntry(0x0000,0x0000);
+   dict = gdcm::DictEntry::New(0x0000,0x0000);
    entry = new gdcm::DataEntry(dict);
    dict->SetVR("US");
 
@@ -52,8 +53,10 @@ int TestDataEntry(int , char *[])
    if( entry->GetValueCount() != 1 )
    {
       std::cout << "   Failed" << std::endl
-                << "   Number of content values is incorrect" << std::endl;
-      delete dict;
+                << "   Number of content values is incorrect" << std::endl
+                << "   Found: " << entry->GetValueCount() 
+                << " - Must be: 1" << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
@@ -65,8 +68,10 @@ int TestDataEntry(int , char *[])
    if( entry->GetValueCount() != 2 )
    {
       std::cout << "   Failed" << std::endl
-                << "   Number of content values is incorrect" << std::endl;
-      delete dict;
+                << "   Number of content values is incorrect" << std::endl
+                << "   Found: " << entry->GetValueCount() 
+                << " - Must be: 2" << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
@@ -78,18 +83,20 @@ int TestDataEntry(int , char *[])
    if( entry->GetValueCount() != 0 )
    {
       std::cout << "   Failed" << std::endl
-                << "   Number of content values is incorrect" << std::endl;
-      delete dict;
+                << "   Number of content values is incorrect" << std::endl
+                << "   Found: " << entry->GetValueCount() 
+                << " - Must be: 0" << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
 
    std::cout << std::endl;
-   delete dict;
+   dict->Delete();
    delete entry;
 
    //------------------------------------------------------------------
-   dict = new gdcm::DictEntry(0x0000,0x0000);
+   dict = gdcm::DictEntry::New(0x0000,0x0000);
    entry = new gdcm::DataEntry(dict);
    dict->SetVR("LT");
 
@@ -101,16 +108,20 @@ int TestDataEntry(int , char *[])
    if( entry->GetLength() != strlen(data) + strlen(data)%2 )
    {
       std::cout << "   Failed" << std::endl
-                << "   Size of string is incorrect" << std::endl;
-      delete dict;
+                << "   Size of string is incorrect" << std::endl
+                << "   Found: " << entry->GetLength() 
+                << " - Must be: " << strlen(data) + strlen(data)%2 << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
    if( entry->GetValueCount() != nbvalue )
    {
       std::cout << "   Failed" << std::endl
-                << "   Number of content values is incorrect" << std::endl;
-      delete dict;
+                << "   Number of content values is incorrect" << std::endl
+                << "   Found: " << entry->GetValueCount() 
+                << " - Must be: " << nbvalue << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
@@ -118,37 +129,40 @@ int TestDataEntry(int , char *[])
    {
       std::cout << "   Failed" << std::endl
                 << "   Content of bin area is incorrect" << std::endl;
-      delete dict;
+      dict->Delete();
       delete entry;
       return(1);
    }
    if( memcmp(entry->GetString().c_str(),data,entry->GetLength()) != 0 )
    {
       std::cout << "   Failed" << std::endl
-                << "   Content of string is incorrect" << std::endl;
-      delete dict;
+                << "   Content of string is incorrect" << std::endl
+                << "   Found: " << entry->GetString().c_str()
+                << " - Must be: " << data << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
-   for(unsigned int i=0;i<entry->GetValueCount();i++)
+   for(i=0;i<entry->GetValueCount();i++)
    {
       if( entry->GetValue(i) != svalue[i] )
       {
          std::cout << "   Failed" << std::endl
                    << "   Content of entry's values is incorrect : id " << i << std::endl
-                   << "   Found " << entry->GetValue(i) << " - Must be " << svalue[i] << std::endl;
-         delete dict;
+                   << "   Found " << entry->GetValue(i)
+                   << " - Must be " << svalue[i] << std::endl;
+         dict->Delete();
          delete entry;
          return(1);
       }
    }
 
    std::cout << std::endl;
-   delete dict;
+   dict->Delete();
    delete entry;
 
    //------------------------------------------------------------------
-   dict = new gdcm::DictEntry(0x0000,0x0000);
+   dict = gdcm::DictEntry::New(0x0000,0x0000);
    entry = new gdcm::DataEntry(dict);
    dict->SetVR("US");
 
@@ -161,34 +175,42 @@ int TestDataEntry(int , char *[])
    if( entry->GetLength() != nbvalue*sizeof(uint16_t) )
    {
       std::cout << "   Failed" << std::endl
-                << "   BinArea length is incorrect" << std::endl;
-      delete dict;
+                << "   BinArea length is incorrect" << std::endl
+                << "   Found: " << entry->GetLength()
+                << " - Must be: " << nbvalue*sizeof(uint16_t) << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
    if( memcmp(entry->GetString().c_str(),data,strlen(data)) != 0 )
    {
       std::cout << "   Failed" << std::endl
-                << "   Content of string is incorrect" << std::endl;
-      delete dict;
+                << "   Content of string is incorrect" << std::endl
+                << "   Found: " << entry->GetString().c_str()
+                << " - Must be: " << data << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
    if( entry->GetValueCount() != nbvalue )
    {
       std::cout << "   Failed" << std::endl
-                << "   Number of content values is incorrect" << std::endl;
-      delete dict;
+                << "   Number of content values is incorrect" << std::endl
+                << "   Found: " << entry->GetValueCount()
+                << " - Must be: " << nbvalue << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
-   for(unsigned int i=0;i<entry->GetValueCount();i++)
+   for(i=0;i<entry->GetValueCount();i++)
    {
       if( entry->GetValue(i) != svalue[i] )
       {
          std::cout << "   Failed" << std::endl
-                   << "   Content of entry's values is incorrect : id " << i << std::endl;
-         delete dict;
+                   << "   Content of entry's values is incorrect : id " << i << std::endl
+                   << "   Found: " << entry->GetValue(i)
+                   << " - Must be: " << svalue[i] << std::endl;
+         dict->Delete();
          delete entry;
          return(1);
       }
@@ -203,37 +225,43 @@ int TestDataEntry(int , char *[])
    if( memcmp(entry->GetString().c_str(),data,strlen(data)) != 0 )
    {
       std::cout << "   Failed" << std::endl
-                << "   Content of string is incorrect" << std::endl;
-      delete dict;
+                << "   Content of string is incorrect" << std::endl
+                << "   Found: " << entry->GetString().c_str()
+                << " - Must be: " << data << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
    if( entry->GetValueCount() != nbvalue )
    {
       std::cout << "   Failed" << std::endl
-                << "   Number of content values is incorrect" << std::endl;
-      delete dict;
+                << "   Number of content values is incorrect" << std::endl
+                << "   Found: " << entry->GetValueCount() 
+                << " - Must be: " << nbvalue << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
-   for(unsigned int i=0;i<entry->GetValueCount();i++)
+   for(i=0;i<entry->GetValueCount();i++)
    {
       if( entry->GetValue(i) != svalue[i] )
       {
          std::cout << "   Failed" << std::endl
-                   << "   Content of entry's values is incorrect : id " << i << std::endl;
-         delete dict;
+                   << "   Content of entry's values is incorrect : id " << i << std::endl
+                   << "   Found: " << entry->GetValue(i)
+                   << " - Must be: " << svalue[i] << std::endl;
+         dict->Delete();
          delete entry;
          return(1);
       }
    }
 
    std::cout << std::endl;
-   delete dict;
+   dict->Delete();
    delete entry;
 
    //------------------------------------------------------------------
-   dict = new gdcm::DictEntry(0x0000,0x0000);
+   dict = gdcm::DictEntry::New(0x0000,0x0000);
    entry = new gdcm::DataEntry(dict);
    dict->SetVR("UL");
 
@@ -246,35 +274,42 @@ int TestDataEntry(int , char *[])
    if( entry->GetLength() != nbvalue*sizeof(uint32_t) )
    {
       std::cout << "   Failed" << std::endl
-                << "   BinArea length is incorrect" << std::endl;
-      delete dict;
+                << "   BinArea length is incorrect" << std::endl
+                << "   Found: " << entry->GetLength()
+                << " - Must be: " << nbvalue*sizeof(uint32_t) << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
    if( memcmp(entry->GetString().c_str(),data,strlen(data)) != 0 )
    {
       std::cout << "   Failed" << std::endl
-                << "   Content of string is incorrect" << std::endl;
-      std::cout<<"#"<<entry->GetString()<<"#"<<" / "<<"#"<<data<<"#"<<std::endl;
-      delete dict;
+                << "   Content of string is incorrect" << std::endl
+                << "   Found: " << entry->GetString().c_str()
+                << " - Must be: " << data << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
    if( entry->GetValueCount() != nbvalue )
    {
       std::cout << "   Failed" << std::endl
-                << "   Number of content values is incorrect" << std::endl;
-      delete dict;
+                << "   Number of content values is incorrect" << std::endl
+                << "   Found: " << entry->GetValueCount() 
+                << " - Must be: " << nbvalue << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
-   for(unsigned int i=0;i<entry->GetValueCount();i++)
+   for(i=0;i<entry->GetValueCount();i++)
    {
       if( entry->GetValue(i) != lvalue[i] )
       {
          std::cout << "   Failed" << std::endl
-                   << "   Content of entry's values is incorrect : id " << i << std::endl;
-         delete dict;
+                   << "   Content of entry's values is incorrect : id " << i << std::endl
+                   << "   Found: " << entry->GetValue(i)
+                   << " - Must be: " << lvalue[i] << std::endl;
+         dict->Delete();
          delete entry;
          return(1);
       }
@@ -289,37 +324,43 @@ int TestDataEntry(int , char *[])
    if( memcmp(entry->GetString().c_str(),data,strlen(data)) != 0 )
    {
       std::cout << "   Failed" << std::endl
-                << "   Content of string is incorrect" << std::endl;
-      delete dict;
+                << "   Content of string is incorrect" << std::endl
+                << "   Found: " << entry->GetString().c_str() 
+                << " - Must be: " << data << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
    if( entry->GetValueCount() != nbvalue )
    {
       std::cout << "   Failed" << std::endl
-                << "   Number of content values is incorrect" << std::endl;
-      delete dict;
+                << "   Number of content values is incorrect" << std::endl
+                << "   Found: " << entry->GetValueCount() 
+                << " - Must be: " << nbvalue << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
-   for(unsigned int i=0;i<entry->GetValueCount();i++)
+   for(i=0;i<entry->GetValueCount();i++)
    {
       if( entry->GetValue(i) != lvalue[i] )
       {
          std::cout << "   Failed" << std::endl
-                   << "   Content of entry's values is incorrect : id " << i << std::endl;
-         delete dict;
+                   << "   Content of entry's values is incorrect : id " << i << std::endl
+                   << "   Found: " << entry->GetValue(i)
+                   << " - Must be: " << lvalue[i] << std::endl;
+         dict->Delete();
          delete entry;
          return(1);
       }
    }
 
    std::cout << std::endl;
-   delete dict;
+   dict->Delete();
    delete entry;
 
    //------------------------------------------------------------------
-   dict = new gdcm::DictEntry(0x0000,0x0000);
+   dict = gdcm::DictEntry::New(0x0000,0x0000);
    entry = new gdcm::DataEntry(dict);
    dict->SetVR("FL");
 
@@ -332,34 +373,42 @@ int TestDataEntry(int , char *[])
    if( entry->GetLength() != nbvalue*sizeof(float) )
    {
       std::cout << "   Failed" << std::endl
-                << "   BinArea length is incorrect" << std::endl;
-      delete dict;
+                << "   BinArea length is incorrect" << std::endl
+                << "   Found: " << entry->GetLength() 
+                << " - Must be: " << nbvalue*sizeof(float) << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
    if( memcmp(entry->GetString().c_str(),fdata,strlen(fdata)) != 0 )
    {
       std::cout << "   Failed" << std::endl
-                << "   Content of string is incorrect" << std::endl;
-      delete dict;
+                << "   Content of string is incorrect" << std::endl
+                << "   Found: " << entry->GetString().c_str()
+                << " - Must be: " << fdata << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
    if( entry->GetValueCount() != nbvalue )
    {
       std::cout << "   Failed" << std::endl
-                << "   Number of content values is incorrect" << std::endl;
-      delete dict;
+                << "   Number of content values is incorrect" << std::endl
+                << "   Found: " << entry->GetValueCount() 
+                << " - Must be: " << nbvalue << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
-   for(unsigned int i=0;i<entry->GetValueCount();i++)
+   for(i=0;i<entry->GetValueCount();i++)
    {
       if( entry->GetValue(i) != fvalue[i] )
       {
          std::cout << "   Failed" << std::endl
-                   << "   Content of entry's values is incorrect : id " << i << std::endl;
-         delete dict;
+                   << "   Content of entry's values is incorrect : id " << i << std::endl
+                   << "   Found: " << entry->GetValue(i)
+                   << " - Must be: " << fvalue[i] << std::endl;
+         dict->Delete();
          delete entry;
          return(1);
       }
@@ -374,37 +423,43 @@ int TestDataEntry(int , char *[])
    if( memcmp(entry->GetString().c_str(),fdata,strlen(fdata)) != 0 )
    {
       std::cout << "   Failed" << std::endl
-                << "   Content of string is incorrect" << std::endl;
-      delete dict;
+                << "   Content of string is incorrect" << std::endl
+                << "   Found: " << entry->GetString().c_str()
+                << " - Must be: " << fdata << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
    if( entry->GetValueCount() != nbvalue )
    {
       std::cout << "   Failed" << std::endl
-                << "   Number of content values is incorrect" << std::endl;
-      delete dict;
+                << "   Number of content values is incorrect" << std::endl
+                << "   Found: " << entry->GetValueCount() 
+                << " - Must be: " << nbvalue << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
-   for(unsigned int i=0;i<entry->GetValueCount();i++)
+   for(i=0;i<entry->GetValueCount();i++)
    {
       if( entry->GetValue(i) != fvalue[i] )
       {
          std::cout << "   Failed" << std::endl
-                   << "   Content of entry's values is incorrect : id " << i << std::endl;
-         delete dict;
+                   << "   Content of entry's values is incorrect : id " << i << std::endl
+                   << "   Found: " << entry->GetValue(i)
+                   << " - Must be: " << fvalue[i] << std::endl;
+         dict->Delete();
          delete entry;
          return(1);
       }
    }
 
    std::cout << std::endl;
-   delete dict;
+   dict->Delete();
    delete entry;
 
    //------------------------------------------------------------------
-   dict = new gdcm::DictEntry(0x0000,0x0000);
+   dict = gdcm::DictEntry::New(0x0000,0x0000);
    entry = new gdcm::DataEntry(dict);
    dict->SetVR("FD");
 
@@ -417,34 +472,42 @@ int TestDataEntry(int , char *[])
    if( entry->GetLength() != nbvalue*sizeof(double) )
    {
       std::cout << "   Failed" << std::endl
-                << "   BinArea length is incorrect" << std::endl;
-      delete dict;
+                << "   BinArea length is incorrect" << std::endl
+                << "   Found: " << entry->GetLength()
+                << " - Must be: " << nbvalue*sizeof(double) << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
    if( memcmp(entry->GetString().c_str(),fdata,strlen(fdata)) != 0 )
    {
       std::cout << "   Failed" << std::endl
-                << "   Content of string is incorrect" << std::endl;
-      delete dict;
+                << "   Content of string is incorrect" << std::endl
+                << "   Found: " << entry->GetString().c_str()
+                << " - Must be: " << fdata << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
    if( entry->GetValueCount() != nbvalue )
    {
       std::cout << "   Failed" << std::endl
-                << "   Number of content values is incorrect" << std::endl;
-      delete dict;
+                << "   Number of content values is incorrect" << std::endl
+                << "   Found: " << entry->GetValueCount() 
+                << " - Must be: " << nbvalue << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
-   for(unsigned int i=0;i<entry->GetValueCount();i++)
+   for(i=0;i<entry->GetValueCount();i++)
    {
       if( entry->GetValue(i) != dvalue[i] )
       {
          std::cout << "   Failed" << std::endl
-                   << "   Content of entry's values is incorrect : id " << i << std::endl;
-         delete dict;
+                   << "   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);
       }
@@ -459,33 +522,39 @@ int TestDataEntry(int , char *[])
    if( memcmp(entry->GetString().c_str(),fdata,strlen(fdata)) != 0 )
    {
       std::cout << "   Failed" << std::endl
-                << "   Content of string is incorrect" << std::endl;
-      delete dict;
+                << "   Content of string is incorrect" << std::endl
+                << "   Found: " << entry->GetString().c_str()
+                << " - Must be: " << fdata << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
    if( entry->GetValueCount() != nbvalue )
    {
       std::cout << "   Failed" << std::endl
-                << "   Number of content values is incorrect" << std::endl;
-      delete dict;
+                << "   Number of content values is incorrect" << std::endl
+                << "   Found: " << entry->GetValueCount() 
+                << " - Must be: " << nbvalue << std::endl;
+      dict->Delete();
       delete entry;
       return(1);
    }
-   for(unsigned int i=0;i<entry->GetValueCount();i++)
+   for(i=0;i<entry->GetValueCount();i++)
    {
       if( entry->GetValue(i) != dvalue[i] )
       {
          std::cout << "   Failed" << std::endl
-                   << "   Content of entry's values is incorrect : id " << i << std::endl;
-         delete dict;
+                   << "   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);
       }
    }
 
    std::cout << std::endl;
-   delete dict;
+   dict->Delete();
    delete entry;
 
    //------------------------------------------------------------------