From e01cabc9fe2880bb79dcbc03102f96e00085fb33 Mon Sep 17 00:00:00 2001
From: Houtan Bastani <houtan@dynare.org>
Date: Fri, 7 Apr 2017 12:43:21 +0200
Subject: [PATCH] =?UTF-8?q?fix=20bug=20when=20concatenating=20series=20tha?=
 =?UTF-8?q?t=20don=E2=80=99t=20overlap.=20closes=20#17=20(cherry=20picked?=
 =?UTF-8?q?=20from=20commit=20cd4bfdcf296033c3263a3346491cfd478a508a52)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

(cherry picked from commit 8c2ef8fbc195bbda7d4005a52b1a279f9d9744c2)
---
 src/@dseries/horzcat.m | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/@dseries/horzcat.m b/src/@dseries/horzcat.m
index 5722922..7870be4 100644
--- a/src/@dseries/horzcat.m
+++ b/src/@dseries/horzcat.m
@@ -97,8 +97,23 @@ function a = concatenate(b,c)
         elseif b_last_date>c_last_date
             c.data = [c.data; NaN(b_last_date-c_last_date, vobs(c))];
         end
+
+        fillerdates = dates();
+        if max(c.dates) < min(b.dates)
+            fillerdates = max(c.dates):min(b.dates);
+        end
+        if max(b.dates) < min(c.dates)
+            fillerdates = max(b.dates):min(c.dates);
+        end
+
+        if isempty(fillerdates)
+            hd = [b.dates, c.dates];
+        else
+            hd = [b.dates, fillerdates, c.dates];
+        end
+
         a.data = [b.data, c.data];
-        a.dates = sort(unique([b.dates, c.dates]));
+        a.dates = sort(unique(hd));
     end
 
 %@test:1
-- 
GitLab