From: jpr Date: Thu, 22 Sep 2005 08:41:27 +0000 (+0000) Subject: Add TestLoadAllDocumentsNoPrivNoSeq, to improve test coverage X-Git-Tag: Version1.2.bp~60 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=c0c5bfb957dea6d15ee118636fa61aa0ef3dce31;p=gdcm.git Add TestLoadAllDocumentsNoPrivNoSeq, to improve test coverage --- diff --git a/Testing/CMakeLists.txt b/Testing/CMakeLists.txt index 994e37be..1bbf6365 100644 --- a/Testing/CMakeLists.txt +++ b/Testing/CMakeLists.txt @@ -27,6 +27,7 @@ IF (GDCM_DATA_ROOT) SET(TEST_SOURCES ${TEST_SOURCES} TestFileAccessors.cxx TestMakeIcon.cxx + TestLoadAllDocumentsNoPrivNoSeq.cxx # includes generated gdcmDataImages.h TestPrintAllDocument.cxx # includes generated gdcmDataImages.h #TestAllEntryVerify.cxx # includes generated gdcmDataImages.h TestAllReadCompareDicom.cxx # includes generated gdcmDataImages.h diff --git a/Testing/TestLoadAllDocumentsNoPrivNoSeq.cxx b/Testing/TestLoadAllDocumentsNoPrivNoSeq.cxx new file mode 100644 index 00000000..1ebb32ba --- /dev/null +++ b/Testing/TestLoadAllDocumentsNoPrivNoSeq.cxx @@ -0,0 +1,132 @@ +/*========================================================================= + + Program: gdcm + Module: $RCSfile: TestLoadAllDocumentsNoPrivNoSeq.cxx,v $ + Language: C++ + Date: $Date: 2005/09/22 08:41:27 $ + Version: $Revision: 1.1 $ + + 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. + +=========================================================================*/ + +// TODO : check what's *actually* usefull + +#include "gdcmDictEntry.h" +#include "gdcmDict.h" +#include "gdcmDictSet.h" +#include "gdcmFile.h" +#include "gdcmUtil.h" +#include "gdcmCommon.h" +#include "gdcmBinEntry.h" +#include "gdcmDocEntry.h" +#include "gdcmDocEntrySet.h" +#include "gdcmDocument.h" +#include "gdcmElementSet.h" +#include "gdcmSeqEntry.h" +#include "gdcmSQItem.h" +#include "gdcmValEntry.h" +#include "gdcmOrientation.h" +#include +#include +#include // for std::ios::left, ... + +//Generated file: +#include "gdcmDataImages.h" + +int TestLoadAllDocumentsNoPrivNoSeq(int, char *[]) +{ + //std::ostringstream s; + int i = 0; + //int swapC; + //unsigned int j; + std::string pixelType, photomInterp; + int l; + l = strlen("PALETTE COLOR "); + while( gdcmDataImages[i] != 0 ) + { + std::string filename = GDCM_DATA_ROOT; + filename += "/"; //doh! + filename += gdcmDataImages[i]; + + gdcm::File *f= new gdcm::File( ); + f->SetFileName( filename ); + // just to improve coverage + f->SetLoadMode (gdcm::LD_NOSEQ|gdcm::LD_NOSHADOW); + f->Load(); + +/* + f->SetPrintLevel(2); + f->Print(); + // just to be able to grep the display result, for some usefull info + + //s.setf(std::ios::left); + //s << std::setw(60-filename.length()) << " "; + //std::cout << s.str() << gdcmDataImages[i]; + + std::cout << gdcmDataImages[i]; + + unsigned int nbSpaces; + if (strlen(gdcmDataImages[i]) <= 60) + nbSpaces = 60-strlen(gdcmDataImages[i]); + else + nbSpaces = 0; + for (j=0; jGetPixelType(); + std::cout << " pixelType=" << pixelType; + if ( pixelType == "8U" || pixelType == "8S" ) + std::cout << " "; + std::cout << " Smpl.P.Pix.=" << f->GetSamplesPerPixel() + << " Plan.Config.=" << f->GetPlanarConfiguration(); + + photomInterp = f->GetEntryValue(0x0028,0x0004); + std::cout << " Photom.Interp.=" << photomInterp; + for (j=0; jGetTransferSyntaxName() << "]" ; + + swapC = f->GetSwapCode(); + if ( swapC != 1234 ) + std::cout << " SwapCode = " << f->GetSwapCode(); + if ( f->CheckIfEntryExist(0x0088,0x0200) ) + std::cout << " Icon Image Sequence"; + + std::cout << std::endl; + + std::string strImageOrientationPatient = + f->GetEntryValue(0x0020,0x0037); + if ( strImageOrientationPatient != gdcm::GDCM_UNFOUND ) + { + gdcm::Orientation o; + double orient = o.TypeOrientation( f ); + std::cout << " ---------------------- Orientation " << orient + << std::endl; + } + + if( f->IsReadable() ) + { + std::cout <