Assess Model Simulation Using verify Statements

You can verify model simulation by including a Test Assessment block in your model or test harness, and authoring verify statements in the Test Assessment block. verify statements return pass, fail, or untested results for both the overall simulation and individual time steps. Results appear in the Test Manager.

Activate verify Statements in the Test Assessment Block

The Test Assessment contains a When decomposition sequence. The When decomposition sequence helps you clearly define the simulation condition that activates each verify statement:

  1. If your model uses a Test Sequence block source, consider activating each verify statement using the active Test Sequence block step.

  2. If your model does not use a Test Sequence block source, or your test sequence steps do not correspond with conditions to verify, activate each verify statement using a signal condition.

Activate verify Statements with Test Sequence Steps

Connect the Test Sequence and Test Assessment block with the active step signal from the Test Sequence block. Activate each verify statement with the active step.

For example, this test harness contains a Test Sequence and Test Assessment block. The blocks are connected by the Active_Step signal.

The Test Assessment block contains a When decomposition sequence with four substeps. Each contains a verify statement and is activated with a different Test Sequence block step.

To activate verify statements in a Test Assessment with active steps in a Test Sequence blocks:

  1. Create active step data output for the Test Sequence block:

    1. Select the Test Sequence block.

    2. Create a new enumerated data output. In the Property Inspector, select Create data to monitor the active step.

    3. Name the enumeration.

  2. Create a data input for the Test Assessment block:

    1. Open the Test Assessment block.

    2. In the Symbols sidebar, next to Input, click the Add data icon.

    3. Name the input.

  3. In the block diagram, connect the Test Sequence block output to the Test Assessment block input.

  4. Create a When decomposition sequence in the Test Assessment block.

    1. The Test Assessment block is configured by default with a When decomposition sequence. To change between a standard sequence and a When decomposition sequence, right-click the parent step and select When decomposition.

    2. For each When decomposition step, define when the step is active by using the active step enumeration data. For example:

      VerifyBoth when TSActiveStepIN == TSActiveStepEnum.PressBothButtons

    3. Add verify statements to each assessment step.

Activate verify Statements with Signal Conditions

If your model does not use a Test Sequence block source, or if Test Sequence steps do not correspond with conditions to verify, use unique signal conditions to activate verify statements. Place verify statements in a When decomposition sequence, and use conditional statements in the When conditions.

For example, this test harness uses a Signal Builder block input.

The Test Assessment block contains a When decomposition sequence. Each substep contains a verify statement. A unique signal condition activates each substep.

Author verify Statements

verify statements evaluate logical expressions. You can label results in the Test Manager with optional arguments.

A verify statement returns a pass, fail, or untested result for each time step and for the overall simulation. A fail at any time step results in an overall fail. If there are no failing results, a pass at any time step results in an overall pass. Otherwise, the overall result is untested. Results appear in the Verify Statements section of the test results.


verify statements use the syntax:


where expressionis a logical expression. Use additional arguments to define an errorMessage and a statement identifier. Error messages display in the diagnostic viewer. You can use error messages to display key values at the time the statement fails.

For example, if verify evaluates an expression containing variables x and y, you can display the values of x and y using the string:

'x and y values are %d, %d',x,y

An identifier labels the verify results in the Test Manager. The identifier uses a string of the form 'prefix:suffix'. prefix and suffix are alphanumeric strings. For example:


verify Statement Considerations

  • verify is not supported in Test Sequence blocks that use continuous-time updating. Test Sequence block data can depend on factors such as the solver step time. Continuous-time updating can cause differences in when block data and verify statements update, which can lead to unexpected verify statement results.

    If your model uses continuous time and you use verify statements in a Test Sequence or Test Assessment block, consider explicitly setting a discrete block sample time.

  • If you use parallel test execution to run your tests, then you cannot use the Highlight in Model button for verify results.


In this comparison of two values, the parent step uses verify statements to assess two local variables x and y during the simulation.

  • verify(x >= y) passes overall because it is true for the entire test sequence.

  • verify(x == y) and verify(x ~= y) fail because they fail in step_1_2 and step_1_1, respectively.

The Test Manager displays the results:

See Also

| |

Related Topics