satisfiedBy

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

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

Описание

пример

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

Поскольку наиболее распространенное использование для передающего случая, необходимо оптимизировать для скорости в этом случае. Только в провальном случае более дорогой детальный анализ полезен.

Входные параметры

actVal

Значение, чтобы оценить против ограничения

constObj

Constraint экземпляр

Примеры

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

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

classdef HasSameSizeAs < matlab.unittest.constraints.Constraint
    
    properties(SetAccess = immutable)
        ValueWithExpectedSize
    end
    
    methods
        function constraint = HasSameSizeAs(value)
            constraint.ValueWithExpectedSize = value;
        end
        
        function bool = satisfiedBy(constraint,actual)
            bool = constraint.sizeMatchesExpected(actual);
        end
        
        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)
        function bool = sizeMatchesExpected(constraint,actual)
            bool = isequal(size(actual),size(constraint.ValueWithExpectedSize));
        end
    end
    
end