From c5e1bf99b72b81e475d68f212a0ec169dc7070fd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Charybdis=29?=
 <stepan@adjemian.eu>
Date: Fri, 17 Jan 2020 18:03:39 +0100
Subject: [PATCH] Removed third argument.

Second argument of merge overwrites its first argument except if
second argument has NaNs (in this case first argument takes
precedence). This commit reverts fd7476e and adds a new unit test.

(cherry picked from commit c5b190d847f87d7c2ee35645985b2f020b986c9a)
---
 src/@dseries/merge.m | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

diff --git a/src/@dseries/merge.m b/src/@dseries/merge.m
index 6827b7b..6d3e703 100644
--- a/src/@dseries/merge.m
+++ b/src/@dseries/merge.m
@@ -1,11 +1,10 @@
-function q = merge(o, p, rewritewithnans) % --*-- Unitary tests --*--
+function q = merge(o, p) % --*-- Unitary tests --*--
 
 % Merge method for dseries objects.
 %
 % INPUTS
 % - o                [dseries]
 % - p                [dseries]
-% - rewritewithnans  [logical]
 %
 % OUTPUTS
 % - q                [dseries]
@@ -55,10 +54,6 @@ if ~isequal(frequency(o), frequency(p))
     end
 end
 
-if nargin<3
-    rewritewithnans = true;
-end
-
 q = dseries();
 
 [q.name, IBC, ~] = unique([o.name; p.name], 'last');
@@ -109,7 +104,7 @@ elseif firstdate(o) >= firstdate(p)
     end
     Z = [Z1 Z2];
     q.data = Z(:,IBC);
-    if ~rewritewithnans && ~isempty(list_of_common_variables)
+    if ~isempty(list_of_common_variables)
         for i=1:length(iP)
             jO = iO(i);
             jP = iP(i);
@@ -133,7 +128,7 @@ else
     end
     Z = [Z2 Z1];
     q.data = Z(:,IBC);
-    if ~rewritewithnans && ~isempty(list_of_common_variables)
+    if ~isempty(list_of_common_variables)
         for i=1:length(iP)
             jO = iO(i);
             jP = iP(i);
@@ -213,7 +208,7 @@ q.dates = q_init:q_init+(nobs(q)-1);
 %@test:3
 %$ % Define two dseries objects.
 %$ y = dseries(ones(4,1),'1989Q1', 'u');
-%$ z = dseries(ones(4,1),'1990Q1', 'u');
+%$ z = dseries(2*ones(4,1),'1990Q1', 'u');
 %$
 %$ % Merge the two objects.
 %$ try
@@ -226,7 +221,7 @@ q.dates = q_init:q_init+(nobs(q)-1);
 %$ if t(1)
 %$    t(2) = dassert(x.vobs,1);
 %$    t(3) = dassert(x.name{1},'u');
-%$    t(4) = dassert(x.data(5:end), ones(4,1)) && all(isnan(x.data(1:4)));
+%$    t(4) = all(x.data(5:end)==2) && all(x.data(1:4)==1);
 %$    t(5) = all(x.dates==dates('1989Q1'):dates('1990Q4'));
 %$ end
 %$ T = all(t);
@@ -235,11 +230,11 @@ q.dates = q_init:q_init+(nobs(q)-1);
 %@test:4
 %$ % Define two dseries objects.
 %$ y = dseries(ones(4,1),'1989Q1', 'u');
-%$ z = dseries(ones(4,1),'1990Q1', 'u');
+%$ z = dseries([NaN(4,1); 2*ones(4,1)],'1989Q1', 'u');
 %$
 %$ % Merge the two objects.
 %$ try
-%$    x = merge(y, z, false);
+%$    x = merge(y, z);
 %$    t(1) = true;
 %$ catch
 %$    t = false;
@@ -248,7 +243,7 @@ q.dates = q_init:q_init+(nobs(q)-1);
 %$ if t(1)
 %$    t(2) = dassert(x.vobs,1);
 %$    t(3) = dassert(x.name{1},'u');
-%$    t(4) = dassert(x.data, ones(8,1));
+%$    t(4) = all(x.data(5:end)==2) && all(x.data(1:4)==1);
 %$    t(5) = all(x.dates==dates('1989Q1'):dates('1990Q4'));
 %$ end
 %$ T = all(t);
-- 
GitLab