verifyEqual

Класс: matlab.unittest.qualifications. Проверяемый
Пакет: matlab.unittest.qualifications

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

Синтаксис

verifyEqual(verifiable,actual,expected)
verifyEqual(___,Name,Value)
verifyEqual(___,diagnostic)

Описание

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

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

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

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

verifiable

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

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;

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

verifyEqual(testCase,5,5)
Verification passed.

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

verifyEqual(testCase,[5 5],5)
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    verifyEqual failed.
    --> Sizes do not match.
        
        Actual size:
             1     2
        Expected size:
             1     1
    
    Actual Value:
         5     5
    Expected Value:
         5

Проверьте, является ли int8 равен int16.

testCase = matlab.unittest.TestCase.forInteractiveUse;
verifyEqual(testCase,int8(5),int16(5))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    verifyEqual failed.
    --> Classes do not match.
        
        Actual Class:
            int8
        Expected Class:
            int16
    
    Actual Value:
      int8
    
       5
    Expected Value:
      int16
    
       5

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

Проверьте, что массив ячеек равен самому себе.

testCase = matlab.unittest.TestCase.forInteractiveUse;
verifyEqual(testCase,{'cell',struct,5},{'cell',struct,5})
Verification passed.

Проверьте, 4.95 ли равно 5.

testCase = matlab.unittest.TestCase.forInteractiveUse;
verifyEqual(testCase,4.95,5)
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    verifyEqual 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

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

verifyEqual(testCase,1.5,2,'AbsTol',1)
Verification passed.

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

verifyEqual(testCase,1.5,2,'RelTol',0.1,...
    'Difference between actual and expected exceeds relative tolerance')
Verification failed.
    ----------------
    Test Diagnostic:
    ----------------
    Difference between actual and expected exceeds relative tolerance
    ---------------------
    Framework Diagnostic:
    ---------------------
    verifyEqual 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

Совет

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

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

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

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

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

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

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

Введенный в R2013a