Mercurial > hg > ltpda
diff m-toolbox/m/dev/test_getInfo.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m-toolbox/m/dev/test_getInfo.m Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,57 @@ +% Checks the getInfo call for all class methods +% + +classes = utils.helper.ltpda_classes; +fails = {}; +for jj=1:numel(classes) + cl = classes{jj}; + disp(sprintf('=========== %s ===============', cl)) + % Class info + try + % get meta info for this class + ci = eval(sprintf('?%s', cl)); + % Get methods + ms = ci.Methods; + + % Check if this is an abstract class + try + o = feval(cl); + abstract = false; + catch + abstract = true; + end + + if ~abstract + % Go through methods + for kk=1:numel(ms) + m = ms{kk}; + % If this is not an inherited + if strcmp(m.DefiningClass.Name, cl) + disp(sprintf(' -- checking %s/%s', cl, m.Name)); + if strcmp(m.Access, 'public') && ~m.Static && ~strcmp(m.Name, 'Contents') + cmd = sprintf('%s.getInfo(''%s'')', cl, m.Name); + ii = []; + try + ii = eval(cmd); + end + if ~isa(ii, 'minfo') + fails = [fails sprintf('%s/%s', cl, m.Name)]; + end + end + else + warning('!!! Skipping inherited method %s/%s', cl, m.Name); + end + end + end + catch + warning('!!! Couldn''t get meta info for class %s', cl); + end +end + +fd = fopen('getinfo_fails.txt', 'w+'); +for j=1:numel(fails) + fprintf(fd, '%s\n', fails{j}); +end +fclose(fd) +edit getinfo_fails.txt +