Run the order-picking examples with Python 3.11 or later.
Open a terminal in the extracted example folder, then run:

    python -m tutorial.main --output tutorial-results
    python -m unittest discover -s . -p "test_tutorial*.py"

In the course repository, run these commands from assessment/orderpicking.

The entry point reads the original teaching inputs from data/raw/.
It writes the report's JSON replays, tables and SVG figures to tutorial-results/.
Each saved replay includes its geometry, demand, methods, parameters and timing.
The CSV files retain all 10 seeds, paired differences and failed runs.
Runtime measures the policy call; replay construction and file writing are excluded.
Scheduling runtime excludes creation of the fixed tours compared by both schedulers.

The synthetic case is wh-orderpicking.v1.
It has 300 storage faces and 150 interior travel positions.
The inputs differ from the historical generator and are saved as a separate case.
Historical assignment files and their starting code remain available unchanged.

Choose a router with routing="s_shape" or routing="ratliff_rosenthal".
Choose a batcher with batching="seed" or batching="time_savings".
Choose a scheduler with scheduling="list" or scheduling="lpt".
The three policy_* functions return Solution objects with the original route fields.
The tutorial's Item accepts the original sku and slot fields plus quantity and line_id.
Use physical face IDs such as A6_L_01 when exporting a replay.
Multi-picker solutions retain their selected walking and picking times.
Replay exports use those saved choices and reject conflicting timing overrides.

Method definitions and adaptations are documented in the module docstrings.
No student submission or personal student information is included in this package.
