✅ Sharur push same lane at max
| Category | Ability |
| Status | Passing |
| Test | tests/test_abilities_complex.py::TestSharurPostActionPush::test_sharur_push_same_lane_at_max |
Sharur and target both in lane 2 (max). Push goes to lane 1.
Preconditions
- Lane 2: P1's Sharur (#068), Lane 2: P2's Duban (#001)
Action
- Fire ABILITY_USED with source=Sharur, target=Duban (same lane, at boundary)
result = fire_event(state, event)
duban_after = next(d for d in result.demons if d.unit_id == "001")
Expected Postconditions
- Duban: pushed to lane 1 (can't go to lane 3, so pushed down)
Assertions
assert duban_after.lane == 1, (
f"At lane 2 boundary, push should go to lane 1. Got {duban_after.lane}."
)