matlab.unittest.constraints. Класс NumericComparator

Пакет: matlab.unittest.constraints

Компаратор для типов числовых данных

Конструкция

NumericComparator создает компаратор для типов числовых данных. Компаратор удовлетворен, имеют ли входные параметры тот же класс с эквивалентным размером, сложностью и разреженностью, и встроенная функция isequaln возвращает true.

NumericComparator('Within',tolObj) создает компаратор с помощью заданного допуска. В этом случае NumericComparator сначала проверяет на эквивалентный класс, размер и разреженность фактических и ожидаемых значений. Если эти проверки перестали работать, компаратор не удовлетворен. Если эти проверки передают и isequaln или сбои проверки сложности, NumericComparator делегирует сравнение с предоставленным допуском, tolObj.

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

tolObj

Экземпляр matlab.unittest.constraints.Tolerance

Свойства

Tolerance

Определенный допуск, используемый в конструкции компаратора, заданного как объект Tolerance во входном параметре tolObj

Примеры

свернуть все

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.NumericComparator
import matlab.unittest.constraints.IsEqualTo

testCase = TestCase.forInteractiveUse;

Использование числовой компаратор, чтобы протестировать тот 1.618 равно 1.618.

testCase.verifyThat(1.618, IsEqualTo(1.618,...
    'Using', NumericComparator))
Verification passed.

Проверьте, что (1+sqrt(5))/2 равен 1.618.

testCase.verifyThat((1+sqrt(5))/2, IsEqualTo(1.618, ...
    'Using', NumericComparator))
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    IsEqualTo failed.
    --> NumericComparator failed.
        --> The numeric values are not equal using "isequaln".
        --> Failure table:
                     Actual         Expected           Error               RelativeError    
                ________________    ________    ____________________    ____________________
                1.61803398874989     1.618      3.39887498947977e-05    2.10066439399244e-05
        
        Actual Value:
           1.618033988749895
        Expected Value:
           1.618000000000000

Перетест с помощью относительного допуска 0.25%.

import matlab.unittest.constraints.RelativeTolerance

testCase.verifyThat((1+sqrt(5))/2, IsEqualTo(1.618, ...
    'Using', NumericComparator('Within', RelativeTolerance(0.0025))))
Verification passed.

Введенный в R2013a

Для просмотра документации необходимо авторизоваться на сайте