Эта тема описывает синтаксис, используемый в Тестовых блоках Оценки Последовательности и Теста. Вы используете этот синтаксис для тестовых ступенчатых действий, переходов и оценок.
Для получения информации об использовании интерфейса командной строки, чтобы создать и отредактировать тестовые шаги последовательности, переходы и символы данных, видят функции, перечисленные под Test Sequences на странице Test Scripts.
Протестируйте использование блоков Оценки Последовательности и Теста MATLAB® как язык действия. Вы задаете действия, переходы и оценки с операторами оценки, темпоральными операторами, операторами перехода, функциями генерации сигнала, логическими операторами и операторами отношения. Например:
Выводить прямоугольную волну с периодом секунды 10:
square(et/10)
К переходу, когда h изменяется на 0:
hasChangedTo(h,0)
Чтобы проверить, что x больше, чем y:
verify(x > y)
Чтобы проверить симуляцию, остановите симуляцию, и возвратите результаты верификации, используйте операторы оценки.
| Ключевое слово | Синтаксис оператора | Описание | Пример |
|---|---|---|---|
verify |
| Оценивает логическое выражение. Дополнительные аргументы маркируют результаты в менеджере по Тесту и диагностическом средстве просмотра. | verify(x > y,... 'SimulinkTest:greaterThan',... 'x and y values are %d, %d',x,y) |
assert |
| Выполняет логическое выражение. Отказ останавливает симуляцию и возвращает ошибку. Дополнительные аргументы возвращают сообщение об ошибке. | assert(h == 0 && k == 0,... 'h and k must initialize to 0') |
Синтаксис в таблице использует эти аргументы:
Чтобы создать выражение, которое оценивает время симуляции, используйте темпоральных операторов. Переменные, используемые в условиях сигнала, должны быть входными параметрами, параметрами или константами в блоке Test Sequence.
| Оператор | Синтаксис | Описание | Пример |
|---|---|---|---|
et |
| Прошедшее время теста продвигается в | Прошедшее время тестовой последовательности продвигается в миллисекунды: et(msec) |
t |
| Прошедшее время симуляции в | Прошедшее время симуляции в микросекундах: t(usec) |
after |
| Возвращает | После 4 секунд: after(4,sec) |
before |
| Возвращает | Перед 4 секундами: before(4,sec) |
duration |
| Возвращает | Возвратите duration(Phi>1,msec) > 550 |
Синтаксис в таблице использует эти аргументы:
Чтобы создать выражения, которые оценивают события сигнала, используйте операторы перехода. Общие операторы перехода включают:
| Оператор | Синтаксис | Описание | Пример |
|---|---|---|---|
hasChanged | hasChanged(u) | Возвращает
| Переход, когда hasChanged(h) |
hasChangedFrom | hasChangedFrom(u,A) | Возвращает true, если
| Переход, когда hasChangedFrom(h,1) |
hasChangedTo | hasChangedTo(u,B) | Возвращает true, если изменения
| Переход, когда hasChangedTo(h,0) |
Некоторые функции генерации сигнала используют темпорального оператора et, который является прошедшим временем тестового шага в секундах. Масштабирование, округляясь, и другие приближения значений аргументов может влиять на функциональные выходные параметры. Общие функции генерации сигнала включают:
| Функция | Синтаксис | Описание | Пример |
|---|---|---|---|
square | square(x) | Представляет прямоугольную волну вывод с периодом В интервале | Выведите прямоугольную волну с периодом секунды square(et/10) |
sawtooth | sawtooth(x) | Представляет пилообразный вывод волны с периодом В интервале | Выведите пилообразную волну с периодом секунды sawtooth(et/10) |
triangle | triangle(x) | Представляет треугольный вывод волны с периодом В интервале | Выведите треугольную волну с периодом секунды triangle(et/10) |
ramp | ramp(x) | Представляет сигнал пандуса наклонного
| Пандус один модуль в течение каждых 5 секунд теста продвигается прошедшее время: ramp(et/5) |
heaviside | heaviside(x) | Представляет сигнал шага heaviside, возвращая | Выведите сигнал heaviside после секунд heaviside(et-5) |
latch | latch(x) | Сохраняет значение | Фиксируйте b = latch(torque) |
sin | sin(x) | Возвращает синус | Синусоида с периодом 10 секунд: sin(et*2*pi/10) |
cos | cos(x) | Возвращает косинус | Волна косинуса с периодом 10 секунд: cos(et*2*pi/10) |
rand | rand | Равномерно распределенные псевдослучайные значения | Сгенерируйте новые случайные значения для каждой симуляции путем объявления coder.extrinsic('rand')
nr = rand
sg = a + (b-a)*nr |
randn | randn | Нормально распределенные псевдослучайные значения |
Сгенерируйте новые случайные значения для каждой симуляции путем объявления coder.extrinsic('randn')
nr = randn
sg = nr*2 |
exp | exp(x) | Возвращает натуральную экспоненциальную функцию, . | Экспоненциальный сигнал, прогрессирующий в одной десятой теста, продвигается прошедшее время: exp(et/10) |
Можно использовать логические соединительные слова в действиях, переходах и оценках. В этих примерах p и q представляют булевы сигналы или логические выражения.
| Операция | Синтаксис | Описание | Пример |
|---|---|---|---|
Отрицание | ~p | не |
|
Соединение | p && q |
|
|
Дизъюнкция | p || q |
|
|
Значение | ~p || q | если |
|
Двусторонняя условная зависимость | (p && q) || (~p && ~q) |
|
|
Можно использовать операторы отношения в действиях, переходах и оценках. В этих примерах x и y представляют числовые переменные типа.
Используя == или операторы ~= в verify оператор возвращает предупреждение при сравнении данных с плавающей точкой. Считайте ограничения точности сопоставленными с числами с плавающей запятой при реализации операторов verify. Смотрите Числа с плавающей запятой (MATLAB). Если вы используете данные с плавающей точкой, рассматриваете определение допуска к оценке. Например, вместо verify(x == 5), проверьте x в допуске 0.001:
verify(abs(x-5) < 0.001)
| Оператор и синтаксис | Описание | Пример |
|---|---|---|
x > y | Больше, чем | verify(x > y) |
x < y | Меньше, чем | verify(x < y) |
x >= y | Больше, чем или равный | verify(x >= y) |
x <= y | Меньше чем или равный | verify(x <= y) |
x == y | Равный | verify(x == y) |
x ~= y | Не равняются | verify(x ~= y) |