satisfiedBy

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

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

Описание

пример

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

The 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