Commit 98a8f54d authored by Houtan Bastani's avatar Houtan Bastani
Browse files

bug fix: check that osr, osr_params and optim_weights appear together

parent 6d0b8e55
......@@ -629,6 +629,12 @@ OsrParamsStatement::OsrParamsStatement(const SymbolList &symbol_list_arg) :
{
}
void
OsrParamsStatement::checkPass(ModFileStructure &mod_file_struct)
{
mod_file_struct.osr_params_present = true;
}
void
OsrParamsStatement::writeOutput(ostream &output, const string &basename) const
{
......@@ -681,6 +687,12 @@ OptimWeightsStatement::OptimWeightsStatement(const var_weights_t &var_weights_ar
{
}
void
OptimWeightsStatement::checkPass(ModFileStructure &mod_file_struct)
{
mod_file_struct.optim_weights_present = true;
}
void
OptimWeightsStatement::writeOutput(ostream &output, const string &basename) const
{
......
......@@ -185,6 +185,7 @@ private:
const SymbolList symbol_list;
public:
OsrParamsStatement(const SymbolList &symbol_list_arg);
virtual void checkPass(ModFileStructure &mod_file_struct);
virtual void writeOutput(ostream &output, const string &basename) const;
};
......@@ -308,6 +309,7 @@ public:
OptimWeightsStatement(const var_weights_t &var_weights_arg,
const covar_weights_t &covar_weights_arg,
const SymbolTable &symbol_table_arg);
virtual void checkPass(ModFileStructure &mod_file_struct);
virtual void writeOutput(ostream &output, const string &basename) const;
};
......
......@@ -130,6 +130,14 @@ ModFile::checkPass()
exit(EXIT_FAILURE);
}
if ((mod_file_struct.osr_present && (!mod_file_struct.osr_params_present || !mod_file_struct.optim_weights_present))
|| ((!mod_file_struct.osr_present || !mod_file_struct.osr_params_present) && mod_file_struct.optim_weights_present)
|| ((!mod_file_struct.osr_present || !mod_file_struct.optim_weights_present) && mod_file_struct.osr_params_present))
{
cerr << "ERROR: The osr statement must be used with osr_params and optim_weights." << endl;
exit(EXIT_FAILURE);
}
if (mod_file_struct.simul_present && stochastic_statement_present)
{
cerr << "ERROR: A .mod file cannot contain both a simul command and one of {stoch_simul, estimation, osr, ramsey_policy}" << endl;
......
......@@ -26,6 +26,8 @@ ModFileStructure::ModFileStructure() :
stoch_simul_present(false),
estimation_present(false),
osr_present(false),
osr_params_present(false),
optim_weights_present(false),
ramsey_policy_present(false),
planner_objective_present(false),
order_option(0),
......
......@@ -44,6 +44,10 @@ public:
bool estimation_present;
//! Whether an osr statement is present
bool osr_present;
//! Whether an osr params statement is present
bool osr_params_present;
//! Whether an optim weight statement is present
bool optim_weights_present;
//! Whether a ramsey_policy statement is present
bool ramsey_policy_present;
//! Whether a planner_objective statement is present
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment