exponenta event banner

satisfiedBy

Класс: matlab.unittest.constraints.Constraint
Пакет: matlab.unittest.constraints

Определить, удовлетворяет ли значение ограничению

Описание

пример

TF = satisfiedBy(constObj,actVal) определяет, actVal удовлетворяет ограничению constObj. Метод возвращает true (логический 1) при выполнении ограничения и false (логический 0), когда ограничение не выполняется. При создании пользовательского ограничения необходимо поместить логику сравнения в этот метод.

satisfiedBy способ чаще используется для проверки проходящего случая. Следовательно, предоставление более подробного анализа после отказа может быть более эффективно обработано другими методами, такими как getDiagnosticFor способ.

Входные аргументы

constObj

Constraint случай

actVal

Значение для вычисления по ограничению

Примеры

развернуть все

Создайте пользовательское ограничение, определяющее, имеет ли данное значение тот же размер, что и ожидаемое значение. Включить логику сравнения в satisfiedBy способ.

classdef HasSameSizeAs < matlab.unittest.constraints.Constraint
    
    properties(SetAccess = immutable)
        ValueWithExpectedSize
    end
    
    methods
        % Class constructor
        function constraint = HasSameSizeAs(value)
            constraint.ValueWithExpectedSize = value;
        end
        
        % Determine if the actual value satisfies the constraint
        function bool = satisfiedBy(constraint,actual)
            bool = constraint.sizeMatchesExpected(actual);
        end
         
        % Produce a diagnostic for the constraint
        function diag = getDiagnosticFor(constraint,actual)
            import matlab.unittest.diagnostics.StringDiagnostic
            if constraint.sizeMatchesExpected(actual)
                diag = StringDiagnostic('HasSameSizeAs passed.');
            else
                diag = StringDiagnostic(sprintf(...
                    'HasSameSizeAs failed.\nActual Size: [%s]\nExpectedSize: [%s]',...
                    int2str(size(actual)),...
                    int2str(size(constraint.ValueWithExpectedSize))));
            end
        end
    end
    
    methods(Access = private)
        % Determine if the actual and expected values have the same size
        function bool = sizeMatchesExpected(constraint,actual)
            bool = isequal(size(actual),size(constraint.ValueWithExpectedSize));
        end
    end
    
end