From 03a409517a9dc373eec8a0b6c98480f0fc8c145c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Scylla=29?=
 <stephane.adjemian@univ-lemans.fr>
Date: Tue, 10 Oct 2017 15:43:05 +0200
Subject: [PATCH] Changed behaviour of eq (==) overload method.

If non singleton objects have different number of elements, return
false instead of raising an error message.
---
 src/@dates/eq.m                            | 5 +++++
 src/@dates/private/comparison_arg_checks.m | 4 +++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/@dates/eq.m b/src/@dates/eq.m
index cb94169..58ef96b 100644
--- a/src/@dates/eq.m
+++ b/src/@dates/eq.m
@@ -24,6 +24,11 @@ function l = eq(varargin) % --*-- Unitary tests --*--
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
+if varargin{1}.ndat>1 && varargin{2}.ndat>1 && ~isequal(varargin{1}.ndat, varargin{2}.ndat)
+    l = false;
+    return
+end
+
 [o, p] = comparison_arg_checks(varargin{:});
 
 if isequal(o.ndat(), p.ndat())
diff --git a/src/@dates/private/comparison_arg_checks.m b/src/@dates/private/comparison_arg_checks.m
index e24fba0..7fe8c05 100644
--- a/src/@dates/private/comparison_arg_checks.m
+++ b/src/@dates/private/comparison_arg_checks.m
@@ -41,7 +41,9 @@ end
 
 if ~isequal(varargin{1}.ndat, varargin{2}.ndat) && ~(isequal(varargin{1}.ndat,1) || isequal(varargin{2}.ndat,1))
     s = dbstack;
-    error(sprintf('dates:%s:ArgCheck',s(2).name),'Dimensions are not consistent!')
+    if ~isequal(s(2).name, 'eq')
+        error(sprintf('dates:%s:ArgCheck',s(2).name),'Dimensions are not consistent!')
+    end
 end
 
 o = varargin{1};
-- 
GitLab