matlab.unittest.constraints.ReturnsTrue class

Пакет: matlab.unittest.constraints
Суперклассы: matlab.unittest.constraints.Constraint

Указывающий на ограничение указатель на функцию, который возвращает true

Конструкция

ReturnsTrue задает ограничение, указывающее, что указатель на функцию возвращает true. Ограничение удовлетворяется только указателем на функцию, который возвращает скалярную логику со значением true.

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

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

Примеры

свернуть все

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

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.ReturnsTrue

testCase = TestCase.forInteractiveUse;

Проверьте, что ReturnsTrue ограничение удовлетворяется значением, возвращаемым указателем на true.

testCase.verifyThat(@true, ReturnsTrue)
Interactive verification passed.

Проверьте, что ReturnsTrue ограничение не удовлетворяется указателем на false.

testCase.verifyThat(@false, ReturnsTrue)
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
ReturnsTrue failed.
--> The function handle should have evaluated to "true".
--> Returned value:
             0

Actual Function Handle:
        @false

Проверьте, что вызов на isequal возвращает true.

testCase.verifyThat(@() isequal(1,1), ReturnsTrue)
Interactive verification passed.

Проверьте, что функция, которая возвращает двойное значение 1, не удовлетворяет ReturnsTrue ограничение.

testCase.verifyThat(@() double(true), ReturnsTrue)
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
ReturnsTrue failed.
--> The function handle should have returned a logical value. It was of type "double".
--> Returned value:
             1

Actual Function Handle:
        @()double(true)

Проверьте, что отрицание сравнения текста 'a' и 'b' возвращает true.

testCase.verifyThat(@() ~strcmp('a','b'), ReturnsTrue)
Interactive verification passed.

Проверяйте, сравнение 'a' в массив ячеек {'a','a'} возвращает true.

testCase.verifyThat(@() strcmp('a',{'a','a'}), ReturnsTrue)
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
ReturnsTrue failed.
--> The function handle should have returned a scalar. The return value had a size of [1  2].
--> Returned value:
             1     1

Actual Function Handle:
        @()strcmp('a',{'a','a'})

Ограничение не выполнено, потому что вызов на strcmp приводит к логическому массиву, а не к логическому скаляру.

Совет

  • Чтобы отобразить пользовательские сравнения в форме указателя на функцию, используйте ReturnsTrue вместо IsTrue.

См. также

|