function B = uplus(A) % --*-- Unitary tests --*-- % Overloads the unary plus operator for dates objects. Shifts all the elements by one period. % % INPUTS % o A dates object with n elements. % % OUTPUTS % o B dates object with n elements. % Copyright (C) 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 . B = dates(A); B.time(:,2) = B.time(:,2)+1; idx = find(B.time(:,2)>B.freq); % Happy new year! B.time(idx,1) = B.time(idx,1)+1; B.time(idx,2) = 1; %@test:1 %$ % Define some dates %$ date_1 = '1950Y'; %$ date_2 = '1950Q2'; %$ date_3 = '1950Q4'; %$ date_4 = '1950M2'; %$ date_5 = '1950M12'; %$ %$ % Call the tested routine. %$ d1 = dates(date_1); d1 = +d1; %$ d2 = dates(date_2); d2 = +d2; %$ d3 = dates(date_3); d3 = +d3; %$ d4 = dates(date_4); d4 = +d4; %$ d5 = dates(date_5); d5 = +d5; %$ i1 = (d1==dates('1951Y')); %$ i2 = (d2==dates('1950Q3')); %$ i3 = (d3==dates('1951Q1')); %$ i4 = (d4==dates('1950M3')); %$ i5 = (d5==dates('1951M1')); %$ %$ % Check the results. %$ t(1) = dyn_assert(i1,1); %$ t(2) = dyn_assert(i2,1); %$ 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 %$ d1 = dates('1950Q1','1950Q2','1950Q3','1950Q4','1951Q1'); %$ d2 = dates('1950Q2','1950Q3','1950Q4','1951Q1','1951Q2'); %$ try %$ d3 = +d1; %$ t(1) = 1; %$ catch %$ t(1) = 0; %$ end %$ %$ if t(1) %$ t(2) = dyn_assert(all(d2==d3),1); %$ end %$ %$ T = all(t); %@eof:2