matlab.unittest.constraints.Matches class

Пакет: matlab.unittest.constraints
Суперклассы: matlab.unittest.constraints.BooleanConstraint

Ограничение, задающее строку, совпадает с регулярным выражением

Конструкция

Matches(expr) создает ограничение, которое указывает, что строковый скаляр или вектор символов совпадают с регулярным выражением. Ограничению удовлетворяют, только если фактическое значение совпадает с данным регулярным выражением, expr.

Matches(expr,Name,Value) предоставляет ограничению дополнительные опции, заданные одним или несколькими Name,Value парные аргументы. Name должен появиться в одинарных кавычках (''). Можно задать несколько аргументов пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN.

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

expr

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

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

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

'IgnoringCase'

Индикатор, чтобы игнорировать регистр в виде false или true логический0 или 1).

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

'WithCount'

Число раз фактическое значение должно совпадать с exprВ виде положительного целого числа.

Свойства

Expression

Регулярное выражение, с которым фактическое значение должно совпадать, заданный во входном параметре, expr.

IgnoreCase

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

Примеры

свернуть все

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

import matlab.unittest.TestCase
import matlab.unittest.constraints.Matches

testCase = TestCase.forInteractiveUse;

Протестируйте это фактическое значение 'Epsilon Eridani' соответствия 'eps'.

testCase.verifyThat('Epsilon Eridani', Matches('^eps'));
Verification failed.
    ---------------------
    Framework Diagnostic:
    ---------------------
    Matches failed.
    --> The value does not match the regular expression.
    
    Actual char:
        Epsilon Eridani
    Regular Expression:
        ^eps

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

testCase.verifyThat('Epsilon Eridani', Matches('^eps', ...
    'IgnoringCase', true));
Verification passed.

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

expr = 'Some[Tt]?ext';

[Tt]? содержавшийся в регулярном выражении указывает на тот любой 'T' или 't' соответствия в том местоположении 0 или 1 раз.

Протестируйте это фактические значения, 'SomeText' и 'Sometext', удовлетворите ограничению.

testCase.verifyThat('SomeText', Matches(expr));
testCase.verifyThat('Sometext', Matches(expr));
Verification passed.
Verification passed.

Протестируйте это фактическое значение 'SomeText Sometext Someext' совпадает с регулярным выражением три раза.

testCase.verifyThat('SomeText Sometext Someext', Matches(expr, ...
    'WithCount', 3));
Verification passed.

Протестируйте это фактическое значение 'sometext' не удовлетворяет ограничению.

testCase.verifyThat('sometext', ~Matches(expr));
Verification passed.