exponenta event banner

fatalAssertEqual

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

Неустранимое значение равно указанному значению

Синтаксис

fatalAssertEqual(fatalAssertable,actual,expected)
fatalAssertEqual(___,Name,Value)
fatalAssertEqual(___,diagnostic)

Описание

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

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

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

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

fatalAssertable

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 должно быть истинно.

'RelTol'

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

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

Примеры

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

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

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

testCase = matlab.unittest.TestCase.forInteractiveUse;

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

fatalAssertEqual(testCase,5,5)
Fatal assertion passed.

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

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

Фатально утверждать, если int8 равно int16.

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

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

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

testCase = matlab.unittest.TestCase.forInteractiveUse;
fatalAssertEqual(testCase,{'cell',struct,5},{'cell',struct,5})
Fatal assertion passed.

Смертельно утверждать, если 4.95 равно 5.

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

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

fatalAssertEqual(testCase,1.5,2,'AbsTol',1)
Fatal assertion passed.

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

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

Совет

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

    import matlab.unittest.constraints.IsEqualTo;
    fatalAssertable.fatalAssertThat(actual, IsEqualTo(expected));
    import matlab.unittest.constraints.IsEqualTo;
    import matlab.unittest.constraints.AbsoluteTolerance;
    fatalAssertable.fatalAssertThat(actual, IsEqualTo(expected, ...
        'Within', AbsoluteTolerance(abstol)));
    import matlab.unittest.constraints.IsEqualTo;
    import matlab.unittest.constraints.RelativeTolerance;
    fatalAassertable.fatalAssertThat(actual, IsEqualTo(expected, ...
        'Within', RelativeTolerance(reltol)));
    import matlab.unittest.constraints.IsEqualTo;
    import matlab.unittest.constraints.AbsoluteTolerance;
    import matlab.unittest.constraints.RelativeTolerance;
    fatalAssertable.fatalAssertThat(actual, IsEqualTo(expected, ...
        'Within', AbsoluteTolerance(abstol) | RelativeTolerance(reltol)));

    Существует больше функциональных возможностей при использовании IsEqualTo, AbsoluteTolerance, и RelativeTolerance ограничения непосредственно через fatalAssertThat.

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

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

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

    • Для проверки соответствия среды тестирования предварительным условиям, которые в противном случае не приведут к сбою теста, используйте квалификационные требования. Предполагаемые отказы приводят к отфильтрованным тестам, и платформа тестирования помечает тесты как Incomplete. Дополнительные сведения см. в разделе matlab.unittest.qualifications.Assumable.

Представлен в R2013a