classdef test_requestnames < matlab.unittest.TestCase properties(TestParameter) gdat_test_params = get_gdat_test_params(); end methods(TestClassSetup) function testMDS(testCase) testCase.assumeFalse(~exist('mdsdata','file'),'mdsdata not found - is mds on path?'); % other environment checks here end end methods(Test) function test_gdat_call(testCase,gdat_test_params) machine = gdat_test_params{1}; shot = gdat_test_params{2}; gdat_request = gdat_test_params{3}; gdat_call = sprintf(['gdat_' lower(machine) '(%d,''%s'')'],shot,gdat_request); testCase.log(sprintf('gdat_call: %s\n',gdat_call)); gdat_out = verifyWarningFree(testCase,eval(gdat_call),... 'Warning issued from gdat call:\n %s\n',gdat_call); % add content checks of gdat_out here end end end function test_params = get_gdat_test_params() machines = {'AUG','TCV'}; test_params = cell(0,1); % init for im = 1:numel(machines) % get requests for this machine machine = machines{im}; [gd0,~] = gdat('machine',machine); request_list = gd0.gdat_request; % get test shot list for this machine shots = get_shots(machine); for ishot = 1:numel(shots) shot = shots(ishot); for ireq = 1:numel(request_list) % populate cell of test parameters test_params = [test_params;{{machine,shot,request_list{ireq}}}]; %#ok<AGROW> end end end end function shot = get_shots(machine) switch machine case 'AUG' shot = 30594; case 'TCV' shot = 48836; otherwise error('no shot defined for this machine') end end % % methods(TestClassSetup) % function getShot(testCase,machine) % switch machine % case 'AUG' % testCase.shot = 30594; % case 'TCV' % testCase.shot = 48836; % end % end % end % % end % % if nverbose>=2 && nverbose ~= 11 % doplot = true; % else % doplot = false; % end % % %% get request list % if isempty(machine) % [gd0,gp0] = gdat; % else % [gd0,gp0] = gdat('machine',machine); % end % if isempty(machine) % machine = gp0.machine; % end % request_list = gd0.gdat_request; % % %% get default test shot for each machine % % % %% possibly skip some since they take too long for a reduced test % if iscell(testmode) % skip = setdiff(request_list,testmode); % testmode_not_in_list = setdiff(testmode,request_list); % if ~isempty(testmode_not_in_list) % if nverbose >= 1 % disp('***********************************************************************') % warning(['following input requests nt in request_list: ' testmode_not_in_list{:}]); % disp('***********************************************************************') % end % end % else % switch testmode % case 'reduced' % skip = skip_list(machine); % case 'full' % skip = ''; % skip none % otherwise % error('invalid testmode, should be ''reduced'' or ''full'''); % end % end % % %% init % Nreq = numel(gd0.gdat_request); % err = zeros(Nreq,1); % telaps = zeros(Nreq,1); % skipped = false(Nreq,1); % gdat_call = cell(Nreq,1); % % %% call gdat requests in a loop % for ireq = 1:Nreq % myrequest = request_list{ireq}; % % if ~ismember(myrequest,skip) % % build request string % if strcmp(myrequest,'transp') % shotfile_user='PUETTI'; % gdat_call{ireq} = sprintf(['gdat_' lower(machine) '(%d,''%s'',''doplot'',%d,''exp_name'',''%s'')'],shot,myrequest,doplot,shotfile_user); % else % gdat_call{ireq} = sprintf(['gdat_' lower(machine) '(%d,''%s'',''doplot'',%d)'],shot,myrequest,doplot); % end % % % eval call % [err(ireq),telaps(ireq),gdat_results{ireq}] = do_gdat_call(gdat_call{ireq},nverbose); % skipped(ireq) = false; % pause(0.1) % else % % skip % err(ireq) = 0; % telaps(ireq) = 0; % skipped(ireq) = true; % if nverbose>=11; fprintf('\n skipping gdat request ''%s''\n',myrequest); end % end % end % % pass = all(~err); % % % function [machine,testmode,verbose] = parse_inputs(varargin) % p = inputParser; % p.addOptional('machine',''); % p.addOptional('testmode','reduced'); % p.addOptional('nverbose',1); % p.parse(varargin{:}); % % machine = p.Results.machine; % testmode = p.Results.testmode; % verbose = p.Results.nverbose; % % function skip = skip_list(machine) % switch upper(machine) % case 'AUG' % skip = {'cxrs','transp','te_rho','ne_rho','nete_rho','ece_rho','eced_rho','cxrs_rho','eqdsk','equil'}; % otherwise % warning('no list to skip defined for machine ''%s''',machine); % skip = ''; % end % % function [err,telaps,gdat_result] = do_gdat_call(gdat_call,nverbose) % if nverbose >= 11 % fprintf('\n calling %s...\n',gdat_call); % end % % tic % try % [gdat_result,~,err] = eval(gdat_call); % catch ME % err = -1; % gdat_result.data = []; % getReport(ME); %,'extended'); % end % telaps = toc; % elapsed time % end