diff --git a/meson.build b/meson.build
index 126982f0441f0f009cf471e871ba72297d7f67e4..96b3a6dfb19c4bcddeaddd25aaf48c5aa348cf58 100644
--- a/meson.build
+++ b/meson.build
@@ -1768,11 +1768,14 @@ mod_and_m_tests = [
   { 'test' : [ 'ecb/pooled_fgls/test_param_names.mod' ] },
 
   # Particle files
-  { 'test' : [ 'particle/dsge_base2.mod' ],
+  { 'test' : [ 'particle/dsge_base2.mod',
+               'particle/dsge_base_Liu_West.mod',
+               'particle/dsge_base_HSSMC_DSMH.mod',],
     'extra' : [ 'particle/risky.m',
                 'particle/extreme.m',
                 'particle/benchmark.m',
-                'particle/mysample.m'] },
+                'particle/mysample.m',
+                'particle/dsge_base.inc'] },
   { 'test' : [ 'particle/first_spec.mod',
                'particle/first_spec_hssmc.mod',
                'particle/local_state_space_iteration_k_test.mod',
diff --git a/tests/particle/dsge_base.inc b/tests/particle/dsge_base.inc
new file mode 100644
index 0000000000000000000000000000000000000000..1c9e0ce1202ad97e3fcc504ec470eaa1be05d0a4
--- /dev/null
+++ b/tests/particle/dsge_base.inc
@@ -0,0 +1,56 @@
+var k A c l i y;
+varexo e_a;
+
+parameters alp bet tet tau delt rho ;
+alp = 0.4;
+bet = 0.99;
+tet = 0.357 ;
+tau =  50 ;
+delt = 0.02;
+rho = 0.95;
+
+model;
+	c = ((1 - alp)*tet/(1-tet))*A*(1-l)*((k(-1)/l)^alp) ;
+	y = A*(k(-1)^alp)*(l^(1-alp)) ;
+	i = y-c ;
+	k = (1-delt)*k(-1) + i ;
+	log(A) = rho*log(A(-1)) + e_a ;
+	(((c^(tet))*((1-l)^(1-tet)))^(1-tau))/c - bet*((((c(+1)^(tet))*((1-l(+1))^(1-tet)))^(1-tau))/c(+1))*(1 -delt+alp*(A(1)*(k^alp)*(l(1)^(1-alp)))/k)=0 ;
+end;
+
+steady_state_model;
+	k = -(alp-1)*(alp^(1/(1-alp)))*(bet^(1/(1-alp)))*((bet*(delt-1)+1)^(alp/(alp-1)))*tet/(-alp*delt*bet+delt*bet+alp*tet*bet-bet-alp*tet+1);
+	l = (alp-1)*(bet*(delt-1)+1)*tet/(alp*tet+bet*((alp-1)*delt-alp*tet+1)-1) ;
+	y = (k^alp)*(l^(1-alp)) ;
+	i = delt*k ;
+	c = y - i ;
+	A = 1;
+end;
+
+shocks;
+    var e_a; stderr 0.035;
+end;
+
+steady;
+
+estimated_params;
+    alp, uniform_pdf,,, 0.0001, 0.99;
+    bet, uniform_pdf,,, 0.0001, 0.99999;
+    tet, uniform_pdf,,, 0.0001, .999;
+    tau, uniform_pdf,,, 0.0001, 100;
+    delt, uniform_pdf,,, 0.0001, 0.05;
+    rho, uniform_pdf,,, 0.0001, 0.9999;
+    stderr e_a, uniform_pdf,,, 0.00001, 0.1;
+    stderr y, uniform_pdf,,, 0.00001, 0.1;
+    stderr l, uniform_pdf,,, 0.00001, 0.1;
+    stderr i, uniform_pdf,,, 0.00001, 0.1;
+end;
+
+varobs y l i ;
+
+%data(file='./risky.m');
+%stoch_simul(order=5,periods=1000);
+%datatomfile('mysample')
+%return;
+
+data(file='./mysample.m',first_obs=801Y,nobs=50); %no measurement errors added in the simulated data
diff --git a/tests/particle/dsge_base2.mod b/tests/particle/dsge_base2.mod
index 2b3873ec5a6b14292174eb4e6525bb48d5060461..c5e5f3b59f26a770d478b18aa6ed084adb2aabe1 100644
--- a/tests/particle/dsge_base2.mod
+++ b/tests/particle/dsge_base2.mod
@@ -8,7 +8,7 @@
 @#endif
 
 @#ifndef ALGO_SIR
-    @#define ALGO_SIR = 0
+    @#define ALGO_SIR = 1
 @#endif
 
 @#ifndef ALGO_APF
@@ -36,58 +36,13 @@
 @#endif
 
 @#ifndef DSMH
-    @#define DSMH = 1
+    @#define DSMH = 0
 @#endif
 
 %%
 
-var k A c l i y;
-varexo e_a;
-
-parameters alp bet tet tau delt rho ;
-alp = 0.4;
-bet = 0.99;
-tet = 0.357 ;
-tau =  50 ;
-delt = 0.02;
-rho = 0.95;
-
-model;
-	c = ((1 - alp)*tet/(1-tet))*A*(1-l)*((k(-1)/l)^alp) ;
-	y = A*(k(-1)^alp)*(l^(1-alp)) ;
-	i = y-c ;
-	k = (1-delt)*k(-1) + i ;
-	log(A) = rho*log(A(-1)) + e_a ;
-	(((c^(tet))*((1-l)^(1-tet)))^(1-tau))/c - bet*((((c(+1)^(tet))*((1-l(+1))^(1-tet)))^(1-tau))/c(+1))*(1 -delt+alp*(A(1)*(k^alp)*(l(1)^(1-alp)))/k)=0 ;
-end;
-
-steady_state_model;
-	k = -(alp-1)*(alp^(1/(1-alp)))*(bet^(1/(1-alp)))*((bet*(delt-1)+1)^(alp/(alp-1)))*tet/(-alp*delt*bet+delt*bet+alp*tet*bet-bet-alp*tet+1);
-	l = (alp-1)*(bet*(delt-1)+1)*tet/(alp*tet+bet*((alp-1)*delt-alp*tet+1)-1) ;
-	y = (k^alp)*(l^(1-alp)) ;
-	i = delt*k ;
-	c = y - i ;
-	A = 1;
-end;
+@#include "dsge_base.inc"
 
-shocks;
-    var e_a; stderr 0.035;
-end;
-
-steady;
-
-estimated_params;
-    alp, uniform_pdf,,, 0.0001, 0.99;
-    bet, uniform_pdf,,, 0.0001, 0.99999;
-    tet, uniform_pdf,,, 0.0001, .999;
-    tau, uniform_pdf,,, 0.0001, 100;
-    delt, uniform_pdf,,, 0.0001, 0.05;
-    rho, uniform_pdf,,, 0.0001, 0.9999;
-    stderr e_a, uniform_pdf,,, 0.00001, 0.1;
-    stderr y, uniform_pdf,,, 0.00001, 0.1;
-    stderr l, uniform_pdf,,, 0.00001, 0.1;
-    stderr i, uniform_pdf,,, 0.00001, 0.1;
-end;
 
 estimated_params_init;
 	alp, 0.4;
@@ -102,14 +57,6 @@ estimated_params_init;
 	stderr i, .001;
 end;
 
-varobs y l i ;
-
-%data(file='./risky.m');
-%stoch_simul(order=5,periods=1000);
-%datatomfile('mysample')
-%return;
-
-data(file='./mysample.m',first_obs=801Y,nobs=50); %no measurement errors added in the simulated data
 
 @#if LINEAR_KALMAN
 	estimation(nograph,order=1,mode_compute=8,silent_optimizer,mh_replic=0,additional_optimizer_steps=[8 4],mode_check);
@@ -192,15 +139,3 @@ estimation(order=3,nograph,filter_algorithm=gf,proposal_approximation=montecarlo
   end;  
 estimation(order=3,filter_algorithm=nlkf,number_of_particles=10000,proposal_approximation=montecarlo,resampling=none,silent_optimizer,mode_compute=0,cova_compute=0,MCMC_jumping_covariance=prior_variance,mh_init_scale_factor=0.01);
 @#endif
-
-@#if HSSMC
-  estimation(order=1,posterior_sampling_method='hssmc',posterior_sampler_options=('particles',1000));
-%  estimation(order=2,posterior_sampling_method='hssmc',posterior_sampler_options=('particles',1000));
-%  estimation(order=3,posterior_sampling_method='hssmc',filter_algorithm=nlkf,proposal_approximation=montecarlo,number_of_particles=500,posterior_sampler_options=('particles',500));
-@#endif
-
-@#if DSMH
-  estimation(order=1,posterior_sampling_method='dsmh',posterior_sampler_options=('particles',200));
-%  estimation(order=2,posterior_sampling_method='dsmh',posterior_sampler_options=('particles',1000));
-%  estimation(order=3,posterior_sampling_method='dsmh',filter_algorithm=nlkf,proposal_approximation=montecarlo,number_of_particles=500,posterior_sampler_options=('particles',500));
-@#endif
diff --git a/tests/particle/dsge_base_HSSMC_DSMH.mod b/tests/particle/dsge_base_HSSMC_DSMH.mod
new file mode 100644
index 0000000000000000000000000000000000000000..4767fa95ad2c9e414df1b7460481a1e611257a82
--- /dev/null
+++ b/tests/particle/dsge_base_HSSMC_DSMH.mod
@@ -0,0 +1,35 @@
+@#ifndef HSSMC
+    @#define HSSMC = 1
+@#endif
+
+@#ifndef DSMH
+    @#define DSMH = 1
+@#endif
+
+@#include "dsge_base.inc"
+
+    
+estimated_params_init;
+	alp, 0.4;
+	bet, 0.99;
+	tet, 0.357;
+	tau, 50;
+	delt, 0.02;
+	rho, 0.95;
+	stderr e_a, .035;
+	stderr y, .001;
+	stderr l, .001;
+	stderr i, .001;
+end;
+
+@#if HSSMC
+  estimation(order=1,posterior_sampling_method='hssmc',posterior_sampler_options=('particles',1000));
+%  estimation(order=2,posterior_sampling_method='hssmc',posterior_sampler_options=('particles',1000));
+%  estimation(order=3,posterior_sampling_method='hssmc',filter_algorithm=nlkf,proposal_approximation=montecarlo,number_of_particles=500,posterior_sampler_options=('particles',500));
+@#endif
+
+@#if DSMH
+  estimation(order=1,posterior_sampling_method='dsmh',posterior_sampler_options=('particles',200));
+%  estimation(order=2,posterior_sampling_method='dsmh',posterior_sampler_options=('particles',1000));
+%  estimation(order=3,posterior_sampling_method='dsmh',filter_algorithm=nlkf,proposal_approximation=montecarlo,number_of_particles=500,posterior_sampler_options=('particles',500));
+@#endif
\ No newline at end of file
diff --git a/tests/particle/dsge_base_Liu_West.mod b/tests/particle/dsge_base_Liu_West.mod
new file mode 100644
index 0000000000000000000000000000000000000000..45509281170ccd4d572d1d7f45315aa985fbdcbf
--- /dev/null
+++ b/tests/particle/dsge_base_Liu_West.mod
@@ -0,0 +1,32 @@
+@#ifndef ALGO_ONLINE
+    @#define ALGO_ONLINE = 1
+@#endif
+
+@#include "dsge_base.inc"
+
+estimated_params_init;
+	alp, 0.4;
+	bet, 0.99;
+	tet, 0.357;
+	tau, 50;
+	delt, 0.02;
+	rho, 0.95;
+	stderr e_a, .035;
+	stderr y, .001;
+	stderr l, .001;
+	stderr i, .001;
+end;
+options_.TeX=true;
+
+@#if ALGO_ONLINE
+  // estimation(order=1,posterior_sampling_method='online',posterior_sampler_options=('particles',100));
+  // estimation(order=2,posterior_sampling_method='online',posterior_sampler_options=('particles',100));
+  estimation(order=3,posterior_sampling_method='online',filter_algorithm=nlkf,proposal_approximation=montecarlo,posterior_sampler_options=('particles',100));
+@#endif
+
+collect_latex_files;
+[status, cmdout]=system(['pdflatex -halt-on-error -interaction=nonstopmode ' M_.fname '_TeX_binder.tex']);
+if status
+    cmdout
+    error('TeX-File did not compile.')
+end