From 686e9858f7b48e98b399b2daaf5a4615ddfb04b3 Mon Sep 17 00:00:00 2001
From: sebastien <sebastien@ac1d8469-bf42-47a9-8791-bf33cf982152>
Date: Tue, 1 Dec 2009 18:07:36 +0000
Subject: [PATCH] k_order_perturbation tests: added some comments and
 incorporated them into the testsuite

git-svn-id: https://www.dynare.org/svn/dynare/trunk@3189 ac1d8469-bf42-47a9-8791-bf33cf982152
---
 tests/Makefile.am                        |  4 ++
 tests/k_order_perturbation/fs2000k++.mod |  2 +
 tests/k_order_perturbation/fs2000k2.mod  |  8 ++-
 tests/k_order_perturbation/fs2000k2a.mod |  4 +-
 tests/k_order_perturbation/fs2000k3.mod  |  2 +-
 tests/k_order_perturbation/fs2000k_1.mod |  3 +
 tests/k_order_perturbation/fs2000kb.mod  | 89 ------------------------
 7 files changed, 18 insertions(+), 94 deletions(-)
 delete mode 100644 tests/k_order_perturbation/fs2000kb.mod

diff --git a/tests/Makefile.am b/tests/Makefile.am
index c0aae98203..e8d809d6d0 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -10,6 +10,10 @@ OCTAVE_MODS = \
 	ramst_initval_file.mod \
 	example1_varexo_det.mod \
 	predetermined_variables.mod \
+	k_order_perturbation/fs2000k2a.mod \
+	k_order_perturbation/fs2000k2.mod \
+	k_order_perturbation/fs2000k_1.mod \
+	k_order_perturbation/fs2000k3.mod \
 	arima/mod1.mod \
 	arima/mod1a.mod \
 	arima/mod2.mod \
diff --git a/tests/k_order_perturbation/fs2000k++.mod b/tests/k_order_perturbation/fs2000k++.mod
index be261e4558..09889b70ca 100644
--- a/tests/k_order_perturbation/fs2000k++.mod
+++ b/tests/k_order_perturbation/fs2000k++.mod
@@ -1,3 +1,5 @@
+/* Used to check that Dynare++ and Dynare with k_order_solver=1 give the same result */
+
 var m m_1 P P_1 c e W R k d n l gy_obs gp_obs y dA P2 c2;
 varexo e_a e_m;
 
diff --git a/tests/k_order_perturbation/fs2000k2.mod b/tests/k_order_perturbation/fs2000k2.mod
index 324e874177..9937be46b9 100644
--- a/tests/k_order_perturbation/fs2000k2.mod
+++ b/tests/k_order_perturbation/fs2000k2.mod
@@ -1,5 +1,5 @@
-// checks for order = 2 that use_k_order = 0 (fs2000k2a) and use_k_order = 1 (this file)
-// give the same results
+/* Checks that, for order = 2, k_order_solver = 0 (fs2000k2a)
+   and k_order_solver = 1 (this file) give the same results */
 
 var m P c e W R k d n l gy_obs gp_obs y dA ;
 varexo e_a e_m;
@@ -57,6 +57,10 @@ steady;
 
 stoch_simul(order=2,k_order_solver,periods=1000);
 
+if ~exist('fs2000k2a_results.mat','file');
+   error('fs2000k2a must be run first');
+end;
+
 oo1 = load('fs2000k2a_results','oo_');
 
 dr0 = oo1.oo_.dr;
diff --git a/tests/k_order_perturbation/fs2000k2a.mod b/tests/k_order_perturbation/fs2000k2a.mod
index 3451779f69..d3c22a442d 100644
--- a/tests/k_order_perturbation/fs2000k2a.mod
+++ b/tests/k_order_perturbation/fs2000k2a.mod
@@ -1,5 +1,5 @@
-// checks for order = 2 that use_k_order = 0 (this file) and use_k_order = 1 (fs2000k2)
-// give the same results
+/* Checks that, for order = 2, k_order_solver = 0 (this file)
+   and k_order_solver = 1 (fs2000k2) give the same results */
 
 var m P c e W R k d n l gy_obs gp_obs y dA ;
 varexo e_a e_m;
diff --git a/tests/k_order_perturbation/fs2000k3.mod b/tests/k_order_perturbation/fs2000k3.mod
index 738c8ab0f0..36efd98f3d 100644
--- a/tests/k_order_perturbation/fs2000k3.mod
+++ b/tests/k_order_perturbation/fs2000k3.mod
@@ -1,4 +1,4 @@
-// checks whether second order coefficients are the same with order=2 and order=3 with use_k_order=1
+// checks whether second order coefficients are the same with order=2 and order=3 with k_order_solver=1
 
 var m P c e W R k d n l gy_obs gp_obs y dA ;
 varexo e_a e_m;
diff --git a/tests/k_order_perturbation/fs2000k_1.mod b/tests/k_order_perturbation/fs2000k_1.mod
index a611c2eaa3..c9e8bb036c 100644
--- a/tests/k_order_perturbation/fs2000k_1.mod
+++ b/tests/k_order_perturbation/fs2000k_1.mod
@@ -1,3 +1,6 @@
+/* Checks that, for order = 2 and k_order_solver = 1, a model with 2 leads
+   and the same model with one lead (using auxiliary vars) give the same result */
+
 var m m_1 P P_1 c e W R k d n l gy_obs gp_obs y dA AUXv;
 varexo e_a e_m;
 
diff --git a/tests/k_order_perturbation/fs2000kb.mod b/tests/k_order_perturbation/fs2000kb.mod
deleted file mode 100644
index c1d152b022..0000000000
--- a/tests/k_order_perturbation/fs2000kb.mod
+++ /dev/null
@@ -1,89 +0,0 @@
-// checks whether second order coefficients are the same with order=2 and order=3 with use_k_order=1
-
-var m m_1 P P_1 c e W R k d n l gy_obs gp_obs y dA AUXv;
-varexo e_a e_m;
-
-parameters alp bet gam mst rho psi del;
-
-alp = 0.33;
-bet = 0.99;
-gam = 0.003;
-mst = 1.011;
-rho = 0.7;
-psi = 0.787;
-del = 0.02;
-
-model (use_dll);
-dA = exp(gam+e_a);
-log(m) = (1-rho)*log(mst) + rho*log(m_1(-1))+e_m;
--P/(c(+1)*P(+1)*m)+AUXv(+1);
-W = l/n;
--(psi/(1-psi))*(c*P/(1-n))+l/n = 0;
-R = P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(-alp)/W;
-1/(c*P)-bet*P*(1-alp)*exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)/(m*l*c(+1)*P(+1)) = 0;
-c+k = exp(-alp*(gam+e_a))*k(-1)^alp*n^(1-alp)+(1-del)*exp(-(gam+e_a))*k(-1);
-P*c = m;
-m-1+d = l;
-e = exp(e_a);
-y = k(-1)^alp*n^(1-alp)*exp(-alp*(gam+e_a));
-gy_obs = dA*y/y(-1);
-gp_obs = (P/P_1(-1))*m_1(-1)/dA;
-m_1 = m;
-P_1 = P;
-AUXv = bet*P*(alp*exp(-alp*(gam+log(e)))*k(-1)^(alp-1)*n^(1-alp)+(1-del)*exp(-(gam+log(e))))/(c(+1)*P(+1)*m);
-end;
-
-initval;
-m = mst;
-m_1=mst;
-P = 2.25;
-P_1 = 2.25;
-c = 0.45;
-e = 1;
-W = 4;
-R = 1.02;
-k = 6;
-d = 0.85;
-n = 0.19;
-l = 0.86;
-y = 0.6;
-gy_obs = exp(gam);
-gp_obs = exp(-gam); 
-dA = exp(gam);
-AUXv = 1;
-end;
-
-shocks;
-var e_a; stderr 0.014;
-var e_m; stderr 0.005;
-end;
-
-steady;
-
-stoch_simul(order=2,use_k_order,periods=1000);
-
-if ~exist('fs2000k2a_results.mat','file');
-   error('fs2000k2a must be run first');
-end;
-
-oo1 = load('fs2000k2a_results','oo_');
-
-dr0 = oo1.oo_.dr;
-dr = oo_.dr;
-
-ikr = [2:10 1 13:17];
-ikc2 = [1 3 4 2 9 11 12 10 13 15 16 14 5 7 8 6];
-
-if max(max(abs(dr0.ghxx - dr.ghxx(ikr,ikc2)))) > 1e-12;
-   disp('error in ghxx');
-end;
-if max(max(abs(dr0.ghuu - dr.ghuu(ikr,:)))) > 1e-12;
-   disp('error in ghuu');
-end;
-if max(max(abs(dr0.ghxu - dr.ghxu(ikr,[1 2 5:8 3 4])))) > 1e-12;
-   disp('error in ghxu');
-end;
-if max(max(abs(dr0.ghs2 - dr.ghs2(ikr)))) > 1e-12;
-   disp('error in ghs2');
-end;
-
-- 
GitLab