diff --git a/matlab/@dynDate/le.m b/matlab/@dynDate/le.m deleted file mode 100644 index 67fb532a3..000000000 --- a/matlab/@dynDate/le.m +++ /dev/null @@ -1,83 +0,0 @@ -function c = le(a,b) % --*-- Unitary tests --*-- - -%@info: -%! @deftypefn {Function File} {@var{c} =} le (@var{a},@var{b}) -%! @anchor{@dynDate/le} -%! @sp 1 -%! Overloads the le (less or equal) operator for the Dynare dates class (@ref{dynDate}). -%! @sp 2 -%! @strong{Inputs} -%! @sp 1 -%! @table @ @var -%! @item a -%! Dynare date object instantiated by @ref{dynDate}. -%! @item b -%! Dynare date object instantiated by @ref{dynDate}. -%! @end table -%! @sp 1 -%! @strong{Outputs} -%! @sp 1 -%! @table @ @var -%! @item c -%! scalar integer equal to one if a<=b, 0 otherwise. -%! @end table -%! @sp 2 -%! @strong{This function is called by:} -%! @sp 2 -%! @strong{This function calls:} -%! @ref{@@dynDate/lt}, @ref{@@dynDate/eq} -%! -%! @end deftypefn -%@eod: - -% Copyright (C) 2011-2013 Dynare Team -% -% This file is part of Dynare. -% -% Dynare is free software: you can redistribute it and/or modify -% it under the terms of the GNU General Public License as published by -% the Free Software Foundation, either version 3 of the License, or -% (at your option) any later version. -% -% Dynare is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -% GNU General Public License for more details. -% -% You should have received a copy of the GNU General Public License -% along with Dynare. If not, see . - -if a. + +if ~isequal(nargin,2) + error('dynDates::lt: I need exactly two input arguments!') +end + +if ~isa(A,'dynDates') || ~isa(B,'dynDates') + error(['dynDates::le: Input arguments ''' inputname(1) ''' and ''' inputname(2) ''' have to be a dynDates objects!']) +end + +if ~isequal(A.freq,B.freq) + C = 0; + return +end + +if isequal(A.ndat, B.ndat) + C = (A==B); + idx = find(C==0); + for i=1:length(idx) + C(idx(i)) = compare_vectors(@lt, A.time(idx(i),:), B.time(idx(i),:)); + end +else + if isequal(A.ndat,1) && isequal(B.ndat,1) + C = compare_vectors(@le, A.time, B.time); + elseif isequal(A.ndat,1) + C = NaN(B.ndat,1); + for i=1:B.ndat + C(i) = compare_vectors(@le, A.time, B.time(i,:)); + end + elseif isequal(B.ndat,1) + C = NaN(A.ndat,1); + for i=1:A.ndat + C(i) = compare_vectors(@le, A.time(i,:), B.time); + end + else + C = 0; + end +end + +%@test:1 +%$ % Define some dates +%$ date_2 = '1950Q2'; +%$ date_3 = '1950Q3'; +%$ date_4 = '1950Q1'; +%$ date_5 = '1949Q2'; +%$ +%$ % Call the tested routine. +%$ d2 = dynDates(date_2); +%$ d3 = dynDates(date_3); +%$ d4 = dynDates(date_4); +%$ d5 = dynDates(date_5); +%$ i1 = (d2<=d3); +%$ i2 = (d3<=d4); +%$ i3 = (d4<=d2); +%$ i4 = (d5<=d4); +%$ i5 = (d5<=d5); +%$ +%$ % Check the results. +%$ t(1) = dyn_assert(i1,1); +%$ t(2) = dyn_assert(i2,0); +%$ t(3) = dyn_assert(i3,1); +%$ t(4) = dyn_assert(i4,1); +%$ t(5) = dyn_assert(i5,1); +%$ T = all(t); +%@eof:1 + +%@test:2 +%$ % Define some dates +%$ B1 = '1945Q1'; +%$ B2 = '1945Q2'; +%$ B3 = '1945Q3'; +%$ B4 = '1945Q4'; +%$ B5 = '1950Q1'; +%$ +%$ % Create dynDates objects. +%$ dd = dynDates(B1,B2,B3,B4); +%$ +%$ % Check the results. +%$ t(1) = dyn_assert(dynDates(B1)<=dynDates(B2),1); +%$ t(2) = dyn_assert(dynDates(B2)<=dynDates(B1),0); +%$ t(3) = dyn_assert(dynDates(B2)<=dynDates(B2),1); +%$ t(4) = dyn_assert(dd<=dynDates(B5),ones(4,1)); +%$ t(5) = dyn_assert(dynDates(B5)<=dd,zeros(4,1)); +%$ t(6) = dyn_assert(dynDates(B1)<=dd,ones(4,1)); +%$ T = all(t); +%@eof:2 \ No newline at end of file