assumeEqual

Класс: matlab.unittest.qualifications. Assumable
Пакет: matlab.unittest.qualifications

Предположим, что значение равно заданному значению

Синтаксис

assumeEqual(assumable,actual,expected)
assumeEqual(___,Name,Value)
assumeEqual(___,diagnostic)

Описание

assumeEqual(assumable,actual,expected) принимает, что actual строго равно expected. Если expected не является MATLAB® или Java® объект, actual и expected должен иметь тот же класс, размер и значение, чтобы предположение было выполнено. assumeEqual сравнивает actual и expected так же, как и IsEqualTo ограничение.

assumeEqual(___,Name,Value) принимает равенство с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар.

assumeEqual(___,diagnostic) также связывает диагностическую информацию в diagnostic с проверкой. В зависимости от конфигурации исполнителя тестов строение тестирования может отображать диагностику, когда проверка проходит или не проходит. По умолчанию среда отображает диагностику только в случае сбоя проверки. Поведение по умолчанию можно переопределить путем настройки исполнителя тестов. Для примера используйте DiagnosticsOutputPlugin образец для отображения как сбойной, так и проходящей диагностики событий.

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

assumable

The matlab.unittest.TestCase образец, который используется для прохождения или непрохождения проверки типа «assumption» в сочетании с тестовой средой.

actual

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

expected

Ожидаемое значение.

diagnostic

Диагностическая информация, относящаяся к проверке, указывается как одно из следующего:

  • Строковые массивы

  • Символьный массив

  • указатель на функцию

  • matlab.unittest.diagnostics.Diagnostic объект

Значения диагностики могут быть нескалярными. Для получения дополнительной информации смотрите matlab.unittest.diagnostics.Diagnostic.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

'AbsTol'

Абсолютная погрешность, заданный как числовой массив. Допуск применяется только к значениям совпадающего типа данных. Значение может быть скаляром или массивом того же размера, что и фактическое и ожидаемые значения.

Чтобы абсолютная погрешность было удовлетворяема, abs(expected-actual) <= absTol должно быть true.

'RelTol'

Относительная погрешность, заданный как числовой массив. Допуск применяется только к значениям совпадающего типа данных. Значение может быть скаляром или массивом того же размера, что и фактическое и ожидаемые значения.

Чтобы относительная погрешность было удовлетворяема, abs(expected-actual) <= relTol.*abs(expected) должно быть true.

Примеры

расширить все

Числовые значения равны, если они имеют один и тот же класс с эквивалентными размером, сложностью и разреженностью.

В командной строке создайте тест для интерактивных проверок.

testCase = matlab.unittest.TestCase.forInteractiveUse;

Предположим, что числовое значение равно самому себе.

assumeEqual(testCase,5,5)
An assumption was met.

Предположим, что фактические и ожидаемые значения имеют одинаковые размеры.

assumeEqual(testCase,[5 5],5)
An assumption was not met.
    ---------------------
    Framework Diagnostic:
    ---------------------
    assumeEqual failed.
    --> Sizes do not match.
        
        Actual size:
             1     2
        Expected size:
             1     1
    
    Actual Value:
         5     5
    Expected Value:
         5
Assumption failed.

Предположим, что int8 равен int16.

testCase = matlab.unittest.TestCase.forInteractiveUse;
assumeEqual(testCase,int8(5),int16(5))
An assumption was not met.
    ---------------------
    Framework Diagnostic:
    ---------------------
    assumeEqual failed.
    --> Classes do not match.
        
        Actual Class:
            int8
        Expected Class:
            int16
    
    Actual Value:
      int8
    
       5
    Expected Value:
      int16
    
       5
Assumption failed.

Элементы равных массивов ячеек должны совпадать по классу, размеру и значению.

Предположим, что массив ячеек равен самому себе.

testCase = matlab.unittest.TestCase.forInteractiveUse;
assumeEqual(testCase,{'cell',struct,5},{'cell',struct,5})
An assumption was met.

Предположим, что 4.95 равно 5.

testCase = matlab.unittest.TestCase.forInteractiveUse;
assumeEqual(testCase,4.95,5)
An assumption was not met.
    ---------------------
    Framework Diagnostic:
    ---------------------
    assumeEqual failed.
    --> The numeric values are not equal using "isequaln".
    --> Failure table:
            Actual    Expected           Error              RelativeError    
            ______    ________    ___________________    ____________________
        
             4.95        5        -0.0499999999999998    -0.00999999999999996
    
    Actual Value:
       4.950000000000000
    Expected Value:
         5
Assumption failed.

Примите, что различие между фактическим значением 1.5 и ожидаемое значение 2 находится внутри 1.

assumeEqual(testCase,1.5,2,'AbsTol',1)
An assumption was met.

Предположим, что различие между фактическим и ожидаемым значениями меньше 10%. Отобразите диагностическую информацию после отказа.

assumeEqual(testCase,1.5,2,'RelTol',0.1,...
    'Difference between actual and expected exceeds relative tolerance')
An assumption was not met.
    ----------------
    Test Diagnostic:
    ----------------
    Difference between actual and expected exceeds relative tolerance
    ---------------------
    Framework Diagnostic:
    ---------------------
    assumeEqual failed.
    --> The numeric values are not equal using "isequaln".
    --> The error was not within relative tolerance.
    --> Failure table:
            Actual    Expected    Error    RelativeError    RelativeTolerance
            ______    ________    _____    _____________    _________________
        
             1.5         2        -0.5         -0.25               0.1       
    
    Actual Value:
       1.500000000000000
    Expected Value:
         2
Assumption failed.

Совет

  • Этот метод функционально эквивалентен любому из следующих:

    import matlab.unittest.constraints.IsEqualTo;
    assumable.assumeThat(actual, IsEqualTo(expected));
    import matlab.unittest.constraints.IsEqualTo;
    import matlab.unittest.constraints.AbsoluteTolerance;
    assumable.assumeThat(actual, IsEqualTo(expected, ...
        'Within', AbsoluteTolerance(abstol)));
    import matlab.unittest.constraints.IsEqualTo;
    import matlab.unittest.constraints.RelativeTolerance;
    assumable.assumeThat(actual, IsEqualTo(expected, ...
        'Within', RelativeTolerance(reltol)));
    import matlab.unittest.constraints.IsEqualTo;
    import matlab.unittest.constraints.AbsoluteTolerance;
    import matlab.unittest.constraints.RelativeTolerance;
    assumable.assumeThat(actual, IsEqualTo(expected, ...
        'Within', AbsoluteTolerance(abstol) | RelativeTolerance(reltol)));

    При использовании IsEqualTo существует больше функциональности, AbsoluteTolerance, и RelativeTolerance ограничения непосредственно через assumeThat.

  • Используйте проверки типа «assumption», чтобы убедиться, что тестовая среда соответствует предусловиям, которые не приводят к непройденному тесту. Нарушение условий приводит к отфильтрованным тестам, а среда тестирования помечает тесты как Incomplete. Кроме того,

    • Используйте верификацию проверок для создания и записи отказов без выдачи исключения. Поскольку верификации не выдают исключения, все содержания теста запусков к завершению, даже когда верификация отказов произойти. Как правило, верификации типа «verification» являются основой для модульного теста, поскольку они обычно не требуют раннего выхода из теста. Используйте другие типы проверки для выявления нарушений предусловий или неправильной настройки теста. Для получения дополнительной информации смотрите matlab.unittest.qualifications.Verifiable.

    • Используйте проверки типа утверждения, когда условие отказа делает недействительным оставшуюся часть текущего содержания теста, но не препятствует правильному выполнению последующих методов тестирования. При отказе в точке задания текущий метод тестирования становится неудачным и неполным. Для получения дополнительной информации смотрите matlab.unittest.qualifications.Assertable.

    • Используйте критическое утверждение проверок, чтобы прервать тестовый сеанс после отказа. Эти типы проверки применяются, когда тип отказа настолько принципиален, что нет точки продолжать тестирование. Эти виды проверки также применяются фиксатором когда отключение не восстанавливает состояние MATLAB правильно, и лучше прекратить тестирование и начать новую сессию. Для получения дополнительной информации смотрите matlab.unittest.qualifications.FatalAssertable.

Введенный в R2013a