diff --git a/tests/block_bytecode/example1_varexo_det_bytecode.mod b/tests/block_bytecode/example1_varexo_det_bytecode.mod new file mode 100644 index 000000000..e567161f9 --- /dev/null +++ b/tests/block_bytecode/example1_varexo_det_bytecode.mod @@ -0,0 +1,58 @@ +// Test for varexo_det and forecast command at order 1 + +var y, c, k, a, h, b; +varexo e,u; +varexo_det ahat, bhat; + +parameters beta, rho, alpha, delta, theta, psi, tau; + +alpha = 0.36; +rho = 0.95; +tau = 0.025; +beta = 0.99; +delta = 0.025; +psi = 0; +theta = 2.95; + +phi = 0.1; + +//model(bytecode); +model; +c*theta*h^(1+psi)=(1-alpha)*y; +k = beta*(((exp(b)*c)/(exp(b(+1))*c(+1))) + *(exp(b(+1))*alpha*y(+1)+(1-delta)*k)); +y = exp(a)*(k(-1)^alpha)*(h^(1-alpha)); +k = exp(b)*(y-c)+(1-delta)*k(-1); +a = ahat+ rho*a(-1)+tau*b(-1) + e; +b = bhat+ tau*a(-1)+rho*b(-1) + u; +end; + +initval; +y = 1.08068253095672; +c = 0.80359242014163; +h = 0.29175631001732; +k = 5; +a = 0; +b = 0; +e = 0; +u = 0; +ahat = 0; +bhat = 0; +end; + +//simul(periods=20); +shocks; +var e; stderr 0.009; +var u; stderr 0.009; +var e, u = phi*0.009*0.009; +var ahat; +periods 1; +values 0.1; +var bhat; +periods 2; +values 0.2; +end; + +stoch_simul(order=1,irf=0,noprint); + +forecast(periods=20); diff --git a/tests/block_bytecode/run_block_bytecode_tests.m b/tests/block_bytecode/run_block_bytecode_tests.m index 86d317589..2ab8e8bc5 100644 --- a/tests/block_bytecode/run_block_bytecode_tests.m +++ b/tests/block_bytecode/run_block_bytecode_tests.m @@ -45,7 +45,16 @@ for block = 0:1 for i = 1:length(solve_algos) save ws - run_ls2003(block, bytecode, solve_algos(i), default_stack_solve_algo) + if !block && !bytecode && (i == 1) + run_ls2003(block, bytecode, solve_algos(i), default_stack_solve_algo) + y_ref = oo_.endo_simul; + save('test.mat','y_ref'); + else + run_ls2003(block, bytecode, solve_algos(i), default_stack_solve_algo) + load('test.mat','y_ref'); + diff = oo_.endo_simul - y_ref; + assert(abs(diff) <= options_.dynatol); + endif load ws endfor for i = 1:length(stack_solve_algos)