Testsuite: no longer use deprecated ramsey_policy, except a in a dedicated test

silicon
Sébastien Villemot 2023-03-29 16:57:01 +02:00
parent cdb786017b
commit ec908386b6
No known key found for this signature in database
GPG Key ID: 2CECE9350ECEBE4A
6 changed files with 89 additions and 59 deletions

1
tests/.gitignore vendored
View File

@ -123,7 +123,6 @@ wsOct
!/occbin/filter/dataobsfile.mat
!/occbin/filter/NKM_mh_mode_saved.mat
!/optimal_policy/Ramsey/find_c.m
!/optimal_policy/Ramsey/oo_ramsey_policy_initval.mat
!/optimizers/optimizer_function_wrapper.m
!/parallel/data_ca1.m
!/parallel/init.m

View File

@ -512,7 +512,8 @@ MODFILES = \
solve_algo_12_14/purely_static_14.mod \
solve_algo_12_14/purely_forward_reference.mod \
solve_algo_12_14/purely_forward_12.mod \
solve_algo_12_14/purely_forward_14.mod
solve_algo_12_14/purely_forward_14.mod \
deprecated/ramsey_ex.mod
ECB_MODFILES = \
var-expectations/1/example1.mod \
@ -758,6 +759,9 @@ optimal_policy/Ramsey/ramsey_ex.o.trs: optimal_policy/Ramsey/ramsey_ex_initval.o
optimal_policy/nk_ramsey_expectation_a.m.trs: optimal_policy/nk_ramsey_expectation.m.trs
optimal_policy/nk_ramsey_expectation_a.o.trs: optimal_policy/nk_ramsey_expectation.o.trs
deprecated/ramsey_ex.m.trs: optimal_policy/Ramsey/ramsey_ex_initval.m.trs
deprecated/ramsey_ex.o.trs: optimal_policy/Ramsey/ramsey_ex_initval.o.trs
second_order/ds2.m.trs: second_order/ds1.m.trs
second_order/ds2.o.trs: second_order/ds1.o.trs
@ -1669,8 +1673,6 @@ clean-local:
rm -f occbin/filter/dataobsfile2.mat
rm -f optimal_policy/Ramsey/oo_ramsey_policy_initval.mat
rm -rf tests/pac/var-12/toto
rm -f solve_algo_12_14/simul_backward_ref.mat

View File

@ -0,0 +1,54 @@
/* Tests the deprecated ramsey_policy command.
*
* The example is taken from Juillard, Michel (2011): User manual for optimal policy package,
* MONFISPOL FP7 project SSH-225149, Deliverable 1.1.2
*/
var pai, c, n, r, a;
varexo u;
parameters beta, rho, epsilon, omega, phi, gamma;
beta=0.99;
gamma=3;
omega=17;
epsilon=8;
phi=1;
rho=0.95;
model;
a = rho*a(-1)+u;
1/c = beta*r/(c(+1)*pai(+1));
pai*(pai-1)/c = beta*pai(+1)*(pai(+1)-1)/c(+1)+epsilon*phi*n^(gamma+1)/omega -exp(a)*n*(epsilon-1)/(omega*c);
exp(a)*n = c+(omega/2)*(pai-1)^2;
end;
initval;
r=1;
end;
initval;
a = 0;
pai = beta;
c = 0.9665;
n = 0.9673;
end;
shocks;
var u; stderr 0.008;
end;
planner_objective(ln(c)-phi*((n^(1+gamma))/(1+gamma)));
ramsey_policy(planner_discount=0.99,instruments=(r),order=1,nograph);
benchmark = load('../optimal_policy/Ramsey/ramsey_ex_initval/Output/ramsey_ex_initval_results.mat');
if any( [ max(abs(benchmark.oo_.steady_state-oo_.steady_state))>1e-5, ...
max(abs(benchmark.oo_.dr.ys-oo_.dr.ys))>1e-5, ...
max(max(abs(benchmark.oo_.dr.ghx-oo_.dr.ghx)))>1e-5, ...
max(max(abs(benchmark.oo_.dr.ghu-oo_.dr.ghu)))>1e-5, ...
max(max(abs(benchmark.oo_.dr.Gy-oo_.dr.Gy)))>1e-5, ...
abs(benchmark.oo_.planner_objective_value.unconditional-oo_.planner_objective_value.unconditional)>1e-5, ...
abs(benchmark.oo_.planner_objective_value.conditional.zero_initial_multiplier-oo_.planner_objective_value.conditional.zero_initial_multiplier)>1e-5, ...
abs(benchmark.oo_.planner_objective_value.conditional.steady_initial_multiplier-oo_.planner_objective_value.conditional.steady_initial_multiplier)>1e-5] )
error('ramsey_policy gives results inconsistent with ramsey_model+stoch_simul+evaluate_planner_objective')
end

View File

@ -1,6 +1,6 @@
/* Mod file tests the correctness of the Ramsey command when used together with a steady state file by
* - checking whether the results coincide with the ones when used with an initval block
* - checking whether between stoch_simul and ramsey_planner are consistent
/* Tests the correctness of the Ramsey command when used together with a steady state file by
* checking whether the results coincide with the ones when used with an initval block
*
* The example is taken from Juillard, Michel (2011): User manual for optimal policy package,
* MONFISPOL FP7 project SSH-225149, Deliverable 1.1.2
*/
@ -39,29 +39,20 @@ var u; stderr 0.008;
end;
planner_objective(ln(c)-phi*((n^(1+gamma))/(1+gamma)));
ramsey_policy(planner_discount=0.99,order=1,instruments=(r));
oo_ramsey_policy_steady_state_file=oo_;
stoch_simul(periods=0, order=1, irf=25, nograph);
if max(abs((oo_ramsey_policy_steady_state_file.steady_state-oo_.steady_state)))>1e-5 ...
|| max(abs(oo_ramsey_policy_steady_state_file.dr.ys-oo_.dr.ys))>1e-5 ...
|| max(max(abs(oo_ramsey_policy_steady_state_file.dr.ghx-oo_.dr.ghx)))>1e-5 ...
|| max(max(abs(oo_ramsey_policy_steady_state_file.dr.ghu-oo_.dr.ghu)))>1e-5 ...
|| max(max(abs(oo_ramsey_policy_steady_state_file.dr.Gy-oo_.dr.Gy)))>1e-5 ...
|| abs(oo_ramsey_policy_steady_state_file.planner_objective_value.unconditional-oo_.planner_objective_value.unconditional)>1e-5 ...
|| abs(oo_ramsey_policy_steady_state_file.planner_objective_value.conditional.zero_initial_multiplier-oo_.planner_objective_value.conditional.zero_initial_multiplier)>1e-5 ...
|| abs(oo_ramsey_policy_steady_state_file.planner_objective_value.conditional.steady_initial_multiplier-oo_.planner_objective_value.conditional.steady_initial_multiplier)>1e-5
error('Running stoch_simul after ramsey_policy leads to inconsistent results')
end
ramsey_model(planner_discount=0.99,instruments=(r));
steady;
stoch_simul(order=1, nograph);
evaluate_planner_objective;
load oo_ramsey_policy_initval;
benchmark=load('ramsey_ex_initval/Output/ramsey_ex_initval_results.mat');
if any( [ max(abs((oo_ramsey_policy_initval.steady_state-oo_.steady_state)))>1e-5, ...
max(abs(oo_ramsey_policy_initval.dr.ys-oo_.dr.ys))>1e-5, ...
max(max(abs(oo_ramsey_policy_initval.dr.ghx-oo_.dr.ghx)))>1e-5, ...
max(max(abs(oo_ramsey_policy_initval.dr.ghu-oo_.dr.ghu)))>1e-5, ...
max(max(abs(oo_ramsey_policy_initval.dr.Gy-oo_.dr.Gy)))>1e-5, ...
abs(oo_ramsey_policy_initval.planner_objective_value.unconditional-oo_.planner_objective_value.unconditional)>1e-5, ...
abs(oo_ramsey_policy_initval.planner_objective_value.conditional.zero_initial_multiplier-oo_.planner_objective_value.conditional.zero_initial_multiplier)>1e-5, ...
abs(oo_ramsey_policy_initval.planner_objective_value.conditional.steady_initial_multiplier-oo_.planner_objective_value.conditional.steady_initial_multiplier)>1e-5] )
if any( [ max(abs((benchmark.oo_.steady_state-oo_.steady_state)))>1e-5, ...
max(abs(benchmark.oo_.dr.ys-oo_.dr.ys))>1e-5, ...
max(max(abs(benchmark.oo_.dr.ghx-oo_.dr.ghx)))>1e-5, ...
max(max(abs(benchmark.oo_.dr.ghu-oo_.dr.ghu)))>1e-5, ...
max(max(abs(benchmark.oo_.dr.Gy-oo_.dr.Gy)))>1e-5, ...
abs(benchmark.oo_.planner_objective_value.unconditional-oo_.planner_objective_value.unconditional)>1e-5, ...
abs(benchmark.oo_.planner_objective_value.conditional.zero_initial_multiplier-oo_.planner_objective_value.conditional.zero_initial_multiplier)>1e-5, ...
abs(benchmark.oo_.planner_objective_value.conditional.steady_initial_multiplier-oo_.planner_objective_value.conditional.steady_initial_multiplier)>1e-5] )
error('Initval and steady state file yield different results')
end

View File

@ -1,5 +1,4 @@
/* Mod file tests the functioning of the Ramsey command when used together with an initval-block
* - Tests whether subsequent calls to ramsey_policy and stoch_simul are possible
/* Tests the functioning of the Ramsey command when used together with an initval-block
* The example is taken from Juillard, Michel (2011): User manual for optimal policy package,
* MONFISPOL FP7 project SSH-225149, Deliverable 1.1.2
*/
@ -38,17 +37,7 @@ var u; stderr 0.008;
end;
planner_objective(ln(c)-phi*((n^(1+gamma))/(1+gamma)));
ramsey_policy(planner_discount=0.99,order=1,instruments=(r));
oo_ramsey_policy_initval=oo_;
save oo_ramsey_policy_initval.mat oo_ramsey_policy_initval;
stoch_simul(periods=0, order=1, irf=25, nograph);
if max(abs((oo_ramsey_policy_initval.steady_state-oo_.steady_state)))>1e-5 ...
|| max(abs(oo_ramsey_policy_initval.dr.ys-oo_.dr.ys))>1e-5 ...
|| max(max(abs(oo_ramsey_policy_initval.dr.ghx-oo_.dr.ghx)))>1e-5 ...
|| max(max(abs(oo_ramsey_policy_initval.dr.ghu-oo_.dr.ghu)))>1e-5 ...
|| max(max(abs(oo_ramsey_policy_initval.dr.Gy-oo_.dr.Gy)))>1e-5 ...
|| abs(oo_ramsey_policy_initval.planner_objective_value.unconditional-oo_.planner_objective_value.unconditional)>1e-5 ...
|| abs(oo_ramsey_policy_initval.planner_objective_value.conditional.zero_initial_multiplier-oo_.planner_objective_value.conditional.zero_initial_multiplier)>1e-5 ...
|| abs(oo_ramsey_policy_initval.planner_objective_value.conditional.steady_initial_multiplier-oo_.planner_objective_value.conditional.steady_initial_multiplier)>1e-5
error('Running stoch_simul after ramsey_policy leads to inconsistent results')
end
ramsey_model(planner_discount=0.99,instruments=(r));
steady;
stoch_simul(order=1, nograph);
evaluate_planner_objective;

View File

@ -1,4 +1,8 @@
/* Mod file tests the correctness of the Ramsey command when Auxiliary variables for AR2 are used
/* Test the correctness of the Ramsey command when a Lagrange multiplier
* appears with a lead 2, and thus ends up in the definition of an auxiliary variable.
*
* This is related to issues #633, #1119 and #1133
*
* The example is adapted from Juillard, Michel (2011): User manual for optimal policy package,
* MONFISPOL FP7 project SSH-225149, Deliverable 1.1.2
*/
@ -37,16 +41,7 @@ var u; stderr 0.008;
end;
planner_objective(ln(c)-phi*((n^(1+gamma))/(1+gamma)));
ramsey_policy(planner_discount=0.99,order=1,instruments=(r));
oo_ramsey_policy_initval_AR2=oo_;
stoch_simul(periods=0, order=1, irf=25, nograph);
if max(abs((oo_ramsey_policy_initval_AR2.steady_state-oo_.steady_state)))>1e-5 ...
|| max(abs(oo_ramsey_policy_initval_AR2.dr.ys-oo_.dr.ys))>1e-5 ...
|| max(max(abs(oo_ramsey_policy_initval_AR2.dr.ghx-oo_.dr.ghx)))>1e-5 ...
|| max(max(abs(oo_ramsey_policy_initval_AR2.dr.ghu-oo_.dr.ghu)))>1e-5 ...
|| max(max(abs(oo_ramsey_policy_initval_AR2.dr.Gy-oo_.dr.Gy)))>1e-5 ...
|| abs(oo_ramsey_policy_initval_AR2.planner_objective_value.unconditional-oo_.planner_objective_value.unconditional)>1e-5 ...
|| abs(oo_ramsey_policy_initval_AR2.planner_objective_value.conditional.zero_initial_multiplier-oo_.planner_objective_value.conditional.zero_initial_multiplier)>1e-5 ...
|| abs(oo_ramsey_policy_initval_AR2.planner_objective_value.conditional.steady_initial_multiplier-oo_.planner_objective_value.conditional.steady_initial_multiplier)>1e-5
error('Running stoch_simul after ramsey_policy leads to inconsistent results')
end
ramsey_model(planner_discount=0.99,instruments=(r));
steady;
stoch_simul(order=1, nograph);
evaluate_planner_objective;