9int main(
int,
char** ) {
10 std::string name = std::string(
"${GLAST_EXT}/xerces" );
11 std::string nameAgain = std::string(
"${GLAST_EXT}/xerces" );
12 std::string oDelim = std::string(
"${" );
13 std::string cDelim = std::string(
"}" );
16 std::cout <<
"Test expandEnvVar: " << std::endl;
20 std::cout <<
"Translated name (right delimiters) is " << name << std::endl;
22 std::cout <<
"Translated name (wrong delimiters) is " << nameAgain << std::endl;
24 { std::cout <<
"Failed to completely translate " << name << std::endl; }
27 std::string multi = std::string(
"$(FACILITIESROOT)/$(SRC)" );
33 std::cout <<
"Translated name is " << multi << std::endl;
34 std::cout << ntrans <<
" variables were translated." << std::endl;
36 { std::cout <<
"Failed to completely translate " << multi << std::endl; }
38 std::cout << std::endl <<
"Test itoa " << std::endl;
42 std::cout <<
"My String is " << intStr << std::endl;
45 std::string unixname(
"/a/path/myUnixFile.txt" );
46 std::string wname(
"C:\\a\\longer\\path\\myWindowsFile.txt" );
48 std::vector<std::string> tokens;
51 std::cout << std::endl <<
"Test stringTokenize and basename" << std::endl;
54 std::cout <<
"Processing string " << unixname << std::endl;
55 for ( i = 0; i < tokens.size(); i++ )
56 { std::cout <<
"Token " << i <<
" is: " << tokens[i] << std::endl; }
62 std::cout <<
"Processing string " << wname << std::endl;
63 for ( i = 0; i < tokens.size(); i++ )
64 { std::cout <<
"Token " << i <<
" is: " << tokens[i] << std::endl; }
69 std::cout << std::endl <<
"Test keyValueTokenize " << std::endl;
70 std::string input1(
"apple=green,lemon=yellow,blueberry=blue" );
71 std::cout <<
"Input string: '" << input1 <<
"'" << std::endl;
72 std::map<std::string, std::string> maptokens;
74 std::map<std::string, std::string>::const_iterator tokens_itr = maptokens.begin();
75 while ( tokens_itr != maptokens.end() )
77 std::cout <<
"Token key " << ( *tokens_itr ).first
78 <<
" and value: " << ( *tokens_itr ).second << std::endl;
82 std::cout <<
"appending to previous map:" << std::endl;
83 std::string input2(
"apple2/green2,lemon2/yellow2,blueberry2/blue2" );
84 std::cout <<
"New string is '" << input2 <<
"'" << std::endl;
86 tokens_itr = maptokens.begin();
87 while ( tokens_itr != maptokens.end() )
89 std::cout <<
"Token key " << ( *tokens_itr ).first
90 <<
" and value: " << ( *tokens_itr ).second << std::endl;
94 std::cout <<
"clearing the map first:" << std::endl;
96 tokens_itr = maptokens.begin();
97 while ( tokens_itr != maptokens.end() )
99 std::cout <<
"Token key " << ( *tokens_itr ).first
100 <<
" and value: " << ( *tokens_itr ).second << std::endl;
104 std::cout <<
"Use a multi-character pairDelimiter argument " << std::endl;
105 std::string input3(
"apple2:=green2 lemon2:=yellow2 blueberry2:=blue2" );
106 std::cout <<
"input is: '" << input3 <<
"'" << std::endl;
108 tokens_itr = maptokens.begin();
109 while ( tokens_itr != maptokens.end() )
111 std::cout <<
"Token key " << ( *tokens_itr ).first
112 <<
" and value: " << ( *tokens_itr ).second << std::endl;
117 std::cout << std::endl <<
"Test stringToDouble " << std::endl;
118 std::string okDouble(
"3.14159" );
119 std::string badDouble(
"3.garbage56" );
126 std::cout <<
"Converted (string) " << okDouble <<
" to (double) " << result << std::endl;
128 { std::cout <<
"Failed with exception " << ex.
getMsg() << std::endl; }
133 std::cout <<
"Converted (string) " << badDouble <<
" to (double) " << result << std::endl;
135 { std::cout <<
"Failed with exception " << ex.
getMsg() << std::endl; }
138 std::cout << std::endl <<
"Test stringToInt " << std::endl;
140 std::string okInt(
"33550" );
141 std::string badInt1(
"3garbage56" );
142 std::string badInt2(
"garbage356" );
149 std::cout <<
"Converted (string) " << okInt <<
" to (int) " << intResult << std::endl;
151 { std::cout <<
"Failed with exception " << ex.
getMsg() << std::endl; }
156 std::cout <<
"Converted (string) " << badInt1 <<
" to (int) " << intResult << std::endl;
158 { std::cout <<
"Failed with exception " << ex.
getMsg() << std::endl; }
163 std::cout <<
"Converted (string) " << badInt2 <<
" to (int) " << intResult << std::endl;
165 { std::cout <<
"Failed with exception " << ex.
getMsg() << std::endl; }
168 std::cout << std::endl <<
"Test trimTrailing " << std::endl;
169 std::string string1(
"ends with 2 blanks " );
170 std::string string2(
"ends with newline\n" );
171 std::string string3(
"no trailing whitespace" );
174 std::cout <<
"Trimmed " << nTrimmed <<
" from string1; has new value : " << string1
175 <<
"*EOS*" << std::endl;
178 std::cout <<
"Trimmed " << nTrimmed <<
" from string2; has new value : " << string2 <<
"*EOS"
182 std::cout <<
"Trimmed " << nTrimmed <<
" from string3; has new value : " << string3 <<
"*EOS"
static void keyValueTokenize(std::string input, const std::string &delimiters, std::map< std::string, std::string > &tokenMap, const std::string &pairDelimiter=std::string("="), bool clear=true)