From 07d6690b9b9de7db7debe25e8e3def5c0d68bb26 Mon Sep 17 00:00:00 2001 From: "Somhairle H. Marisol" Date: Mon, 21 Sep 2026 09:27:28 +0800 Subject: feat(probe): YJ-01 real-probe 7-stage dataset + probe design branch in pipeline/CLI --- .../PipelineTests.fs | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'tests/SomhairlesDream.Modeling.Tests/PipelineTests.fs') diff --git a/tests/SomhairlesDream.Modeling.Tests/PipelineTests.fs b/tests/SomhairlesDream.Modeling.Tests/PipelineTests.fs index 7a5e3e1..221e7d7 100644 --- a/tests/SomhairlesDream.Modeling.Tests/PipelineTests.fs +++ b/tests/SomhairlesDream.Modeling.Tests/PipelineTests.fs @@ -60,6 +60,7 @@ type private TestBridge(?wrongObjectIds: bool) = let private options root bridge = { PipelineOptions.ArtifactRoot = root Ids = ids + Steps = Design.steps Render = true Bridge = bridge Clock = fun () -> DateTimeOffset.Parse("2026-09-20T12:00:00Z") @@ -88,6 +89,36 @@ let ``design steps expose the fixed ordered object contract`` () = "heritage.cabin" "heritage.crossbeam" |] = steps[2].ObjectIds) +[] +let ``probe design steps expose the cumulative real-probe contract`` () = + let steps = Design.probeSteps + + Assert.Equal(7, steps.Length) + Assert.True([| "probe-01-bus"; "probe-02-boom"; "probe-03-rtg"; "probe-04-hga"; "probe-05-instruments"; "probe-06-mast"; "probe-07-livery" |] = (steps |> Array.map _.StepId)) + Assert.True([| 0; 1; 2; 3; 4; 5; 6 |] = (steps |> Array.map _.Index)) + Assert.Equal(22, steps[0].ObjectIds.Length) + Assert.Equal(31, steps[1].ObjectIds.Length) + Assert.Equal(43, steps[2].ObjectIds.Length) + Assert.Equal(49, steps[3].ObjectIds.Length) + Assert.Equal(55, steps[4].ObjectIds.Length) + Assert.Equal(56, steps[5].ObjectIds.Length) + Assert.Equal(56, steps[6].ObjectIds.Length) + Assert.True(steps[0].ObjectIds |> Array.contains "probe.bus.electronics.decagon") + Assert.True(steps[0].ObjectIds |> Array.contains "probe.bus.bay.panel.00") + Assert.True(steps[2].ObjectIds |> Array.contains "probe.rtg.01.fin.02") + Assert.True(steps[3].ObjectIds |> Array.contains "probe.hga.reflector") + Assert.True(steps[4].ObjectIds |> Array.contains "probe.optical.aperture") + Assert.True([| "probe.science.boom" |] = (steps[5].ObjectIds |> Array.except steps[4].ObjectIds)) + Assert.True([||] = (steps[6].ObjectIds |> Array.except steps[5].ObjectIds)) + Assert.Equal(6, steps[6].Changes.Length) + Assert.True(steps[6].Changes |> Array.forall (fun change -> change.Kind = "update")) + +[] +let ``design forProject selects steps by project id prefix`` () = + Assert.True(Design.steps = Design.forProject "heritage-001") + Assert.True(Design.probeSteps = Design.forProject "probe-001") + Assert.True(Design.probeSteps = Design.forProject "probe-42") + [] let ``pipeline commits each step and writes manifest after complete event`` () = withTempDirectory (fun root -> -- cgit v1.2.3