File size: 988 Bytes
6172160
4904e85
6172160
4904e85
6172160
4904e85
6172160
4904e85
 
6172160
 
 
 
4904e85
 
6172160
 
 
4904e85
 
6172160
 
 
 
 
 
4904e85
 
6172160
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
"""Tests for task registry and scenario fixtures (dispatch domain)."""

from __future__ import annotations

import pytest

from src.tasks.registry import DispatchScenarioFactory, TaskRegistry


def test_four_tasks_registered() -> None:
    tasks = TaskRegistry.list_tasks()
    ids = {t.task_id for t in tasks}
    assert ids == {"single_incident", "multi_incident", "mass_casualty", "shift_surge"}


def test_get_unknown_task_raises() -> None:
    with pytest.raises(KeyError):
        TaskRegistry.get("nope")


def test_factory_build_returns_state_and_meta() -> None:
    state, meta = DispatchScenarioFactory.build("multi_incident", seed=42)
    assert "units" in state
    assert "incidents" in state
    assert "task_id" in state
    assert meta["grid_size"]


def test_factory_is_deterministic() -> None:
    s1, m1 = DispatchScenarioFactory.build("shift_surge", seed=123)
    s2, m2 = DispatchScenarioFactory.build("shift_surge", seed=123)
    assert s1 == s2
    assert m1 == m2