]> Creatis software - gdcm.git/blobdiff - Testing/TestAllEntryVerify.cxx
Fix mistypings
[gdcm.git] / Testing / TestAllEntryVerify.cxx
index 4d47772525ecf2230f661be9eac86a198369df7b..8ecd4072e5a33c7a7cf08193ae0f3c48ce15095f 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: TestAllEntryVerify.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/01/08 23:18:30 $
-  Version:   $Revision: 1.19 $
+  Date:      $Date: 2008/09/15 15:49:20 $
+  Version:   $Revision: 1.30 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -15,7 +15,7 @@
      PURPOSE.  See the above copyright notices for more information.
                                                                                 
 =========================================================================*/
-#include "gdcmHeader.h"
+#include "gdcmFile.h"
 
 #include <map>
 #include <list>
 #include <iostream>
 #include <sstream>
 
-//Generated file:
-#include "gdcmDataImages.h"
-
-typedef std::string EntryValueType;   // same type as ValEntry::value
-typedef std::map< gdcm::TagKey, EntryValueType > MapEntryValues;
-typedef MapEntryValues* MapEntryValuesPtr;
+typedef std::string EntryValueType;   // same type as DataEntry::value
+typedef std::map< GDCM_NAME_SPACE::TagKey, EntryValueType > MapEntryValues;
+typedef MapEntryValues *MapEntryValuesPtr;
 typedef std::string FileNameType;
 typedef std::map< FileNameType, MapEntryValuesPtr > MapFileValuesType;
 
@@ -52,29 +49,32 @@ class ReferenceFileParser
 {
 public:
    ReferenceFileParser();
-   bool Open( std::string& referenceFileName );
+   ~ReferenceFileParser();
+
+   bool Open( std::string &referenceFileName );
    void Print();
    void SetDataPath(std::string&);
    bool Check();
    bool Check( std::string fileName );
 
 private:
-   bool AddKeyValuePairToMap( std::string& key, std::string& value );
+   bool AddKeyValuePairToMap( std::string &key, std::string &value );
 
-   std::istream& eatwhite(std::istream& is);
-   void eatwhite(std::stringtoClean);
-   std::string ExtractFirstString(std::stringtoSplit);
-   void CleanUpLine( std::stringline );
+   std::istream &eatwhite(std::istream &is);
+   void eatwhite(std::string &toClean);
+   std::string ExtractFirstString(std::string &toSplit);
+   void CleanUpLine( std::string &line );
 
    bool Check( MapFileValuesType::iterator &fileIt );
-   std::string ExtractValue(std::stringtoSplit)  throw ( ParserException );
-   void ParseRegularLine( std::string& line ) throw ( ParserException );
-   void FirstPassReferenceFile()         throw ( ParserException );
-   bool SecondPassReferenceFile()        throw ( ParserException );
-   void HandleFileName( std::string& line )   throw ( ParserException );
-   void HandleKey( std::string& line )        throw ( ParserException );
-   bool HandleValue( std::string& line )      throw ( ParserException );
+   std::string ExtractValue(std::string &toSplit)  throw ( ParserException );
+   void ParseRegularLine( std::string &line )      throw ( ParserException );
+   void FirstPassReferenceFile()                   throw ( ParserException );
+   bool SecondPassReferenceFile()                  throw ( ParserException );
+   void HandleFileName( std::string &line )        throw ( ParserException );
+   void HandleKey( std::string &line )             throw ( ParserException );
+   bool HandleValue( std::string &line )           throw ( ParserException );
    static uint16_t axtoi( char* );
+
 private:
    /// The directory containing the images to check:
    std::string DataPath;
@@ -101,50 +101,69 @@ private:
    std::string CurrentValue;
 
    /// The current MapEntryValues pointer:
-   MapEntryValuesCurrentMapEntryValuesPtr;
+   MapEntryValues *CurrentMapEntryValuesPtr;
 };
 
-/// As gotten from:
+ReferenceFileParser::ReferenceFileParser()
+{
+   lineNumber = 1;
+   Indent = "      ";
+}
+
+ReferenceFileParser::~ReferenceFileParser()
+{
+   for (MapFileValuesType::iterator i  = ProducedMap.begin();
+                                    i != ProducedMap.end();
+                                  ++i)
+   {
+      delete i->second;
+   }
+}
+
+/// As got from:
 /// http://community.borland.com/article/0,1410,17203,0.html
-uint16_t ReferenceFileParser::axtoi(char *hexStg) {
-  int n = 0;         // position in string
-  int m = 0;         // position in digit[] to shift
-  int count;         // loop index
-  int intValue = 0;  // integer value of hex string
-  int digit[5];      // hold values to convert
-  while (n < 4) {
-     if (hexStg[n]=='\0')
-        break;
-     if (hexStg[n] > 0x29 && hexStg[n] < 0x40 ) //if 0 to 9
-        digit[n] = hexStg[n] & 0x0f;            //convert to int
-     else if (hexStg[n] >='a' && hexStg[n] <= 'f') //if a to f
-        digit[n] = (hexStg[n] & 0x0f) + 9;      //convert to int
-     else if (hexStg[n] >='A' && hexStg[n] <= 'F') //if A to F
-        digit[n] = (hexStg[n] & 0x0f) + 9;      //convert to int
-     else break;
-    n++;
-  }
-  count = n;
-  m = n - 1;
-  n = 0;
-  while(n < count) {
-     // digit[n] is value of hex digit at position n
-     // (m << 2) is the number of positions to shift
-     // OR the bits into return value
-     intValue = intValue | (digit[n] << (m << 2));
-     m--;   // adjust the position to set
-     n++;   // next digit to process
-  }
-  return intValue;
+uint16_t ReferenceFileParser::axtoi(char *hexStg) 
+{
+   int n = 0;         // position in string
+   int m = 0;         // position in digit[] to shift
+   int count;         // loop index
+   int intValue = 0;  // integer value of hex string
+   int digit[5];      // hold values to convert
+   while (n < 4) 
+   {
+      if (hexStg[n]=='\0')
+         break;
+      if (hexStg[n] > 0x29 && hexStg[n] < 0x40 )    //if 0 to 9
+         digit[n] = hexStg[n] & 0x0f;               //convert to int
+      else if (hexStg[n] >='a' && hexStg[n] <= 'f') //if a to f
+         digit[n] = (hexStg[n] & 0x0f) + 9;         //convert to int
+      else if (hexStg[n] >='A' && hexStg[n] <= 'F') //if A to F
+         digit[n] = (hexStg[n] & 0x0f) + 9;         //convert to int
+      else break;
+     n++;
+   }
+   count = n;
+   m = n - 1;
+   n = 0;
+   while(n < count) 
+   {
+      // digit[n] is value of hex digit at position n
+      // (m << 2) is the number of positions to shift
+      // OR the bits into return value
+      intValue = intValue | (digit[n] << (m << 2));
+      m--;   // adjust the position to set
+      n++;   // next digit to process
+   }
+   return (uint16_t)intValue;
 }
 
-void ReferenceFileParser::SetDataPath( std::stringinDataPath )
+void ReferenceFileParser::SetDataPath( std::string &inDataPath )
 {
    DataPath = inDataPath;
 }
 
-bool ReferenceFileParser::AddKeyValuePairToMap( std::stringkey, 
-                                                std::stringvalue )
+bool ReferenceFileParser::AddKeyValuePairToMap( std::string &key, 
+                                                std::string &value )
 {
    if ( !CurrentMapEntryValuesPtr )
       return false;
@@ -159,16 +178,16 @@ void ReferenceFileParser::Print()
 {
    for (MapFileValuesType::iterator i  = ProducedMap.begin();
                                     i != ProducedMap.end();
-                                    ++i)
+                                  ++i)
    {
       std::cout << Indent << "FileName: " << i->first << std::endl;
       MapEntryValuesPtr KeyValues = i->second;
       for (MapEntryValues::iterator j  = KeyValues->begin();
                                     j != KeyValues->end();
-                                    ++j)
+                                  ++j)
       {
          std::cout << Indent
-              << "  Key: " << j->first
+              << "  Key: "   << j->first
               << "  Value: " << j->second
               << std::endl;
       }
@@ -182,7 +201,7 @@ bool ReferenceFileParser::Check()
    bool ret = true;
    for (MapFileValuesType::iterator i  = ProducedMap.begin();
                                     i != ProducedMap.end();
-                                    ++i)
+                                  ++i)
    {
       ret &= Check(i);
    }
@@ -207,7 +226,11 @@ bool ReferenceFileParser::Check( MapFileValuesType::iterator &fileIt )
 {
    std::string fileName = DataPath + fileIt->first;
    std::cout << Indent << "FileName: " << fileName << std::endl;
-   gdcm::Header* tested = new gdcm::Header( fileName.c_str() );
+   
+   GDCM_NAME_SPACE::File *tested;
+   tested = new GDCM_NAME_SPACE::File( );
+   tested->SetFileName( fileName.c_str() );
+   tested->Load( );
    if( !tested->IsReadable() )
    {
      std::cerr << Indent << "Failed\n"
@@ -220,7 +243,7 @@ bool ReferenceFileParser::Check( MapFileValuesType::iterator &fileIt )
    MapEntryValuesPtr KeyValues = fileIt->second;
    for (MapEntryValues::iterator j  = KeyValues->begin();
                                  j != KeyValues->end();
-                                 ++j)
+                               ++j)
    {
       std::string key = j->first;
 
@@ -230,7 +253,7 @@ bool ReferenceFileParser::Check( MapFileValuesType::iterator &fileIt )
       uint16_t group   = axtoi( &(groupString[0]) );
       uint16_t element = axtoi( &(groupElement[0]) );
 
-      std::string testedValue = tested->GetEntry(group, element);
+      std::string testedValue = tested->GetEntryValue(group, element);
       if ( testedValue != j->second )
       {
          // Oops make sure this is only the \0 that differ
@@ -255,7 +278,7 @@ bool ReferenceFileParser::Check( MapFileValuesType::iterator &fileIt )
    return true;
 }
 
-std::istream& ReferenceFileParser::eatwhite( std::istream& is )
+std::istream &ReferenceFileParser::eatwhite( std::istream &is )
 {
    char c;
    while (is.get(c)) {
@@ -267,13 +290,13 @@ std::istream& ReferenceFileParser::eatwhite( std::istream& is )
    return is;
 }
 
-void ReferenceFileParser::eatwhite( std::stringtoClean )
+void ReferenceFileParser::eatwhite( std::string &toClean )
 {
    while( toClean.find_first_of( " " ) == 0  )
       toClean.erase( 0, toClean.find_first_of( " " ) + 1 );
 }
 
-std::string ReferenceFileParser::ExtractFirstString( std::stringtoSplit )
+std::string ReferenceFileParser::ExtractFirstString( std::string &toSplit )
 {
    std::string firstString;
    eatwhite( toSplit );
@@ -288,7 +311,7 @@ std::string ReferenceFileParser::ExtractFirstString( std::string& toSplit )
    return firstString;
 }
 
-std::string ReferenceFileParser::ExtractValue( std::stringtoSplit )
+std::string ReferenceFileParser::ExtractValue( std::string &toSplit )
    throw ( ParserException )
 {
    eatwhite( toSplit );
@@ -455,13 +478,7 @@ void ReferenceFileParser::FirstPassReferenceFile() throw ( ParserException )
    from.seekg( 0, std::ios::beg );
 }
 
-ReferenceFileParser::ReferenceFileParser()
-{
-   lineNumber = 1;
-   Indent = "      ";
-}
-
-bool ReferenceFileParser::Open( std::string& referenceFileName )
+bool ReferenceFileParser::Open( std::string &referenceFileName )
 {
    from.open( referenceFileName.c_str(), std::ios::in );
    if ( !from.is_open() )
@@ -484,7 +501,7 @@ bool ReferenceFileParser::Open( std::string& referenceFileName )
    return true; //??
 }
 
-void ReferenceFileParser::CleanUpLine( std::stringline )
+void ReferenceFileParser::CleanUpLine( std::string &line )
 {
    // Cleanup from comments:
    if ( line.find_first_of( "#" ) != std::string::npos )
@@ -498,7 +515,7 @@ void ReferenceFileParser::CleanUpLine( std::string& line )
    eatwhite( line );
 }
 
-void ReferenceFileParser::HandleFileName( std::stringline )
+void ReferenceFileParser::HandleFileName( std::string &line )
    throw ( ParserException )
 {
    if ( line.length() == 0 )
@@ -510,7 +527,7 @@ void ReferenceFileParser::HandleFileName( std::string& line )
    CurrentFileName = ExtractFirstString(line);
 }
 
-void ReferenceFileParser::HandleKey( std::stringline )
+void ReferenceFileParser::HandleKey( std::string &line )
    throw ( ParserException )
 {
    if ( CurrentKey.length() != 0 )
@@ -525,7 +542,7 @@ void ReferenceFileParser::HandleKey( std::string& line )
    }
 }
 
-bool ReferenceFileParser::HandleValue( std::stringline )
+bool ReferenceFileParser::HandleValue( std::string &line )
    throw ( ParserException )
 {
    if ( line.length() == 0 )
@@ -548,7 +565,7 @@ bool ReferenceFileParser::HandleValue( std::string& line )
    return true;
 }
 
-void ReferenceFileParser::ParseRegularLine( std::stringline)
+void ReferenceFileParser::ParseRegularLine( std::string &line)
    throw ( ParserException )
 {
    if ( line.length() == 0 )
@@ -582,7 +599,7 @@ void ReferenceFileParser::ParseRegularLine( std::string& line)
 bool ReferenceFileParser::SecondPassReferenceFile()
    throw ( ParserException )
 {
-   gdcm::TagKey key;
+   GDCM_NAME_SPACE::TagKey key;
    EntryValueType value;
    std::string line;
    bool inBlock = false;
@@ -632,7 +649,7 @@ bool ReferenceFileParser::SecondPassReferenceFile()
    return true; //??
 }
 
-int TestAllEntryVerify(int argc, charargv[]) 
+int TestAllEntryVerify(int argc, char *argv[]) 
 {
    if ( argc > 2 )
    {