Add checks on the value of the “learnt_in” option of “shocks” and “endval”
parent
e47ea565b9
commit
dbe14ecfd4
|
@ -750,10 +750,13 @@ ParsingDriver::end_endval(bool all_values_required)
|
||||||
void
|
void
|
||||||
ParsingDriver::end_endval_learnt_in(const string &learnt_in_period)
|
ParsingDriver::end_endval_learnt_in(const string &learnt_in_period)
|
||||||
{
|
{
|
||||||
|
int learnt_in_period_int = stoi(learnt_in_period);
|
||||||
|
if (learnt_in_period_int < 2)
|
||||||
|
error("endval: value '" + learnt_in_period + "' is not allowed for 'learnt_in' option");
|
||||||
for (auto [symb_id, value] : init_values)
|
for (auto [symb_id, value] : init_values)
|
||||||
if (mod_file->symbol_table.getType(symb_id) != SymbolType::exogenous)
|
if (mod_file->symbol_table.getType(symb_id) != SymbolType::exogenous)
|
||||||
error("endval(learnt_in=...): " + mod_file->symbol_table.getName(symb_id) + " is not an exogenous variable");
|
error("endval(learnt_in=...): " + mod_file->symbol_table.getName(symb_id) + " is not an exogenous variable");
|
||||||
mod_file->addStatement(make_unique<EndValLearntInStatement>(stoi(learnt_in_period), init_values, mod_file->symbol_table));
|
mod_file->addStatement(make_unique<EndValLearntInStatement>(learnt_in_period_int, init_values, mod_file->symbol_table));
|
||||||
init_values.clear();
|
init_values.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -862,6 +865,8 @@ void
|
||||||
ParsingDriver::end_shocks_learnt_in(const string &learnt_in_period, bool overwrite)
|
ParsingDriver::end_shocks_learnt_in(const string &learnt_in_period, bool overwrite)
|
||||||
{
|
{
|
||||||
int learnt_in_period_int = stoi(learnt_in_period);
|
int learnt_in_period_int = stoi(learnt_in_period);
|
||||||
|
if (learnt_in_period_int < 2)
|
||||||
|
error("shocks: value '" + learnt_in_period + "' is not allowed for 'learnt_in' option");
|
||||||
for (auto &[symb_id, vals] : det_shocks)
|
for (auto &[symb_id, vals] : det_shocks)
|
||||||
for (auto [period1, period2, expr] : vals)
|
for (auto [period1, period2, expr] : vals)
|
||||||
if (period1 < learnt_in_period_int)
|
if (period1 < learnt_in_period_int)
|
||||||
|
|
Loading…
Reference in New Issue