Пакет: matlab.unittest.constraints
Компаратор для массивов структур MATLAB
StructComparator
создает компаратор для MATLAB® массивы структур.
StructComparator(
указывает компаратор, compObj
)compObj
, который определяет компаратор, используемый для сравнения значений, содержащихся в структуре. По умолчанию a StructComparator
поддерживает только пустые массивы структур.
StructComparator(
предоставляет компаратору дополнительные опции, заданные одним или несколькими compObj
,Name,Value
)Name,Value
аргументы в виде пар.
StructComparator(
предоставляет компаратор для пустых массивов структур с дополнительными опциями, заданными одним или несколькими Name,Value
)Name,Value
аргументы в виде пар.
|
Поля, которые нужно игнорировать во время сравнения struct, заданные в аргументе пары "имя-значение", |
|
Индикатор того, работает ли компаратор рекурсивно, заданный в аргументе пары "имя-значение", |
Значение. Чтобы узнать, как классы значений влияют на операции копирования, см. раздел «Копирование объектов».
В большинстве случаев вы не обязаны использовать StructComparator
объект. The IsEqualTo
класс создает ограничение для проверки на равенство между данными различных типов, включая структуры.
Использование StructComparator
объект, когда вам нужно переопределить сравнение, выполненное IsEqualTo
класс. Например, если вы хотите, чтобы сравнение не прошло, когда структуры включают нечисловые значения, включите StructComparator
объект в вашем тесте. В этом примере MATLAB выдает исключение из-за s1
и s2
содержат нечисловые значения.
import matlab.unittest.constraints.IsEqualTo import matlab.unittest.constraints.StructComparator import matlab.unittest.constraints.NumericComparator s1 = struct('f1',zeros(1,10),'f2','a','f3',{'b','c'}); s2 = s1; testCase = matlab.unittest.TestCase.forInteractiveUse; testCase.verifyThat(s2,IsEqualTo(s1,'Using',StructComparator(NumericComparator)))