diff --git a/tests/.gitignore b/tests/.gitignore index 0394d8974dc8aa60da532d14f9227e9b2c05a3c9..60dd614b47bb919e0cb475f5d76a6f76d8edb5b9 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -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 diff --git a/tests/Makefile.am b/tests/Makefile.am index 2913461ca284728d38002e92bee7442d70423a14..c7ea141c476da495ffb03ba88c9d71018e798953 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -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 diff --git a/tests/deprecated/ramsey_ex.mod b/tests/deprecated/ramsey_ex.mod new file mode 100644 index 0000000000000000000000000000000000000000..9c61deacfd7b20e256a61c4474e4d96a1a50cac0 --- /dev/null +++ b/tests/deprecated/ramsey_ex.mod @@ -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 diff --git a/tests/optimal_policy/Ramsey/ramsey_ex.mod b/tests/optimal_policy/Ramsey/ramsey_ex.mod index ba00dcacfefd9accc97a783b176c6b0bcd6b5811..eebda5be68914790cb2c6f9e1baeb2f38ba5dac4 100644 --- a/tests/optimal_policy/Ramsey/ramsey_ex.mod +++ b/tests/optimal_policy/Ramsey/ramsey_ex.mod @@ -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 - -load oo_ramsey_policy_initval; - -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] ) +ramsey_model(planner_discount=0.99,instruments=(r)); +steady; +stoch_simul(order=1, nograph); +evaluate_planner_objective; + +benchmark=load('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('Initval and steady state file yield different results') end diff --git a/tests/optimal_policy/Ramsey/ramsey_ex_initval.mod b/tests/optimal_policy/Ramsey/ramsey_ex_initval.mod index 4743239a362102c311f1b488bc0cf03bd6376a4d..d307df828e6488b5cea1f9e31258c2cd93755cfd 100644 --- a/tests/optimal_policy/Ramsey/ramsey_ex_initval.mod +++ b/tests/optimal_policy/Ramsey/ramsey_ex_initval.mod @@ -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; diff --git a/tests/optimal_policy/Ramsey/ramsey_ex_initval_AR2.mod b/tests/optimal_policy/Ramsey/ramsey_ex_initval_AR2.mod index 0c522f57f03862ef759f669dc519b52f3fe19e0e..c5954ad166ecb8a9c573f5d83c44c63fe114e911 100644 --- a/tests/optimal_policy/Ramsey/ramsey_ex_initval_AR2.mod +++ b/tests/optimal_policy/Ramsey/ramsey_ex_initval_AR2.mod @@ -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 \ No newline at end of file +ramsey_model(planner_discount=0.99,instruments=(r)); +steady; +stoch_simul(order=1, nograph); +evaluate_planner_objective;