exponenta event banner

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

Пакет: matlab.unittest.constraints

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

Описание

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 объект. 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