Skip to content
Snippets Groups Projects
Commit e71ccaef authored by Stéphane Adjemian's avatar Stéphane Adjemian
Browse files

Added the possibility to instantiate empty quaterly, monthly or weekly dynDate...

Added the possibility to instantiate empty quaterly, monthly or weekly dynDate objects. Added unitary test.
parent 2313ec2d
No related branches found
No related tags found
No related merge requests found
...@@ -75,6 +75,7 @@ switch nargin ...@@ -75,6 +75,7 @@ switch nargin
return return
case 1 case 1
if ischar(a)% Weekly, Monthly or Quaterly data. if ischar(a)% Weekly, Monthly or Quaterly data.
if length(a)>1
quaterly = findstr('Q',a); quaterly = findstr('Q',a);
monthly = findstr('M',a); monthly = findstr('M',a);
weekly = findstr('W',a); weekly = findstr('W',a);
...@@ -103,20 +104,36 @@ switch nargin ...@@ -103,20 +104,36 @@ switch nargin
date.time(2) = 1; date.time(2) = 1;
end end
end end
else
switch a
case 'Q'
date.freq = 4;
case 'M'
date.freq = 12;
case 'W'
date.freq = 52;
otherwise
% Yearly data are assumed.
date.freq = 1;
end
end
elseif isa(a,'dynDate') % If input argument is a dynDate object then do a copy. elseif isa(a,'dynDate') % If input argument is a dynDate object then do a copy.
date = a; date = a;
else% If b is not a string then yearly data are assumed. else
if isequal(length(a),1)
% If b is not a string then yearly data are assumed.
date.freq = 1; date.freq = 1;
date.time(1) = a; date.time(1) = a;
date.time(2) = 1; date.time(2) = 1;
else
error('dynDate:: Can''t instantiate the class, wrong calling sequence!')
end
end end
otherwise otherwise
error('dynDate:: Can''t instantiate the class, wrong calling sequence!') error('dynDate:: Can''t instantiate the class, wrong calling sequence!')
end end
%@test:1 %@test:1
%$ addpath ../matlab
%$
%$ % Define some dates %$ % Define some dates
%$ date_1 = 1950; %$ date_1 = 1950;
%$ date_2 = '1950Q2'; %$ date_2 = '1950Q2';
...@@ -156,3 +173,19 @@ end ...@@ -156,3 +173,19 @@ end
%$ t(10)= dyn_assert(d5.freq,e_freq_5); %$ t(10)= dyn_assert(d5.freq,e_freq_5);
%$ T = all(t); %$ T = all(t);
%@eof:1 %@eof:1
%@test:2
%$ % Instatiate an empty objects for quaterly, monthly and weekly dates.
%$ qq = dynDate('Q');
%$ mm = dynDate('M');
%$ ww = dynDate('W');
%$
%$ % Check the results.
%$ t(1) = dyn_assert(qq.freq,4);
%$ t(2) = dyn_assert(mm.freq,12);
%$ t(3) = dyn_assert(ww.freq,52);
%$ t(4) = dyn_assert(all(isnan(qq.time)),1);
%$ t(5) = dyn_assert(all(isnan(mm.time)),1);
%$ t(6) = dyn_assert(all(isnan(ww.time)),1);
%$ T = all(t);
%@eof:1
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment