assert

Утверждения для отладки

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

assert(cond)

Описание

Оператор assert(cond) объявляет, что условие, cond сохраняется в тот момент времени, когда оператор оценен. По умолчанию MuPAD® не заботится об утверждениях. После установки testargs (TRUE), однако, MuPAD проверяет каждое утверждение и остановки с ошибкой, если булева оценка cond не дает TRUE.

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

Примеры

Пример 1

Предположим, что мы хотим записать функциональный f, который берет целое число в качестве его аргумента и возвращается 0, если то целое число трехзначного порядка, и 1 в противном случае. Одна идея, как закодировать это, могла быть следующей: учитывая целочисленный n, n по модулю 3 должен быть равен одному из - 1, 1, или 0. В любом случае abs(n mod 3) должен сделать то, что мы хотим:

f := proc(n: DOM_INT): DOM_INT
local k: DOM_INT;
begin
  k := n mod 3;
  assert(k = 1 or k = -1 or k = 0);
  abs(k)
end_proc

Проверка утверждений включается или от использования testargs:

oldtestargs := testargs(): testargs(FALSE): f(5)

Результат не равняется 1. Для отладки целей мы включаем проверку утверждения:

testargs(TRUE): f(5)
Error: Assertion 'k = 1 or k = -1 or k = 0' has failed. [f]

Это показывает, что локальная переменная k, должно быть, получила неправильное значение. Действительно, при написании нашей программы мы пропустили различие между mod и симметричным остатком, данным mods.

testargs(oldtestargs):

Параметры

cond

Булево выражение

Возвращаемые значения

assert возвращает TRUE или повышает ошибку.

Смотрите также

Функции MuPAD