rooms_shove_channel is the headline density win: a sealed NET_A wall leaves no top<->bottom door, so plain room routing drops NET_C; with shove=True NET_A is nudged aside and both nets route, DRC-clean and deterministic. rooms_wide_door seats two nets through one wide gap at distinct projected gate points with no shove. Cover the occupancy-aware projection math directly, assert the four foundation fixtures stay byte-identical under shove=True (shoves==0), and extend the room DRC-clean parametrize with both new fixtures.
DSN test fixtures
Hand-crafted minimal Specctra DSN files, written to exercise the parser. They
are modeled on the real fixtures shipped in the upstream FreeRouting repo
(fixtures/empty_board.dsn and fixtures/SMD-routing-issue-demo.dsn) so the
grammar and formatting match what kicad-cli pcb export specctra-dsn and
FreeRouting itself produce, but they were typed fresh here (no upstream file is
copied into this tree).
empty_board.dsn— the smallest valid board: parser, resolution, unit, and a structure with two signal layers and apcbboundary path. Modeled on FreeRoutingfixtures/empty_board.dsn.smd_demo.dsn— a fuller board exercising every scope the parser handles: quoted board/padstack/image names,via, defaultrule(width + clearance with a(type smd_smd)pair), akeepout, padstacks (rect and circle pads), images with pins, placement withfront/rotation, nets withComp-Pinreferences, and aclasswithcircuit/use_viaand arule. Modeled on FreeRoutingfixtures/SMD-routing-issue-demo.dsn.