From c74bc8cb4308864bd6e9c4f1bdf96d7af51c0ef2 Mon Sep 17 00:00:00 2001 From: jpr Date: Thu, 3 Feb 2005 09:51:53 +0000 Subject: [PATCH] To improve test coverage --- Testing/CMakeLists.txt | 1 + Testing/TestFileAccessors.cxx | 135 ++++++++++++++++++++++++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 Testing/TestFileAccessors.cxx diff --git a/Testing/CMakeLists.txt b/Testing/CMakeLists.txt index 90c7f0df..5f53ece9 100644 --- a/Testing/CMakeLists.txt +++ b/Testing/CMakeLists.txt @@ -22,6 +22,7 @@ SET(TEST_SOURCES # add tests that require data IF (GDCM_DATA_ROOT) SET(TEST_SOURCES ${TEST_SOURCES} + TestFileAccessors.cxx TestReadWriteReadCompare.cxx # includes generated gdcmDataImages.h TestPrintAllDocument.cxx # includes generated gdcmDataImages.h TestAllReadCompareDicom.cxx # includes generated gdcmDataImages.h diff --git a/Testing/TestFileAccessors.cxx b/Testing/TestFileAccessors.cxx new file mode 100644 index 00000000..5a55f106 --- /dev/null +++ b/Testing/TestFileAccessors.cxx @@ -0,0 +1,135 @@ +/*========================================================================= + + Program: gdcm + Module: $RCSfile: TestFileAccessors.cxx,v $ + Language: C++ + Date: $Date: 2005/02/03 09:51:53 $ + 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 "gdcmFileHelper.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 + +//Generated file: +#include "gdcmDataImages.h" + +int TestFileAccessors(int, char *[]) +{ + int i = 0; + + float iop[6]; + + while( gdcmDataImages[i] != 0 ) + { + std::string filename = GDCM_DATA_ROOT; + filename += "/"; //doh! + filename += gdcmDataImages[i]; + + gdcm::File *e1= new gdcm::File( filename ); + +// We don't check the returned values +// We just want to be sure no accessor seg faults on any image ... +// And this will improve test coverage ;-) + + std::cout << "GetSwapCode()" << e1->GetSwapCode() << std::endl; + std::cout << "GetImageNumber()" << e1->GetImageNumber() << std::endl; + std::cout << "GetModality()" << e1->GetModality() << std::endl; + std::cout << "GetXSize()" << e1->GetXSize() << std::endl; + std::cout << "GetYSize()" << e1->GetYSize() << std::endl; + std::cout << "GetZSize()" << e1->GetZSize() << std::endl; + std::cout << "GetXSpacing()" << e1->GetXSpacing() << std::endl; + std::cout << "GetYSpacing()" << e1->GetYSpacing() << std::endl; + std::cout << "GetZSpacing()" << e1->GetZSpacing() << std::endl; + std::cout << "GetXOrigin()" << e1->GetXOrigin() << std::endl; + std::cout << "GetYOrigin()" << e1->GetYOrigin() << std::endl; + std::cout << "GetZOrigin()" << e1->GetZOrigin() << std::endl; + std::cout << "GetBitsStored()" << e1->GetBitsStored() << std::endl; + std::cout << "GetBitsAllocated()" << e1->GetBitsAllocated() << std::endl; + std::cout << "GetHighBitPosition()" << e1->GetHighBitPosition() << std::endl; + std::cout << "GetSamplesPerPixel()" << e1->GetSamplesPerPixel() << std::endl; + std::cout << "GetPlanarConfiguration()" << e1->GetPlanarConfiguration() << std::endl; + std::cout << "GetPixelSize()" << e1->GetPixelSize() << std::endl; + std::cout << "GetPixelType()" << e1->GetPixelType() << std::endl; + std::cout << "GetLUTNbits()" << e1->GetLUTNbits() << std::endl; + std::cout << "GetRescaleIntercept()" << e1->GetRescaleIntercept() << std::endl; + std::cout << "GetRescaleSlope()" << e1->GetRescaleSlope() << std::endl; + std::cout << "GetGrPixel()" << std::hex << e1->GetGrPixel() << std::endl; + std::cout << "GetNumPixel()" << std::hex << e1->GetNumPixel() << std::endl; + std::cout << "GetPixelOffset()" << e1->GetPixelOffset() << std::endl; + + std::cout << "GetPixelAreaLength()" << e1->GetPixelAreaLength()<< std::endl; + std::cout << "GetNumberOfScalarComponents()" << e1->GetNumberOfScalarComponents()<< std::endl; + std::cout << "GetNumberOfScalarComponentsRaw()" << e1->GetNumberOfScalarComponentsRaw()<< std::endl; + std::cout << "IsSignedPixelData()" << e1->IsSignedPixelData()<< std::endl; + std::cout << "IsMonochrome()" << e1->IsMonochrome() << std::endl; + std::cout << "IsPaletteColor()" << e1->IsPaletteColor() << std::endl; + std::cout << "IsYBRFull()" << e1->IsYBRFull() << std::endl; + std::cout << "HasLut() " << e1->HasLUT() << std::endl; + std::cout << "GetTransferSyntax()" << e1->GetTransferSyntax() << std::endl; + std::cout << "GetTransferSyntaxName()" << e1->GetTransferSyntaxName() << std::endl; + std::cout << "GetFileType()" << e1->GetFileType() << std::endl; + std::cout << "GetFileName()" << e1->GetFileName() << std::endl; + + e1->GetImageOrientationPatient( iop ); + for (int j=0; j<6; j++) + std::cout << "iop[" << j << "] = " << iop[j] << std::endl; + + if( e1->IsReadable() ) + { + std::cout <GetImageDataSize() << std::endl; + std::cout << "GetImageDataRawSize()" << fh1->GetImageDataRawSize() << std::endl; + // User Data + std::cout << "GetRGBDataSize()" << fh1->GetRGBDataSize() << std::endl; + std::cout << "GetRawDataSize()" << fh1->GetRawDataSize() << std::endl; + std::cout << "GetUserDataSize()" << fh1->GetUserDataSize() << std::endl; + + std::cout << "GetWriteType()" << fh1->GetWriteType() << std::endl; + + delete fh1; + } + else + { + std::cout << filename << " is NOT Readable" + << std::endl << std::endl; + delete e1; + return 1; + } + + delete e1; + i++; + } + return 0; +} -- 2.45.1