Mercurial > hg > ltpda
view m-toolbox/test/aorepo_proto_test/run_UTN_repo_test.m @ 45:a59cdb8aaf31 database-connection-manager
Merge
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Tue, 06 Dec 2011 19:07:22 +0100 |
parents | f0afece42f48 |
children |
line wrap: on
line source
function varargout = run_UTN_repo_test(varargin) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % DESCRIPTION: RUN_UTN_REPO_TEST tests submission/retrieval from a LTPDA % repository, for different size LTPDA User Objects and repeating each complete % test to build some statisics. In the case of Analysis Objects (AOs) they % contain tsdata, and the size is defined by the sampling frequency and % length in seconds % % CALL: res = run_UTN_repo_test(pl) % % INPUTS: pl - parameter list(s) % % OUTPUTS: res - a matrix of structs containing the test results % % PARAMETER LIST: % <key> <default value> <description> % 'N_REPEAT' 1 number of repetitions for each test % 'HOSTNAME' '130.75.117.67' the repository host IP % 'DBASE' 'ltpda_test' the database name % 'COLL_RETRIEVE' false retrieval performed via collection ID % rather than individually % 'N_OBJ' 10 number of objects to produce at a time. % Insert 0 for random number % 'OBJ_TYPE' 'ao' type of object to produce. Use 'RAND' % or [] for random choice % 'NSECS' 1000 for AOs: vector with the lengths (in s) to test % 'FS' 10 for AOs: sampling frequency in Hz % 'TEST_RESULTS_FILENAME' 'run_001' a filename for the global results % to be stored % % VERSION: $Id: run_UTN_repo_test.m,v 1.10 2008/11/18 17:28:17 mauro Exp $ % % HISTORY: 05-01-2008 M Hueller % Creation % 18-11-2008 M Hueller % Formatted for OO toolbox % Default plist extended % % M-FILE INFO: Get information about this methods by calling % >> ao.getInfo('run_UTN_repo_test') % % Get information about a specified set-plist by calling: % >> ao.getInfo('run_UTN_repo_test', 'None') % % SEE ALSO: UTN_repo_test_func % % SEE: <a href="matlab: help ao/Contents;">HELP: All Analysis Object Functions:</a> % <a href="matlab: helpwin ao/Contents;">DOC: All Analysis Object Functions:</a> % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Check if this is a call for parameters if utils.helper.isinfocall(varargin{:}) varargout{1} = getInfo(varargin{3}); return end % Collect input variable names in_names = cell(size(varargin)); for ii = 1:nargin in_names{ii} = inputname(ii); end % Collect all plists pls = utils.helper.collect_objects(varargin(:), 'plist', in_names); %% ---------------- Produce one plist if isa(pls, 'plist') pls = combine(pls, getDefaultPlist()); else pls = getDefaultPlist(); end %% ---------------- Get parameters N_repeat = find(pls, 'N_repeat'); nsecs = find(pls, 'NSECS'); %% ---------------- Open the connection with database % Get the hostname hostname = find(pls, 'hostname'); % Get the database name database_name = find(pls, 'dbase'); % Establish the connection conn = utils.mysql.connect(hostname, database_name); %% ---------------- Main loop for jj = 1:length(nsecs) for kk = 1:N_repeat % Prepare the plist to pass to the actual test function pl_test = combine(plist('NSECS', nsecs(jj), ... 'SUBMIT', true, ... % Actually makes the submission 'CONN', conn, ... 'SAVE_OBJS', false, ... % Don't save individual produced objects 'SAVE_RESULTS', false, ... % Don't save individual tests results 'RESULTS_FILENAME', ''), ... % Not really needed since we don't save individual tests results pls); % Actual call to the test routine results(jj, kk) = UTN_repo_test_func(pl_test); track(jj, kk) = nsecs(jj); end end save([find(pls,'test_results_filename') '.mat'], 'results', 'track'); %% Close the connection close (conn); %% Outputs varargout{1} = results; varargout{2} = track; end %-------------------------------------------------------------------------- % Get Info Object %-------------------------------------------------------------------------- function ii = getInfo(varargin) if nargin == 1 && strcmpi(varargin{1}, 'None') sets = {}; pl = []; else sets = {'Default'}; pl = getDefaultPlist; end % Build info object ii = minfo(mfilename, 'ao', '', utils.const.categories.helper, '$Id: run_UTN_repo_test.m,v 1.10 2008/11/18 17:28:17 mauro Exp $', sets, pl); end %-------------------------------------------------------------------------- % Get Default Plist %-------------------------------------------------------------------------- function plo = getDefaultPlist() disp('* creating default plist...'); plo = plist('HOSTNAME', '130.75.117.67', ... 'DBASE', 'ltpda_test', ... 'COLL_RETRIEVE', false, ... 'OBJ_TYPE', 'rand', ... 'N_OBJ', 10, ... 'N_REPEAT', 2, ... 'NSECS', [1000], ... 'FS', 10, ... 'TEST_RESULTS_FILENAME', 'run_001'); disp('* done.'); end % END