matlab.unittest.constraints.LogicalComparator class

Пакет: matlab.unittest.constraints

Компаратор для двух логических значений

Конструкция

LogicalComparator создает компаратор для двух логических значений. Компаратор удовлетворяется, если фактическое и ожидаемые значения имеют одинаковую разреженность, а логические значения эквивалентны.

Копировать семантику

Значение. Чтобы узнать, как классы значений влияют на операции копирования, см. раздел «Копирование объектов».

Примеры

свернуть все

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.LogicalComparator
import matlab.unittest.constraints.IsEqualTo

testCase = TestCase.forInteractiveUse;

Проверьте значение true.

testCase.assertThat(true, IsEqualTo(true, ...
    'Using', LogicalComparator))
Interactive assertion passed.

Протестируйте массив true значения.

testCase.assertThat([true true true], IsEqualTo(true, ...
    'Using', LogicalComparator))
Interactive assertion failed.

---------------------
Framework Diagnostic:
---------------------
IsEqualTo failed.
--> LogicalComparator failed.
    --> The logical values are not equal

Actual Logical Value:
         1     1     1
Expected Logical Value:
         1
Assertion failed.

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

Сравните значение 1 на true.

testCase.verifyThat(1, IsEqualTo(true, 'Using', LogicalComparator))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
IsEqualTo failed.
--> LogicalComparator failed.
    --> Class check failed.
        --> Classes do not match.
            
            Actual Class:
                double
            Expected Class:
                logical

Actual double:
         1
Expected logical:
         1

Сравните значение false на true.

testCase.assertThat(false, IsEqualTo(true, 'Using', LogicalComparator))
Interactive assertion failed.

---------------------
Framework Diagnostic:
---------------------
IsEqualTo failed.
--> LogicalComparator failed.
    --> The logical values are not equal

Actual Logical Value:
         0
Expected Logical Value:
         1
Assertion failed.

Совет

  • В большинстве случаев вы не обязаны использовать LogicalComparator объект. The IsEqualTo класс создает ограничение для проверки на равенство между данными различных типов, включая логические значения.

    Использование LogicalComparator объект, когда вам нужно переопределить сравнение, выполненное IsEqualTo класс. Для примера, если вы хотите, чтобы сравнение не прошло, когда фактические и ожидаемые значения нелогичны, включите LogicalComparator объект в вашем тесте. Можно также использовать LogicalComparator для ограничения значений, содержащихся в структурах, массивах ячеек и таблицах. В этом примере MATLAB® выдает исключение, поскольку фактические и ожидаемые значения являются числовыми массивами.

    import matlab.unittest.constraints.IsEqualTo
    import matlab.unittest.constraints.LogicalComparator
          
    exp = magic(5); 
    act = exp;
    
    testCase = matlab.unittest.TestCase.forInteractiveUse;
    testCase.verifyThat(act,IsEqualTo(exp,'Using',LogicalComparator))
    

Введенный в R2013a