diff --git a/src/@dates/isequal.m b/src/@dates/isequal.m index 3922f0356851a7ee3407bccd726e0d80b0b00798..f0d843d0e9c247170d2e94a27e8be3458e3455e5 100644 --- a/src/@dates/isequal.m +++ b/src/@dates/isequal.m @@ -1,6 +1,6 @@ function l = isequal(o, p, fake) % --*-- Unitary tests --*-- -% Overloads isequal function for dates objects. Returns true (1) iff o and p have the same elements. +% Overloads isequal function for dates objects. Returns true true iff o and p have the same elements. % % INPUTS % - o [dates] @@ -9,7 +9,7 @@ function l = isequal(o, p, fake) % --*-- Unitary tests --*-- % OUTPUTS % - l [logical] -% Copyright (C) 2013-2017 Dynare Team +% Copyright © 2013-2020 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 @@ -28,44 +28,82 @@ if ~isa(o,'dates') || ~isa(p,'dates') error('dates:isequal:ArgCheck','Both inputs must be dates objects!') end -l = isequal(o.freq, p.freq) && isequal(o.time, p.time); +if o.freq==365 + l = isequal(o.freq, p.freq) && isequal(o.time(:,1), p.time(:,1)); +else + l = isequal(o.freq, p.freq) && isequal(o.time, p.time); +end + +return %@test:1 -%$ d1 = dates('1938Q1'); -%$ d2 = dates('1938Q1'); -%$ % Test if this object is empty -%$ t(1) = isequal(d1,d2); -%$ T = all(t); +d1 = dates('1938Q1'); +d2 = dates('1938Q1'); +% Test if this object is empty +try + t(1) = isequal(d1, d2); +catch + t(1) = false; +end +T = all(t); %@eof:1 %@test:2 -%$ d1 = dates('1938Q1'); -%$ d2 = dates('1938Q2'); -%$ % Test if this object is empty -%$ t(1) = ~isequal(d1,d2); -%$ T = all(t); +d1 = dates('1938Q1'); +d2 = dates('1938Q2'); +% Test if this object is empty +try + t(1) = ~isequal(d1,d2); +catch + t(1) = false; +end +T = all(t); %@eof:2 %@test:3 -%$ d1 = dates('1938Q4'); -%$ d2 = dates('1938M11'); -%$ % Test if this object is empty -%$ t(1) = ~isequal(d1,d2); -%$ T = all(t); +d1 = dates('1938Q4'); +d2 = dates('1938M11'); +% Test if this object is empty +try + t(1) = ~isequal(d1,d2); +catch + t(1) = false; +end +T = all(t); %@eof:3 %@test:4 -%$ d1 = dates('1938Q4','1938Q3'); -%$ d2 = dates('1938Q3','1938Q1'); -%$ % Test if this object is empty -%$ t(1) = ~isequal(d1,d2); -%$ T = all(t); +d1 = dates('1938Q4','1938Q3'); +d2 = dates('1938Q3','1938Q1'); +% Test if this object is empty +try + t(1) = ~isequal(d1,d2); +catch + t(1) = false; +end +T = all(t); %@eof:4 %@test:5 -%$ d1 = dates('1938Q4','1938Q3','1938Q2'); -%$ d2 = dates('1938Q3','1938Q1'); -%$ % Test if this object is empty -%$ t(1) = ~isequal(d1,d2); -%$ T = all(t); +d1 = dates('1938Q4','1938Q3','1938Q2'); +d2 = dates('1938Q3','1938Q1'); +% Test if this object is empty +try + t(1) = ~isequal(d1,d2); +catch + t(1) = false; +end +T = all(t); %@eof:5 + +%@test:6 +d1 = dates('1938-11-22'); +d2 = dates('1945-09-01'); +% Test if this object is empty +try + t(1) = ~isequal(d1,d2); +catch + t(1) = false; +end +T = all(t); +%@eof:6