48 #include <Zoltan2_config.h> 50 #include <Teuchos_ParameterList.hpp> 51 #include <Teuchos_DefaultComm.hpp> 68 {
"debug_output_file",
"temp.txt",
"5"},
69 {
"timer_output_file",
"timerInfo.txt",
"10.3"},
70 {
"memory_output_file",
"memory.txt",
"3.33"}
77 {
"bisection_num_test_cuts",
"3",
"dont_know"},
78 {
"parallel_part_calculation_count",
"2",
"dont_know"}
85 {
"error_check_level",
"basic_assertions",
"invalid_assertion_request"},
86 {
"debug_level",
"basic_status",
"bogus_status"},
87 {
"timer_type",
"no_timers",
"invalid_timers"},
88 {
"debug_output_stream",
"cout",
"invalid_stream"},
89 {
"timer_output_stream",
"/dev/null",
"invalid_stream"},
90 {
"memory_output_stream",
"cerr",
"invalid_stream"},
91 {
"debug_procs",
"all",
"not_a_valid_list_of_any_type"},
92 {
"pqParts",
"2,3,4",
"not_a_valid_list_of_any_type"},
93 {
"memory_procs",
"2-10",
"not_a_valid_list_of_any_type"},
94 {
"speed_versus_quality",
"balance",
"amazing_performance"},
95 {
"memory_versus_speed",
"memory",
"impossible_performance"},
96 {
"random_seed",
"9.999",
"xxx"},
97 {
"order_method",
"rcm",
"rcmNew"},
98 {
"order_package",
"amd",
"amdNew"},
99 {
"compute_metrics",
"yes",
"maybe"},
100 {
"topology",
"2,3,6",
"I_don't_know"},
101 {
"randomize_input",
"1",
"22"},
102 {
"partitioning_objective",
"balance_object_weight",
"get_curry"},
103 {
"imbalance_tolerance",
"1.1",
"intolerant"},
104 {
"num_global_parts",
"12",
"xxx"},
105 {
"num_local_parts",
"1",
"no_idea"},
106 {
"partitioning_approach",
"repartition",
"cut_it_up"},
107 {
"objects_to_partition",
"graph_vertices",
"nothing"},
108 {
"model",
"graph",
"manifold"},
109 {
"algorithm",
"rcb",
"xyz"},
110 {
"rectilinear",
"yes",
"dont_know"},
111 {
"average_cuts",
"false",
"dont_know"},
112 {
"symmetrize_input",
"transpose",
"dont_know"},
113 {
"subset_graph",
"1",
"dont_know"},
114 {
"force_binary_search",
"true",
"dont_know"},
115 {
"force_linear_search",
"yes",
"dont_know"}
119 template <
typename T>
123 Teuchos::ParameterList validParameters;
124 pl.set(paramName, badValue);
126 cout << paramName <<
" = " << badValue << endl;
131 pl.validateParametersAndSetDefaults(validParameters);
133 catch(std::exception &e){
134 cout <<
"Correctly generated an error:" << endl;
135 cout << e.what() << endl;
140 cerr <<
"Bad parameter was not detected in parameter list." << endl;
148 int main(
int argc,
char *argv[])
150 Teuchos::GlobalMPISession session(&argc, &argv);
151 Teuchos::RCP<const Teuchos::Comm<int> > comm =
152 Teuchos::DefaultComm<int>::getComm();
154 int rank = comm->getRank();
161 Teuchos::ParameterList validParameters;
162 Teuchos::ParameterList myParams(
"testParameterList");
164 for (
int i=0; i <
NUMSTR; i++){
175 for (
int i=0; i <
NUMFN; i++){
179 Teuchos::ParameterList origParams(myParams);
186 myParams.validateParametersAndSetDefaults(validParameters);
189 catch(std::exception &e){
190 std::cerr <<
"Validate parameters generated an error:" << endl;
191 std::cerr << e.what() << endl;
192 std::cerr <<
"FAIL" << endl;
197 cout <<
"Parameters after validation: " << endl;
198 cout << myParams << endl;
202 for (
int i=0; i <
NUMSTR; i++){
203 Teuchos::ParameterList badParams(origParams);
205 testInvalidValue<string>(badParams,
strParams[i][0], strParams[i][2]);
207 cout <<
"FAIL" << endl;
213 Teuchos::ParameterList badParams(origParams);
215 testInvalidValue<string>(badParams,
anyIntParams[i][0], anyIntParams[i][2]);
217 cout <<
"FAIL" << endl;
222 for (
int i=0; i <
NUMFN; i++){
223 Teuchos::ParameterList badParams(origParams);
228 testInvalidValue<double>(badParams,
fnParams[i][0], badVal);
230 cout <<
"FAIL" << endl;
239 cout <<
"Parameter documentation:" << endl;
242 cout <<
"PASS" << endl;
static string anyIntParams[NUMANYINT][3]
void createValidatorList(const Teuchos::ParameterList &plIn, Teuchos::ParameterList &plOut)
Create a list by adding validators to the users parameter list.
static void convertStringToInt(Teuchos::ParameterList ¶ms)
Convert parameters of type Teuchos::StringToIntegralParameterEntryValidator<int> to integer...
void printListDocumentation(const Teuchos::ParameterList &pl, std::ostream &os, std::string listNames)
static string fnParams[NUMFN][3]
int main(int argc, char *argv[])
static const std::string fail
Defines the Environment class.
int testInvalidValue(Teuchos::ParameterList &pl, string paramName, T badValue)
static string strParams[NUMSTR][3]