Opened 12 years ago
Closed 12 years ago
#2237 closed defect (fixed)
Assertions checked at the wrong place
| Reported by: | Martin Sjölund | Owned by: | Willi Braun |
|---|---|---|---|
| Priority: | high | Milestone: | 1.9.0 |
| Component: | Run-time | Version: | trunk |
| Keywords: | Cc: | Willi Braun, Lennart Ochel |
Description
From the compliance suite:
within ModelicaCompliance.Algorithms.Assignment; model AssignmentOrder extends Icons.TestCase; Real x; algorithm x := 3.0; assert(Util.compareReal(x, 3.0), "x was not set correctly, "+String(x)+" <> 3.0."); x := 4.0; assert(Util.compareReal(x, 4.0), "x was not set correctly, "+String(x)+" <> 4.0."); x := 5.0; annotation ( __ModelicaAssociation(TestCase(shouldPass = true)), experiment(StopTime = 0.01), Documentation( info = "<html>Tests that assignments in an algorithm section are performed in the given order.</html>")); end AssignmentOrder;
We get:
Message : x was not set correctly, 5 <> 3.0.
Change History (3)
comment:1 by , 12 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:2 by , 12 years ago
| Status: | assigned → accepted |
|---|
That's also the reason why some of the msl32.Modelica.Fluid.* models don't simulate correct.
Note:
See TracTickets
for help on using tickets.

I guess this a known issue. We talked already several times about that. The current implementation collect all assertions and check them at the end of a step (all together). This is of course wrong.
I guess Willi has at least some experiences with this implementation (maybe it is actually his implementation?).