www.gusucode.com > mbctools 工具箱 matlab 源码程序 > mbctools/@sweepsetfilter/modifyTestDefinition.m
function [obj] = modifyTestDefinition(obj, newTest) %MODIFYTESTDEFINITION Alter test definition rules % % OBJ = MODIFYTESTDEFINITION(OBJ, NEWTESTS) changes the rules that define % the test boundaries. % Copyright 2000-2005 The MathWorks, Inc. and Ford Global Technologies, Inc. if iscell(newTest) && length(newTest) == 4 newTest = cell2struct(newTest(:), {'variable' 'tolerance' 'reorder' 'testnumAlias'}); end test = [struct('variable',{},'tolerance',{}, 'reorder', {}, 'testnumAlias', {}) newTest]; % Ensure that variable is a cell array if ischar(test.variable) test.variable = {test.variable}; end % Test to see if we have changed the reorder flag - this is used to decide if we need % to fire the ssfBadDataChangedEvent BAD_DATA_CHANGED = false; % When an ssf is created obj.defineTests is a 0x0 struct hence need to test empty if ~isempty(obj.defineTests) && ~isequal(obj.defineTests.reorder, test.reorder) BAD_DATA_CHANGED = true; end % Update the object field obj.defineTests = test; % Ensure everything is up-to-date obj = updateDefineTests(obj); % Tell everyone that the tests have changed queueEvent(obj, 'ssfTestDefinitionChanged'); if BAD_DATA_CHANGED queueEvent(obj, 'ssfBadDataChanged'); end