Accelerating the pace of engineering and science

# Documentation Center

• Trial Software
• Product Updates

# assert

Assertions for debugging

### Use only in the MuPAD Notebook Interface.

This functionality does not run in MATLAB.

## Syntax

```assert(cond)
```

## Description

The statement assert(cond) declares that the condition cond holds true at the moment when the statement is evaluated. By default, MuPAD® does not care about assertions. After setting testargs(TRUE), however, MuPAD checks every assertion and stops with an error if boolean evaluation of cond does not give TRUE.

Assertions are a major debugging tool for programmers: by stating frequently what they think to have achieved, programmers make it easy for themselves to detect the first unintended intermediate result.

## Examples

### Example 1

Suppose we want to write a function f that takes an integer as its argument and returns 0 if that integer is a multiple of 3, and 1 otherwise. One idea how to code this could be the following: given an integer n, n modulo 3 must be equal to one of - 1, 1, or 0. In any case, abs(n mod 3) should do what we want:

```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```

Checking assertions is switched on or off using testargs:

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

The result does not equal 1. For debugging purposes, we switch on assertion checking:

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

This shows that the local variable k must have gotten a wrong value. Indeed, when writing our program we overlooked the difference between mod and the symmetric remainder given by mods.

`testargs(oldtestargs):`

## Parameters

 cond A boolean expression

## Return Values

assert returns TRUE or raises an error.

## See Also

### MuPAD Functions

Was this topic helpful?