From bb000f847cb90b61813b075a9be201bc6475a327 Mon Sep 17 00:00:00 2001 From: glopesdev Date: Wed, 7 Aug 2024 23:14:46 +0100 Subject: [PATCH 1/2] Add support for sorting test workflows --- Bonsai.Core.Tests/TestWorkflow.cs | 7 +++++++ Bonsai.Editor.Tests/WorkflowEditorTests.cs | 8 +------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Bonsai.Core.Tests/TestWorkflow.cs b/Bonsai.Core.Tests/TestWorkflow.cs index e2a9fa89d..9dd00a97e 100644 --- a/Bonsai.Core.Tests/TestWorkflow.cs +++ b/Bonsai.Core.Tests/TestWorkflow.cs @@ -122,6 +122,13 @@ public TestWorkflow AppendSubject(string name) return Append(subjectBuilder); } + public TestWorkflow TopologicalSort() + { + var workflow = new ExpressionBuilderGraph(); + workflow.InsertRange(0, Workflow.TopologicalSort()); + return new TestWorkflow(workflow, Cursor); + } + public ExpressionBuilderGraph ToInspectableGraph() { return Workflow.ToInspectableGraph(); diff --git a/Bonsai.Editor.Tests/WorkflowEditorTests.cs b/Bonsai.Editor.Tests/WorkflowEditorTests.cs index 1a762e841..17b2e5875 100644 --- a/Bonsai.Editor.Tests/WorkflowEditorTests.cs +++ b/Bonsai.Editor.Tests/WorkflowEditorTests.cs @@ -48,12 +48,6 @@ static string ToString(IEnumerable sequence) ExpressionBuilderGraph workflow = null, MockGraphView graphView = null) { - if (workflow != null) - { - // Workflows must be topologically sorted to ensure all editor operations are reversible - workflow.InsertRange(0, workflow.TopologicalSort()); - } - graphView ??= new MockGraphView(workflow); var editor = new WorkflowEditor(graphView.ServiceProvider, graphView); editor.UpdateLayout.Subscribe(graphView.UpdateGraphLayout); @@ -236,7 +230,7 @@ public void ReplaceGraphNode_SingleInputWithVisualizerMapping_GroupWorkflowHasSi .AppendBranch(source => source .AppendSubject("P") .AddArguments(source.Append(new VisualizerMappingBuilder()))) - .Workflow + .TopologicalSort() .ToInspectableGraph(); var (editor, assertIsReversible) = CreateMockEditor(workflow); From a0581bad213480fe6c7d2bac695f8c7afda10445 Mon Sep 17 00:00:00 2001 From: glopesdev Date: Wed, 7 Aug 2024 23:15:03 +0100 Subject: [PATCH 2/2] Assert single workflow input --- Bonsai.Editor.Tests/WorkflowEditorTests.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Bonsai.Editor.Tests/WorkflowEditorTests.cs b/Bonsai.Editor.Tests/WorkflowEditorTests.cs index 17b2e5875..9c5bd0316 100644 --- a/Bonsai.Editor.Tests/WorkflowEditorTests.cs +++ b/Bonsai.Editor.Tests/WorkflowEditorTests.cs @@ -246,6 +246,7 @@ public void ReplaceGraphNode_SingleInputWithVisualizerMapping_GroupWorkflowHasSi var groupBuilder = ExpressionBuilder.Unwrap(groupNode?.Value) as GroupWorkflowBuilder; Assert.IsInstanceOfType(groupBuilder, typeof(GroupWorkflowBuilder)); Assert.AreEqual(expected: 2, groupBuilder.Workflow.Count); + Assert.IsInstanceOfType(ExpressionBuilder.Unwrap(groupBuilder.Workflow[0].Value), typeof(WorkflowInputBuilder)); Assert.IsInstanceOfType(ExpressionBuilder.Unwrap(groupBuilder.Workflow[1].Value), typeof(WorkflowOutputBuilder)); assertIsReversible(); }