exponenta event banner

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

Пакет: matlab.unittest.constraints

Компаратор для двух строк, символьных массивов или массивов ячеек символьных массивов

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

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

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

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

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

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

'IgnoringCase'

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

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

'IgnoringWhitespace'

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

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

Свойства

IgnoreCase

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

IgnoreWhitespace

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

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

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

Примеры

свернуть все

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

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

testCase = TestCase.forInteractiveUse;

Убедитесь, что действительный и ожидаемый векторы символов равны с помощью сравнения строк.

expected = 'coffee';
actual = 'coffee';
testCase.verifyThat(actual,IsEqualTo(expected, ...
    'Using', StringComparator))
Interactive verification passed.

Измените фактический вектор символов и повторите сравнение.

expected = 'coF Fee';
testCase.verifyThat(actual,IsEqualTo(expected, ...
    'Using', StringComparator))
Interactive verification failed.

---------------------
Framework Diagnostic:
---------------------
IsEqualTo failed.
--> StringComparator failed.
    --> The character arrays are not equal.
    
    Actual char:
        coffee
    Expected char:
        coF Fee

Чтобы пройти тест, создайте компаратор, который игнорирует символы регистра и пробела.

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

Совет

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

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

    import matlab.unittest.constraints.IsEqualTo
    import matlab.unittest.constraints.StringComparator
          
    exp = magic(5); 
    act = exp;
    
    testCase = matlab.unittest.TestCase.forInteractiveUse;
    testCase.verifyThat(act,IsEqualTo(exp,'Using',StringComparator))
    

Представлен в R2013a