1 /*=========================================================================
4 Module: $RCSfile: TestUtil.cxx,v $
6 Date: $Date: 2005/08/22 15:38:04 $
7 Version: $Revision: 1.15 $
9 Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
10 l'Image). All rights reserved. See Doc/License.txt or
11 http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details.
13 This software is distributed WITHOUT ANY WARRANTY; without even
14 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 PURPOSE. See the above copyright notices for more information.
17 =========================================================================*/
18 // This test should test everything in Util, since I didn't know any other
19 // way to test this class.
22 #include "gdcmDebug.h"
25 int TestUtil(int , char *[])
29 // Seeing at a glance HOW int16, int32, float, double,
30 // are implanted in memory
31 uint16_t u16 = 0x0102;
32 uint32_t u32 = 0x01020304;
36 std::cout << "This is gdcm version: " << gdcm::Util::GetVersion() << std::endl;
38 std::cout << "---------- uint16 : " << std::dec <<u16 << " = 0x"
39 << std::hex << u16 << std::endl;
40 for (i=0;i<sizeof(uint16_t);i++)
42 std::cout << std::hex <<"[" <<(uint16_t)((uint8_t*)&u16)[i] << "] " ;
43 // printf("[%0x]\n",((uint8_t*)&u16)[i]);
45 std::cout << std::endl;
47 std::cout << "---------- unit32 : "<< std::dec << u32 << " = 0x"
48 << std::hex << u32 << std::endl;
49 for (i=0;i<sizeof(uint32_t);i++)
51 std::cout << std::hex <<"[" <<(uint32_t)((uint8_t*)&u32)[i] << "] " ;
53 std::cout << std::endl;
55 std::cout << "---------- float : " <<flt << " = 0x"
56 << std::hex << flt << std::endl;
57 for (i=0;i<sizeof(float);i++)
59 std::cout << std::hex <<"[" <<(uint16_t)((uint8_t*)&flt)[i] << "] " ;
61 std::cout << std::endl;
64 std::cout << "---------- float : " <<flt << " = 0x"
65 << std::hex << flt << std::endl;
66 for (i=0;i<sizeof(float);i++)
68 std::cout << std::hex <<"[" <<(uint16_t) ((uint8_t*)&flt)[i] << "] " ;
70 std::cout << std::endl;
72 std::cout << "---------- double : " << std::dec <<dbl << " = 0x"
73 << std::hex << dbl << std::endl;
74 for (i=0;i<sizeof(double);i++)
76 std::cout << std::hex <<"[" <<(uint16_t)((uint8_t*)&dbl)[i] << "] " ;
78 std::cout << std::endl;
81 std::cout << "---------- double : " << std::dec <<dbl << " = 0x"
82 << std::hex << dbl << std::endl;
83 for (i=0;i<sizeof(double);i++)
85 std::cout << std::hex <<"[" <<(uint16_t)((uint8_t*)&dbl)[i] << "] " ;
87 std::cout << std::endl;
90 std::string x = "a#@-bc\tdef";
91 std::string y = gdcm::Util::CreateCleanString(x);
92 std::cout << "Clean : [" << x <<"] --> [" << y <<"]" << std::endl;
95 // CountSubstring : substring id "#@-"
96 x = "abcd#@-wyz*@-lmn#@-uvw-#@ijk";
97 std::cout << "in [" << x << "] " << std::endl;
98 std::cout << " - count '#@-' : "
99 << gdcm::Util::CountSubstring(x, "#@-") << std::endl;
101 // Tokenize : tokens are '#', '@', '-'
102 std::vector<std::string> tokens;
103 std::cout << " - use tokens '#@-' :" << std::endl;
104 gdcm::Util::Tokenize (x, tokens, "#@-");
105 for (unsigned int ui=0; ui<tokens.size();ui++)
107 std::cout << "[" << tokens[ui] << "]" << std::endl;
112 std::cout << "Time:" << gdcm::Util::GetCurrentDateTime() << std::endl;
115 unsigned int processorID;;
116 processorID = gdcm::Util::GetCurrentProcessID();
117 std::cout << "Current Processor ID " << processorID << std::endl;
120 std::cout << "Mac Address:" << gdcm::Util::GetMACAddress() << std::endl;
126 gdcmUid = gdcm::Util::CreateUniqueUID();
127 std::cout << "Current UID for gdcm " << gdcmUid << std::endl;
131 const char ref[] = "MONOCHROME1";
132 std::string a = "MONOCHROME1";
134 std::string b = "MONOCHROME1 ";
135 std::string c = gdcm::Util::DicomString("MONOCHROME1");
136 std::string d = "MONOCHROME1";
138 if( !gdcm::Util::DicomStringEqual(a,ref) )
140 if( !gdcm::Util::DicomStringEqual(b,ref) )
142 if( !gdcm::Util::DicomStringEqual(c,ref) )
144 if( gdcm::Util::DicomStringEqual(d,ref) )
147 // ----------------------------------------------------------
148 // Let's test gdcm::Debug, now.
149 std::cout << "GetDebugFlag : " << gdcm::Debug::GetDebugFlag() <<std::endl;
150 gdcm::Debug::SetDebugFilename ("DummyFileNameToWriteTo.txt");
151 std::cout << "We set a Debug file" <<std::endl;
152 if ( !gdcm::Debug::GetDebugFlag() )
154 std::cout << "Debug Flag should be TRUE... " << std::endl;
157 std::cout << "GetDebugFlag : " << gdcm::Debug::GetDebugFlag()<<std::endl;
158 gdcm::Debug::SetDebugFlag ( false );
159 std::cout << "GetDebugFlag : " << gdcm::Debug::GetDebugFlag()<<std::endl;
160 gdcm::Debug::SetDebugFilename ("DummyFileNameToWriteTo2.txt");