if ( CurrentMapEntryValuesPtr->count(key) != 0 )
return false;
(*CurrentMapEntryValuesPtr)[key] = value;
+
+ return true; //??
}
void ReferenceFileParser::Print()
{
string fileName = DataPath + i->first;
cout << Indent << "FileName: " << fileName << endl;
- gdcmHeader* tested = new gdcmHeader( fileName.c_str(), false, true );
+ gdcmHeader* tested = new gdcmHeader( fileName.c_str() );
if( !tested->IsReadable() )
{
cerr << Indent << "Image not gdcm compatible:"
if ( testedValue != j->second )
{
cout << Indent << "Uncorrect value for key " << key << endl
- << Indent << " read value " << testedValue << endl
- << Indent << " reference value " << j->second << endl;
+ << Indent << " read value [" << testedValue << "]" << endl
+ << Indent << " reference value [" << j->second << "]"
+ << endl;
return false;
}
}
delete tested;
- cout << Indent << endl;
+ cout << Indent << " OK" << endl;
}
cout << Indent << endl;
+ return true;
}
istream& ReferenceFileParser::eatwhite( istream& is )
string::size_type beginPos = toSplit.find_first_of( '"' );
string::size_type endPos = toSplit.find_last_of( '"' );
- // Make sure we have at most to " in toSplit:
+ // Make sure we have at most two " in toSplit:
string noQuotes = toSplit.substr( beginPos + 1, endPos - beginPos - 1);
if ( noQuotes.find_first_of( '"' ) != string::npos )
throw ParserException( "more than two quote character" );
// Uncommented line outside of block is not clean:
if ( !inBlock && !beginBlock )
{
- cerr << Indent
- << "Syntax warning: outside of block [] data at line "
- << lineNumber++ << " not considered." << endl;
continue;
}
}
from.close();
+ return true; //??
}
void ReferenceFileParser::CleanUpLine( string& line )
if ( line.find_last_of( "]" ) != string::npos )
line.erase( line.find_last_of( "]" ) + 1 );
- // Cleanup leanding whites and skip empty lines:
+ // Cleanup leading whites and skip empty lines:
eatwhite( line );
}
string newCurrentValue = ExtractValue(line);
if ( newCurrentValue.length() == 0 )
{
- ostringstream error;
- error << "missing value for key:" << CurrentKey;
- throw ParserException( error.str() );
+ cout << Indent << "Warning: empty value for key:"
+ << CurrentKey << endl;
}
CurrentValue += newCurrentValue;
ParseRegularLine( line );
}
+ return true; //??
}
int TestAllEntryVerify(int argc, char* argv[])
<< " (no arguments needed)." << endl;
return 1;
}
-
- cout << " Description (Test::TestAllEntryVerify): "
- << endl;
- cout << " For all images in gdcmData (and not blacklisted in "
- "Test/CMakeLists.txt)"
- << endl;
- cout << " apply the following to each filename.xxx: "
- << endl;
- cout << " step 1: parse the image (as gdcmHeader) and call"
- << " IsReadable(). "
- << endl;
string referenceDir = GDCM_DATA_ROOT;
referenceDir += "/";
string referenceFilename = referenceDir + "TestAllEntryVerifyReference.txt";
+
+ cout << " Description (Test::TestAllEntryVerify): "
+ << endl;
+ cout << " For all images (not blacklisted in gdcm/Test/CMakeLists.txt)"
+ << endl;
+ cout << " encountered in directory: " << GDCM_DATA_ROOT << endl;
+ cout << " apply the following tests : "<< endl;
+ cout << " step 1: parse the image and call IsReadable(). " << endl;
+ cout << " step 2: look for the entry corresponding to the image" << endl;
+ cout << " in the reference file: " << referenceFilename << endl;
+ cout << " step 3: check that each reference tag value listed for this"
+ << endl;
+ cout << " entry matches the tag encountered at parsing step 1."
+ << endl << endl;
ReferenceFileParser Parser;
- Parser.Open(referenceFilename);
- Parser.SetDataPath(referenceDir);
- // Parser.Print();
- Parser.Check();
-/*
- int i = 0;
- while( gdcmDataImages[i] != 0 )
+ if ( !Parser.Open(referenceFilename) )
{
- string filename = GDCM_DATA_ROOT;
- filename += "/"; //doh!
- filename += gdcmDataImages[i++];
-
- cout << " Testing: " << filename << endl;
-
- gdcmHeader* tested = new gdcmHeader( filename.c_str(), false, true );
- if( !tested->GetHeader()->IsReadable() )
- {
- cout << " Image not gdcm compatible:"
- << filename << endl;
- delete tested;
- return 1;
- }
-
- //////////////// Clean up:
- delete tested;
+ cout << " Corrupted reference file name: "
+ << referenceFilename << endl;
+ return 1;
}
-*/
-
- return 0;
+ Parser.SetDataPath(referenceDir);
+ // Parser.Print();
+ if ( Parser.Check() )
+ return 0;
+ return 1;
}