matlab.unittest.constraints.IsSameHandleAs class

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

Ограничение, задающее образец указателя так же, как и другой

Конструкция

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

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

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

h

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

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

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

Примеры

свернуть все

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

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.

См. также

| |