Test 1: Pre-evacuation time assignment

Test 1: Pre-evacuation time assignment

PASS

1. Definition

An 8 m by 5 m room has a 1 m exit. Ten occupants are placed at random positions in the room. A pre-evacuation time distribution (for example uniform, normal or log-normal) is imposed through the model’s own input facility, and the run is repeated for every distribution family the model embeds. The test checks that each occupant starts to move at the assigned time. The tester chooses a statistical method that suits the distribution and repeats the scenario several times.

Source: ISO 20414:2020, Test 1, Table 2, pp. 11-12. This is a paraphrase, not the text of the standard.

Reference: ISO (2020). ISO 20414:2020, Fire safety engineering - Verification and validation protocol for building fire evacuation models. First edition. International Organization for Standardization, Geneva. https://www.iso.org/standard/78348.html (Page numbers are the printed page numbers of ISO 20414:2020 (the copy read is a proof, so numbers can differ by a page in the published edition). ISO states that its tests are examples and that a tester may use different tests that verify the same component equivalently.)

2. Scenario

Top view of the scenario for Test 1

Scenario figure from the executed notebook.

3. What to expect

Each occupant starts moving at the appropriate time, and the pre-evacuation times of the whole population fall within the specified range. ISO sets no numeric tolerance.

Our criterion: Start times fit the assigned distribution (two-sample KS, alpha=0.05)

4. Our result

Status: PASS

Test cases of this row

CaseStatusResultRun
test_base_zip_loadsPASS——
test_distribution_fits[lognormal]PASSpremovement_ks_pvalue = 0.8824
accepted ≥ 0.05
n = 60 · seed 42, 43, 44, 45, 46, 47
test_distribution_fits[normal]PASSpremovement_ks_pvalue = 0.8909
accepted ≥ 0.05
n = 60 · seed 42, 43, 44, 45, 46, 47
test_distribution_fits[uniform]PASSpremovement_ks_pvalue = 0.5462
accepted ≥ 0.05
n = 60 · seed 42, 43, 44, 45, 46, 47
  • test_distribution_fits[lognormal]: bound: measured > 0.05 (two-sample Kolmogorov-Smirnov, lognormal distribution, pooled over 6 seeds)
  • test_distribution_fits[normal]: bound: measured > 0.05 (two-sample Kolmogorov-Smirnov, normal distribution, pooled over 6 seeds)
  • test_distribution_fits[uniform]: bound: measured > 0.05 (two-sample Kolmogorov-Smirnov, uniform distribution, pooled over 6 seeds)

Result figure for Test 1

Result figure from the executed notebook.

5. Our implementation

Deviations from the standard:

  • The pass rule is the suite’s own: the start times of 6 seeded runs (60 samples per case) are compared with 10 000 draws of the assigned distribution by a two-sample Kolmogorov-Smirnov test at alpha = 0.05. The start of movement is the first frame at which an agent has moved more than 0.05 m from its spawn point.
  • Three families are tested: uniform U(10, 100) s, normal N(60, 20) s and log-normal (mu = 4.586, sigma = 0.967). The scenario harness also embeds gamma and Weibull, which the suite does not test, although ISO asks for every embedded family.
  • The test compares the population with the distribution. It does not check each occupant’s realised start time against that occupant’s own assigned time.
  • Occupants walk at a constant 1.2 m/s. The exit is a 1 m wide, 0.3 m deep strip on the 5 m wall.

Model: CollisionFreeSpeedModel

6. Our notebook