В этом примере показано, как собирать информацию о покрытии реляционных границ для блока насыщенности в модели. Дополнительные сведения о блоках, поддерживаемых для покрытия реляционных границ, см. в разделе Объекты модели, получающие покрытие.
Откройте окно slvnvdemo_cv_small_controller модель. Создайте объект спецификации теста покрытия модели для модели.
В объекте спецификации теста покрытия модели активируйте реляционное граничное покрытие.
Моделирование модели и сбор результатов покрытия в cvdata объект.
Получение результатов покрытия реляционной границы для блока насыщения в slvnvdemo_cv_small_controller. Результаты покрытия сохраняются в двухэлементном векторе формы. [covered_outcomes total_outcomes].
covResults =
2 4
covDesc =
isFiltered: 0
decision: [1x2 struct]Область decision является 1 X 2 структура. Каждый элемент decision соответствует реляционной операции в блоке. Блок «Насыщенность» содержит два сравнения. Первое сравнение выполняется с нижним пределом, а второе - с верхним пределом. Поэтому decision является 2-элементной структурой.
Просмотрите первую операцию в блоке, который получает покрытие реляционной границы. Для блока Насыщение первая реляционная операция input > lowerlimit.
ans =
outcome: [1x2 struct]
text: 'input - lowerlimit'
isFiltered: 0
filterRationale: '' text показывает два операнда. isFiltered установлено в 1, если блок отфильтрован из покрытия реляционной границы. Дополнительные сведения см. в разделе Фильтрация покрытия.
Просмотр результатов первой реляционной операции в блоке.
ans =
isActive: 1
execCount: 0
text: '[-tol..0]'
ans =
isActive: 1
execCount: 0
text: '(0..tol]'Просмотрите вторую операцию в блоке, который получает покрытие реляционной границы. Для блока Насыщение вторая реляционная операция input < upperlimit.
ans =
outcome: [1x2 struct]
text: 'input - upperlimit'
isFiltered: 0
filterRationale: ''Просмотр результатов второй реляционной операции в блоке.
ans =
isActive: 1
execCount: 1
text: '[-tol..0)'
ans =
isActive: 1
execCount: 2
text: '[0..tol]'