gt.m 2.37 KB
Newer Older
Stéphane Adjemian's avatar
Stéphane Adjemian committed
1
2
3
4
function c = gt(a,b)

%@info:
%! @deftypefn {Function File} {@var{c} =} gt (@var{a},@var{b})
5
%! @anchor{@dynDate/gt}
Stéphane Adjemian's avatar
Stéphane Adjemian committed
6
%! @sp 1
7
%! Overloads the gt (greater than) operator for the Dynare dates class (@ref{dynDate}).
Stéphane Adjemian's avatar
Stéphane Adjemian committed
8
9
10
11
12
%! @sp 2
%! @strong{Inputs}
%! @sp 1
%! @table @ @var
%! @item a
13
%! Dynare date object instantiated by @ref{dynDate}.
Stéphane Adjemian's avatar
Stéphane Adjemian committed
14
%! @item b
15
%! Dynare date object instantiated by @ref{dynDate}.
Stéphane Adjemian's avatar
Stéphane Adjemian committed
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
%! @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:}
%!
%! @end deftypefn
%@eod:

Sébastien Villemot's avatar
Sébastien Villemot committed
32
% Copyright (C) 2011-2013 Dynare Team
Stéphane Adjemian's avatar
Stéphane Adjemian committed
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
%
% 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 <http://www.gnu.org/licenses/>.

if nargin~=2
50
    error('dynDate::eq: I need exactly two input arguments!')
Stéphane Adjemian's avatar
Stéphane Adjemian committed
51
52
end

53
54
if ~( isa(a,'dynDate') && isa(b,'dynDate'))
    error(['dynDate::eq: Input arguments ' inputname(1) 'and ' inputname(2) ' have to be a dynDate objects!'])
Stéphane Adjemian's avatar
Stéphane Adjemian committed
55
56
end

57
if ~isequal(a.freq,b.freq)
58
    error(['dynDate::eq: Input arguments ' inputname(1) 'and ' inputname(2) ' have no common frequencies!'])
Stéphane Adjemian's avatar
Stéphane Adjemian committed
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
end

if a.time(1)>b.time(1)
    c = 1;
elseif isequal(a.time(1),b.time(1))
    if a.time(2)>b.time(2)
        c = 1;
    else
        c = 0;
    end
else
    c = 0;
end

%@test:1
%$ % Define some dates
%$ date_1 = 1950;
%$ date_2 = '1950Q2';
%$ date_3 = '1950Q3';
%$ date_4 = '1950Q1';
%$ date_5 = '1949Q2';
%$
%$ % Call the tested routine.
82
83
84
85
86
%$ d1 = dynDate(date_1);
%$ d2 = dynDate(date_2);
%$ d3 = dynDate(date_3);
%$ d4 = dynDate(date_4);
%$ d5 = dynDate(date_5);
Stéphane Adjemian's avatar
Stéphane Adjemian committed
87
88
89
90
91
92
93
94
95
96
97
%$ i1 = (d2>d3);
%$ i2 = (d3>d4);
%$ i3 = (d4>d2);
%$ i4 = (d5>d4);
%$
%$ % Check the results.
%$ t(1) = dyn_assert(i1,0);
%$ t(2) = dyn_assert(i2,1);
%$ t(3) = dyn_assert(i3,0);
%$ t(4) = dyn_assert(i4,0);
%$ T = all(t);
Sébastien Villemot's avatar
Sébastien Villemot committed
98
%@eof:1