86 string paramName, T badValue)
88 Teuchos::ParameterList validParameters;
89 pl.set(paramName, badValue);
90 std::cout << std::endl;
91 std::cout << paramName <<
" = " << badValue << std::endl;
96 pl.validateParametersAndSetDefaults(validParameters);
98 catch(std::exception &e){
99 std::cout <<
"Correctly generated an error:" << std::endl;
100 std::cout << e.what() << std::endl;
105 std::cerr <<
"Bad parameter value was not detected in parameter list." << std::endl;
118 Teuchos::ParameterList valid(
"valid parameter list");
121 typedef Teuchos::AnyNumberParameterEntryValidator validator_t;
122 Teuchos::RCP<const validator_t> anyNumVal = Teuchos::rcp(
new validator_t);
127 std::cout <<
"set good default value" << std::endl;
129 std::string parameterName(
"parameterName");
131 valid.set(parameterName, 5.0,
"parameterDoc", anyNumVal);
133 catch (std::exception &e) {
134 std::cout <<
"FAIL error setting good default value "
135 << e.what() << std::endl;
139 double dd = valid.getEntry(parameterName).getValue<
double>(&dd);
140 std::cout <<
"good default value <double> = " << dd << std::endl;
144 Teuchos::ParameterList user(
"user");
147 std::cout <<
"test good user value" << std::endl;
148 user.set(parameterName,
"0.123");
150 user.validateParametersAndSetDefaults(valid);
152 catch (std::exception &e) {
153 std::cout <<
"FAIL " << e.what() << std::endl;
157 dd = user.getEntry(parameterName).getValue<
double>(&dd);
158 std::cout <<
"good user value <double> = " << dd << std::endl;
161 std::cout <<
"test bogus user value" << std::endl;
167 user.set(parameterName,
"bogus");
169 catch(std::exception &e) {
171 std::cout <<
"Parameter list correctly rejected bogus user value."
177 std::cout <<
"FAIL parameter list accepted a bogus user value"
184 std::cout <<
"set bogus default value" << std::endl;
186 std::string parameterNameToo(
"parameterNameToo");
189 valid.set(parameterNameToo,
"bogus",
"parameterDoc", anyNumVal);
191 catch (std::exception &e) {
193 std::cout <<
"Parameter list correctly rejected bogus default value."
199 std::cout <<
"FAIL parameter list accepted a bogus default value"
204 std::cout <<
"PASS" << std::endl;
212 Tpetra::ScopeGuard tscope(&narg, &arg);
213 Teuchos::RCP<const Teuchos::Comm<int> > comm = Tpetra::getDefaultComm();
215 int rank = comm->getRank();
224 if( tempTest != 0 ) {
230 Teuchos::ParameterList validParameters;
231 Teuchos::ParameterList myParams(
"testParameterList");
233 for (
int i=0; i <
NUMSTR; i++){
237 for (
int i=0; i <
NUMFN; i++){
241 Teuchos::ParameterList origParams(myParams);
248 myParams.validateParametersAndSetDefaults(validParameters);
250 catch(std::exception &e){
251 std::cerr <<
"Validate parameters generated an error:" << std::endl;
252 std::cerr << e.what() << std::endl;
253 std::cerr <<
"FAIL" << std::endl;
257 std::cout << std::endl;
258 std::cout <<
"Parameters after validation: " << std::endl;
259 std::cout << myParams << std::endl;
262 for (
int i=0; i <
NUMSTR; i++){
263 Teuchos::ParameterList badParams(origParams);
267 std::cout <<
"FAIL" << std::endl;
272 for (
int i=0; i <
NUMFN; i++){
273 Teuchos::ParameterList badParams(origParams);
274 std::istringstream iss(
fnParams[i][2]);
278 testInvalidValue<double>(badParams,
fnParams[i][0], badVal);
280 std::cout <<
"FAIL" << std::endl;
288 std::cout << std::endl;
289 std::cout <<
"Parameter documentation:" << std::endl;
292 std::cout <<
"PASS" << std::endl;