]> Creatis software - gdcm.git/blobdiff - Testing/TestFileAccessors.cxx
Fix mistypings
[gdcm.git] / Testing / TestFileAccessors.cxx
index a6251ca5327d3c25ba3ac946ae66bee690be40ea..a685a593f6d89729f9f062b493f7e17e02f8715c 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: TestFileAccessors.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/10/18 08:35:46 $
-  Version:   $Revision: 1.3 $
+  Date:      $Date: 2008/09/15 15:49:21 $
+  Version:   $Revision: 1.12 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
 //Generated file:
 #include "gdcmDataImages.h"
 
-#define TestMethodMacro(mode,obj,name) \
-   try \
-   { \
-      std::cout << "   " << #name << "() : "      << mode << obj->name() << std::endl; \
-   } \
-   catch(...) \
-   { \
-      std::cout << "   --> Can't access to the '" << #name << "' method !" << std::endl; \
-      delete f; \
-      return 1; \
+#define TestMethodMacro(mode,obj,name)                \
+   try                                                \
+   {                                                  \
+      std::cout <<"   "<< #name << "() : "            \
+                << std::endl;                         \
+      std::cout << "                     "            \
+                << mode << obj->name() << std::endl;  \
+   }                                                  \
+   catch(...)                                         \
+   {                                                  \
+      std::cout << "   --> Can't access to the '"     \
+                << #name << "' method !" << std::endl;\
+      f->Delete();                                    \
+      return 1;                                       \
    }
 
-
-int TestFileAccessors(int, char *[])
+int TestFileAccessors(int argc, char *argv[])
 {
    int i = 0;
 
    float iop[6];
+   float ipp[3];
 
+  // GDCM_NAME_SPACE::Debug::DebugOn();
+   
    while( gdcmDataImages[i] != 0 )
    {
-      std::string filename = GDCM_DATA_ROOT;
-      filename += "/";  //doh!
-      filename += gdcmDataImages[i];
+   
+     // Keep the comment to be able to track a bug on a given image
+     // for all the OS.
+     
+     // if (gdcmDataImages[i] == "00191113.dcm" )
+     //    GDCM_NAME_SPACE::Debug::DebugOn();
+     // else
+     //    GDCM_NAME_SPACE::Debug::DebugOff();
+
+      std::string filename;      
+      if (argc ==2)
+      {
+         filename = argv[1];
+      }
+      else
+      {
+         filename = GDCM_DATA_ROOT;
+         filename += "/";  //doh!      
+         filename += gdcmDataImages[i];
+      }
       
-      std::cout << "Begin with " << filename << std::endl;
-      gdcm::File *f= new gdcm::File( );
+      std::cout << " ----------------------------------------------"
+                << "Begin with " << filename << std::endl;
+
+      GDCM_NAME_SPACE::File *f= GDCM_NAME_SPACE::File::New( );
       f->SetFileName( filename );
       f->Load( );
 
@@ -111,15 +136,20 @@ int TestFileAccessors(int, char *[])
       TestMethodMacro(std::dec,f,GetFileName)
 
       f->GetImageOrientationPatient( iop );
+      std::cout << "   Orientation:" << std::endl;
       for (int j=0; j<6; j++)
-         std::cout << "iop[" << j << "] = " << iop[j] << std::endl;
+         std::cout << "      iop[" << j << "] = " << iop[j] << std::endl;
+      f->GetImagePositionPatient( ipp );
+      std::cout << "   Position:" << std::endl;
+      for (int j2=0; j2<3; j2++)
+         std::cout << "      ipp[" << j2 << "] = " << ipp[j2] << std::endl; 
 
       if( f->IsReadable() )
       {
-         std::cout <<filename   << " is Readable" 
-                   << std::endl << std::endl;
+         std::cout << "   " << filename << " is Readable" << std::endl;
 
-         gdcm::FileHelper *fh= new gdcm::FileHelper( f );   
+         GDCM_NAME_SPACE::FileHelper *fh= GDCM_NAME_SPACE::FileHelper::New( f );   
 
          TestMethodMacro(std::dec,fh,GetImageDataSize)
          TestMethodMacro(std::dec,fh,GetImageDataRawSize)
@@ -128,18 +158,20 @@ int TestFileAccessors(int, char *[])
          TestMethodMacro(std::dec,fh,GetUserDataSize)
          TestMethodMacro(std::dec,fh,GetWriteType)
  
-         delete fh;
+         fh->Delete();
       }
       else
       {
          std::cout << filename << " is NOT Readable" 
                    << std::endl << std::endl;
-         delete f;
+         f->Delete();
          return 1;
       }
+      f->Delete();
+
+      if (argc ==2)
+         break; // user asked to check a single file.
 
-      delete f;
-      std::cout << "End with " << filename << std::endl;
       i++;
    }
    return 0;