exponenta event banner

matlab.unittest.constraints.IsSameHandleAs класс

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

Ограничение, указывающее экземпляр дескриптора, аналогичный другому

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

IsSameHandle(h) предоставляет ограничение, определяющее экземпляр дескриптора или группу экземпляров, совпадающих с другими.

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

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

h

handle объект или массив handle объекты. Фактический массив значений, переданный в квалификацию, должен быть того же размера, что и h.

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

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

Примеры

свернуть все

В файле в рабочей папке создайте следующий класс дескрипторов для интерактивного тестирования.

classdef ExampleHandle < handle
end

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.IsSameHandleAs

testCase = TestCase.forInteractiveUse;

Создайте экземпляр двух дескрипторов.

h1 = ExampleHandle;
h2 = ExampleHandle;

Убедитесь, что дескриптор, h1, совпадает с h1.

testCase.verifyThat(h1, IsSameHandleAs(h1))
Interactive verification passed.

Проверить, что h1 является тем же экземпляром дескриптора, что и h2.

testCase.verifyThat(h1, IsSameHandleAs(h2))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
IsSameHandleAs failed.
--> Values do not refer to the same handle.

Actual Value:
      ExampleHandle with no properties.
Expected Handle Object:
      ExampleHandle with no properties.

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

expArr = [h1 h2 h1];
actArr = [h1 h2 h1];

testCase.verifyThat(expArr, IsSameHandleAs(actArr))
Interactive verification passed.

Массивы удовлетворяют ограничению, даже если элементы в конкретном массиве не совпадают друг с другом.

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

testCase.verifyThat([h1 h1], IsSameHandleAs(h1))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
IsSameHandleAs failed.
--> Sizes do not match.
    	Actual Value Size           : [1  2]
    	Expected Handle Object Size : [1  1]

Actual Value:
      1x2 ExampleHandle array with no properties.
Expected Handle Object:
      ExampleHandle with no properties.

Аналогично, ограничение не удовлетворяет одному экземпляру дескриптора, если ожидается массив дескрипторов.

testCase.verifyThat(h2, IsSameHandleAs([h2 h2]))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
IsSameHandleAs failed.
--> Sizes do not match.
    	Actual Value Size           : [1  1]
    	Expected Handle Object Size : [1  2]

Actual Value:
      ExampleHandle with no properties.
Expected Handle Object:
      1x2 ExampleHandle array with no properties.

См. также

| |