Skip to content

Validation

dominicparga edited this page May 23, 2018 · 1 revision

Determinism

We guarantee a deterministic simulation execution validated by help of special test cases. Parsing and creation of a new scenario has been tested for determinism as well as resetting of the old graph and re-preparing the old scenario.

The only difference between the above mentioned tests is the number of simulation steps per simulation run. The parsing/creating-test is executing the initial step and compares them once, the refurbish-test executes multiple scenario steps and compares several states. The refurbish-test is described more detailed below.

Implementation details, where r, s, c are defined per test class: The simulation runs r times in addition to the initial run (for reference). So a simulation is tested for deterministic execution r times. s is the number of steps per simulation run. So one simulation executes s steps. c is the number of state checks. Using our implementation of a sigmoid number sequence from 1 to s with c numbers, the checks are concentrated in the beginning and the end of a simulation run. Concentration in the beginning saves runtime if the test fails early. Concentration in the end is a compromise: The longer the simulation executes, the higher is the test precision, but more vehicles are disappeared as well.

A state check compares for a certain simulation step:

  • for every vehicle: (vehicle's id, vehicle's street, vehicle's cell position) is identical
  • correct number of vehicles