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