matlab.unittest.constraints.StringComparator class

Пакет: 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 объект. The 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