exponenta event banner

getNegativeDiagnosticFor

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

Создать отрицательную диагностику для значения

Описание

пример

diag = getNegativeDiagnosticFor(constObj,actVal) анализирует предоставленное значение actVal против ограничения constObj и производит matlab.unittest.diagnostics.Diagnostic объект diag что соответствует отрицанию constObj. Этот метод является защищенным.

Диагностика, которую производит этот метод, выражается в отрицательном смысле ограничения. Например, рассмотрим гипотетический IsTasty ограничение. Когда отрицание IsTasty используется в квалификации, тест не проходит, если фактическое значение оказывается «вкусным». Поэтому getNegativeDiagnosticFor возвращает сведения, описывающие, почему значение неверно удовлетворяет ограничению.

Как и getDiagnosticFor способ Constraint, getNegativeDiagnosticFor метод обычно вызывается для сбоев квалификации. Таким образом, предоставление более подробного анализа после отказа может быть более эффективно обработано getNegativeDiagnosticFor чем satisfiedBy способ.

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

constObj

BooleanConstraint случай

actVal

Значение для сравнения

Примеры

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

Создайте настраиваемое логическое ограничение, определяющее, имеет ли данное значение тот же размер, что и ожидаемое значение. Реализация getNegativeDiagnosticFor способ обеспечения Diagnostic объект при отрицании ограничения.

classdef HasSameSizeAs < matlab.unittest.constraints.BooleanConstraint
    
    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 = protected)
        % Produce a diagnostic for the negated constraint
        function diag = getNegativeDiagnosticFor(constraint,actual)
            import matlab.unittest.diagnostics.StringDiagnostic
            if constraint.sizeMatchesExpected(actual) % Constraint satisfied incorrectly
                diag = StringDiagnostic(sprintf(...
                    ['Negated HasSameSizeAs failed.\nSize [%s] of '...
                    'Actual Value and Expected Value were the same '...
                    'but should not have been.'],int2str(size(actual))));
            else
                diag = StringDiagnostic('Negated HasSameSizeAs passed.');
            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