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
+