]> Creatis software - gdcm.git/blobdiff - Testing/TestAllEntryVerify.cxx
* Test/TestCopyDicom.cxx : avoid compilation warnings.
[gdcm.git] / Testing / TestAllEntryVerify.cxx
index 0ccc070f6353efb33afa8d292c28d1840f98479a..0490f35291a66e7a0d57a4e60733ad00efa30d35 100644 (file)
@@ -1,3 +1,20 @@
+/*=========================================================================
+                                                                                
+  Program:   gdcm
+  Module:    $RCSfile: TestAllEntryVerify.cxx,v $
+  Language:  C++
+  Date:      $Date: 2004/11/16 04:28:20 $
+  Version:   $Revision: 1.14 $
+                                                                                
+  Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
+  l'Image). All rights reserved. See Doc/License.txt or
+  http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details.
+                                                                                
+     This software is distributed WITHOUT ANY WARRANTY; without even
+     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+     PURPOSE.  See the above copyright notices for more information.
+                                                                                
+=========================================================================*/
 #include "gdcmHeader.h"
 
 #include <map>
@@ -9,7 +26,7 @@
 #include "gdcmDataImages.h"
 
 typedef std::string EntryValueType;   // same type as ValEntry::value
-typedef std::map< TagKey, EntryValueType > MapEntryValues;
+typedef std::map< gdcm::TagKey, EntryValueType > MapEntryValues;
 typedef MapEntryValues* MapEntryValuesPtr;
 typedef std::string FileNameType;
 typedef std::map< FileNameType, MapEntryValuesPtr > MapFileValuesType;
@@ -194,11 +211,19 @@ bool ReferenceFileParser::Check()
          std::string testedValue = tested->GetEntryByNumber(group, element);
          if ( testedValue != j->second )
          {
-            std::cout << Indent << "Uncorrect value for key " << key << std::endl
-                 << Indent << "   read value [" << testedValue << "]" << std::endl
-                 << Indent << "   reference value [" << j->second << "]"
-                           << std::endl;
+            // Oops make sure this is only the \0 that differ
+            if( testedValue[j->second.size()] != '\0' ||
+                strncmp(testedValue.c_str(), 
+                        j->second.c_str(), j->second.size()) != 0)
+            {
+               std::cout << Indent << "Uncorrect value for key " 
+                         << key << std::endl
+                         << Indent << "   read value      [" 
+                         << testedValue << "]" << std::endl
+                         << Indent << "   reference value [" 
+                         << j->second << "]" << std::endl;
             return false;
+            }
          }
       }
       delete tested;
@@ -533,7 +558,7 @@ void ReferenceFileParser::ParseRegularLine( std::string& line)
 bool ReferenceFileParser::SecondPassReferenceFile()
    throw ( ParserException )
 {
-   TagKey key;
+   gdcm::TagKey key;
    EntryValueType value;
    std::string line;
    bool inBlock = false;