exponenta event banner

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

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

Ограничение, указывающее дескриптор функции, возвращающий значение true

Строительство

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

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

Ручка. Сведения о том, как классы обработки влияют на операции копирования, см. в разделе Копирование объектов.

Примеры

свернуть все

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

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

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.

См. также

|