matlab.unittest.constraints.CellComparator class

Пакет: matlab.unittest.constraints

Компаратор для массивов ячеек

Описание

The CellComparator сравнивает массивы ячеек.

Конструкция

CellComparator создает компаратор для массивов ячеек.

CellComparator(compObj) указывает компаратор, compObj, который задает компаратор, используемый для сравнения значений, содержащихся в массиве ячеек. По умолчанию компаратор камер поддерживает только пустые массивы ячеек.

CellComparator(compObj,Name,Value) предоставляет компаратору дополнительные опции, заданные одним или несколькими Name,Value аргументы в виде пар.

CellComparator(Name,Value) предоставляет компаратор для пустых массивов ячеек с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар.

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

compObj

Объект компаратора

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

'Recursively'

Индикатор того, работает ли компаратор рекурсивно, указывается как false или true (logical 0 или 1). Когда это значение falseкомпаратор не работает рекурсивно на своих данных.

Когда значение trueтипы данных, поддерживаемые компаратором камер, полностью поддерживаются в рекурсии. Для примера:

comp1 = CellComparator(StringComparator)
comp2 = CellComparator(StringComparator,'Recursively', true)
Оба comp1 и comp2 поддерживает массивы ячеек строк и символьных массивов. Однако только comp2 поддерживает массивы ячеек, которые рекурсивно содержат в качестве элементов массивы ячеек или строки.

По умолчанию: false

Свойства

Recursive

Индикатор того, работает ли компаратор рекурсивно, заданный в аргументе пары "имя-значение", 'Recursively'

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

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

Примеры

свернуть все

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

import matlab.unittest.TestCase;
import matlab.unittest.constraints.CellComparator
import matlab.unittest.constraints.StringComparator
import matlab.unittest.constraints.IsEqualTo

testCase = TestCase.forInteractiveUse;

Использование CellComparator чтобы проверить, что два массива ячеек равны друг другу.

actual = {'abc','def'};
expected = {'abc','def'};
testCase.verifyThat(actual, IsEqualTo(expected,...
    'Using', CellComparator(StringComparator)))
Interactive verification passed.

По умолчанию в CellComparator поддерживает только сравнение пустых массивов ячеек. Поэтому необходимо пройти его StringComparator.

Измените фактическое значение и сравните его с ожидаемым значением. Чтобы удовлетворить ограничению, создайте его, чтобы игнорировать символы регистра и пробел.

actual = {'ABC','D E F'};
testCase.verifyThat(actual, IsEqualTo(expected, 'Using', ...
    CellComparator(StringComparator), 'IgnoringWhitespace', ...
    true, 'IgnoringCase',true))
Interactive verification passed.

Протестируйте вложенные массивы ячеек векторов символов путем создания компаратора для рекурсивной работы.

actual = {'abc',{'def','ghi'}};
expected = {'abc',{'def','ghi'}};

testCase.verifyThat(actual, IsEqualTo(expected, 'Using', ...
    CellComparator(StringComparator, 'Recursively', true)))
Interactive verification passed.

Совет

  • В большинстве случаев вы не обязаны использовать CellComparator объект. The IsEqualTo класс создает ограничение для проверки на равенство между данными различных типов, включая массивы ячеек.

    Использование CellComparator объект, когда вам нужно переопределить сравнение, выполненное IsEqualTo класс. Например, если вы хотите, чтобы сравнение не прошло, когда массивы ячеек включают нечисловые значения, включите CellComparator объект в вашем тесте. В этом примере MATLAB® выдает исключение из-за C1 и C2 содержат нечисловые значения.

    import matlab.unittest.constraints.IsEqualTo
    import matlab.unittest.constraints.CellComparator
    import matlab.unittest.constraints.NumericComparator
          
    C1 = {1,2,{3},'abc'}; 
    C2 = C1;
    
    testCase = matlab.unittest.TestCase.forInteractiveUse;
    testCase.verifyThat(C2,IsEqualTo(C1,'Using',CellComparator(NumericComparator)))
    

Введенный в R2013a