diff --git a/src/utilities/convert/dseries2M.m b/src/utilities/convert/dseries2M.m
index 5e2b6a21ad6eb2ea887d38a44ef0999dc6e8ba4a..66fc91c92766129b4f213b23239fe1f4dd61ef67 100644
--- a/src/utilities/convert/dseries2M.m
+++ b/src/utilities/convert/dseries2M.m
@@ -1,4 +1,4 @@
-function ts = dseries2M(ds, method)
+function ts = dseries2M(ds, method) % --*-- Unitary tests --*--
 
 % INPUTS
 % - ds       [dseries]    daily frequency object with n elements.
@@ -11,7 +11,7 @@ function ts = dseries2M(ds, method)
 % OUTPUTS
 % - ts       [dseries]    monthly frequency object with m<n elements.
 
-% Copyright © 2020 Dynare Team
+% Copyright © 2020-2021 Dynare Team
 %
 % This code is free software: you can redistribute it and/or modify
 % it under the terms of the GNU General Public License as published by
@@ -71,9 +71,72 @@ end
 
 ts = dseries(tdata, dM, ds.name, ds.tex);
 
+return
 
+%@test:1
+try
+    ts = dseries(randn(366, 1), '2020-01-01');
+    ds = dseries2M(ts, 'arithmetic-average');
+    t(1) = true;
+catch
+    t(1) = false;
 end
 
 if t(1)
+    t(2) = ds.freq==12;
+    t(3) = ds.nobs==12;
 end
 
+T = all(t);
+%@eof:1
+
+%@test:2
+try
+    ts = dseries(1.02-rand(366, 1)*0.05, '2020-01-01');
+    ds = dseries2M(ts, 'geometric-average');
+    t(1) = true;
+catch
+    t(1) = false;
+end
+
+if t(1)
+    t(2) = ds.freq==12;
+    t(3) = ds.nobs==12;
+end
+
+T = all(t);
+%@eof:2
+
+%@test:3
+try
+    ts = dseries(randn(366, 1), '2020-01-01');
+    ds = dseries2M(ts, 'sum');
+    t(1) = true;
+catch
+    t(1) = false;
+end
+
+if t(1)
+    t(2) = ds.freq==12;
+    t(3) = ds.nobs==12;
+end
+
+T = all(t);
+%@eof:3
+
+%@test:4
+try
+    ts = dseries(randn(366, 1), '2020-01-01');
+    ds = dseries2M(ts, 'end-of-period');
+    t(1) = true;
+catch
+    t(1) = false;
+end
+
+if t(1)
+    t(2) = ds.freq==12;
+    t(3) = ds.nobs==12;
+end
+
+T = all(t);
+%@eof:4
diff --git a/src/utilities/convert/dseries2Q.m b/src/utilities/convert/dseries2Q.m
index ac14ca430e21a8e541e629a66c0902a45253e7a2..1bd53b2d95d6c69ba9b05852874a1de4eea9b786 100644
--- a/src/utilities/convert/dseries2Q.m
+++ b/src/utilities/convert/dseries2Q.m
@@ -1,4 +1,4 @@
-function ts = dseries2Q(ds, method)
+function ts = dseries2Q(ds, method)  % --*-- Unitary tests --*--
 
 % INPUTS
 % - ds       [dseries]    daily or monthly frequency object with n elements.
@@ -11,7 +11,7 @@ function ts = dseries2Q(ds, method)
 % OUTPUTS
 % - ts       [dseries]    quaterly frequency object with m<n elements.
 
-% Copyright © 2020 Dynare Team
+% Copyright © 2020-2021 Dynare Team
 %
 % This code is free software: you can redistribute it and/or modify
 % it under the terms of the GNU General Public License as published by
@@ -86,4 +86,142 @@ switch method
     error('Unknow method.')
 end
 
-ts = dseries(tdata, dQ, ds.name, ds.tex);
\ No newline at end of file
+ts = dseries(tdata, dQ, ds.name, ds.tex);
+
+return
+
+%@test:1
+try
+    ts = dseries(randn(366, 1), '2020-01-01');
+    ds = dseries2Q(ts, 'arithmetic-average');
+    t(1) = true;
+catch
+    t(1) = false;
+end
+
+if t(1)
+    t(2) = ds.freq==4;
+    t(3) = ds.nobs==4;
+end
+
+T = all(t);
+%@eof:1
+
+%@test:2
+try
+    ts = dseries(1.02-rand(366, 1)*0.05, '2020-01-01');
+    ds = dseries2Q(ts, 'geometric-average');
+    t(1) = true;
+catch
+    t(1) = false;
+end
+
+if t(1)
+    t(2) = ds.freq==4;
+    t(3) = ds.nobs==4;
+end
+
+T = all(t);
+%@eof:2
+
+%@test:3
+try
+    ts = dseries(randn(366, 1), '2020-01-01');
+    ds = dseries2Q(ts, 'sum');
+    t(1) = true;
+catch
+    t(1) = false;
+end
+
+if t(1)
+    t(2) = ds.freq==4;
+    t(3) = ds.nobs==4;
+end
+
+T = all(t);
+%@eof:3
+
+%@test:4
+try
+    ts = dseries(randn(366, 1), '2020-01-01');
+    ds = dseries2Q(ts, 'end-of-period');
+    t(1) = true;
+catch
+    t(1) = false;
+end
+
+if t(1)
+    t(2) = ds.freq==4;
+    t(3) = ds.nobs==4;
+end
+
+T = all(t);
+%@eof:4
+
+%@test:5
+try
+    ts = dseries(randn(12, 1), '2020M1');
+    ds = dseries2Q(ts, 'arithmetic-average');
+    t(1) = true;
+catch
+    t(1) = false;
+end
+
+if t(1)
+    t(2) = ds.freq==4;
+    t(3) = ds.nobs==4;
+end
+
+T = all(t);
+%@eof:5
+
+%@test:6
+try
+    ts = dseries(1.02-rand(12, 1)*0.5, '2020M1');
+    ds = dseries2Q(ts, 'geometric-average');
+    t(1) = true;
+catch
+    t(1) = false;
+end
+
+if t(1)
+    t(2) = ds.freq==4;
+    t(3) = ds.nobs==4;
+end
+
+T = all(t);
+%@eof:6
+
+%@test:7
+try
+    ts = dseries(randn(12, 1), '2020M1');
+    ds = dseries2Q(ts, 'sum');
+    t(1) = true;
+catch
+    t(1) = false;
+end
+
+if t(1)
+    t(2) = ds.freq==4;
+    t(3) = ds.nobs==4;
+end
+
+T = all(t);
+%@eof:7
+
+%@test:8
+try
+    ts = dseries(randn(12, 1), '2020M1');
+    ds = dseries2Q(ts, 'end-of-period');
+    t(1) = true;
+catch
+    t(1) = false;
+end
+
+if t(1)
+    t(2) = ds.freq==4;
+    t(3) = ds.nobs==4;
+end
+
+T = all(t);
+%@eof:8
\ No newline at end of file