1import { assertEquals } from "@std/assert";2import {3 concatRails,4 railForSegment,5 type RailSource,6} from "../src/client/physics/rail.ts";78Deno.test("rail debug provenance names the authored tile at every station", () => {9 const source: RailSource = {10 path: {11 totalLength: 2,12 segments: [{13 placementIndex: 0,14 length: 2,15 curve: [{ kind: "line", a: [0, 0, 0], b: [2, 0, 0] }],16 alt: {17 length: 2,18 curve: [{ kind: "line", a: [0, 0, 0], b: [2, 0, 1] }],19 zones: ["icy"],20 },21 }],22 },23 pieceFamilies: ["slant"],24 windowMods: ["boost"],25 placements: [{ pieceId: "slalom-debug-tile" }],26 };2728 const main = railForSegment(source);29 assertEquals(main.sources?.length, main.pts.length);30 assertEquals(main.sources?.[0], {31 window: 0,32 family: "slant",33 zone: "boost",34 placementIndex: 0,35 pieceId: "slalom-debug-tile",36 alt: false,37 part: 0,38 });3940 const alt = railForSegment(source, true);41 assertEquals(alt.sources?.[0]?.alt, true);42 assertEquals(alt.sources?.[0]?.zone, "icy");43 const joined = concatRails([main, alt]);44 assertEquals(joined.sources?.length, joined.pts.length);45 assertEquals(joined.sources?.at(-1)?.pieceId, "slalom-debug-tile");46});