using RobotNet10.GlobalPathPlanner.Model; namespace RobotNet10.GlobalPathPlanner.UnitTest; /// /// Helper class for creating test data /// public static class TestHelpers { /// /// Creates a simple linear graph with 3 nodes connected in a line /// public static (GlobalNode[] Nodes, GlobalEdge[] Edges) CreateSimpleLinearGraph() { var node1 = new GlobalNode { Id = Guid.Parse("11111111-1111-1111-1111-111111111111"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), Name = "Node1", X = 0.0, Y = 0.0 }; var node2 = new GlobalNode { Id = Guid.Parse("22222222-2222-2222-2222-222222222222"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), Name = "Node2", X = 10.0, Y = 0.0 }; var node3 = new GlobalNode { Id = Guid.Parse("33333333-3333-3333-3333-333333333333"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), Name = "Node3", X = 20.0, Y = 0.0 }; var edge1 = new GlobalEdge { Id = Guid.Parse("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), StartNodeId = node1.Id, EndNodeId = node2.Id, Degree = 1 // Linear }; var edge2 = new GlobalEdge { Id = Guid.Parse("bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), StartNodeId = node2.Id, EndNodeId = node3.Id, Degree = 1 // Linear }; return ( new[] { node1, node2, node3 }, new[] { edge1, edge2 } ); } /// /// Creates a square graph with 4 nodes forming a square /// public static (GlobalNode[] Nodes, GlobalEdge[] Edges) CreateSquareGraph() { var node1 = new GlobalNode { Id = Guid.Parse("11111111-1111-1111-1111-111111111111"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), Name = "Node1", X = 0.0, Y = 0.0 }; var node2 = new GlobalNode { Id = Guid.Parse("22222222-2222-2222-2222-222222222222"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), Name = "Node2", X = 10.0, Y = 0.0 }; var node3 = new GlobalNode { Id = Guid.Parse("33333333-3333-3333-3333-333333333333"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), Name = "Node3", X = 10.0, Y = 10.0 }; var node4 = new GlobalNode { Id = Guid.Parse("44444444-4444-4444-4444-444444444444"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), Name = "Node4", X = 0.0, Y = 10.0 }; var edge1 = new GlobalEdge { Id = Guid.Parse("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), StartNodeId = node1.Id, EndNodeId = node2.Id, Degree = 1 }; var edge2 = new GlobalEdge { Id = Guid.Parse("bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), StartNodeId = node2.Id, EndNodeId = node3.Id, Degree = 1 }; var edge3 = new GlobalEdge { Id = Guid.Parse("cccccccc-cccc-cccc-cccc-cccccccccccc"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), StartNodeId = node3.Id, EndNodeId = node4.Id, Degree = 1 }; var edge4 = new GlobalEdge { Id = Guid.Parse("dddddddd-dddd-dddd-dddd-dddddddddddd"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), StartNodeId = node4.Id, EndNodeId = node1.Id, Degree = 1 }; return ( new[] { node1, node2, node3, node4 }, new[] { edge1, edge2, edge3, edge4 } ); } /// /// Creates a disconnected graph (two separate components) /// public static (GlobalNode[] Nodes, GlobalEdge[] Edges) CreateDisconnectedGraph() { var node1 = new GlobalNode { Id = Guid.Parse("11111111-1111-1111-1111-111111111111"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), Name = "Node1", X = 0.0, Y = 0.0 }; var node2 = new GlobalNode { Id = Guid.Parse("22222222-2222-2222-2222-222222222222"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), Name = "Node2", X = 10.0, Y = 0.0 }; var node3 = new GlobalNode { Id = Guid.Parse("33333333-3333-3333-3333-333333333333"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), Name = "Node3", X = 100.0, Y = 100.0 }; var edge1 = new GlobalEdge { Id = Guid.Parse("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), StartNodeId = node1.Id, EndNodeId = node2.Id, Degree = 1 }; // Node3 is disconnected (no edges) return ( new[] { node1, node2, node3 }, new[] { edge1 } ); } /// /// Creates a graph with Bezier curve edges /// public static (GlobalNode[] Nodes, GlobalEdge[] Edges) CreateBezierCurveGraph() { var node1 = new GlobalNode { Id = Guid.Parse("11111111-1111-1111-1111-111111111111"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), Name = "Node1", X = 0.0, Y = 0.0 }; var node2 = new GlobalNode { Id = Guid.Parse("22222222-2222-2222-2222-222222222222"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), Name = "Node2", X = 10.0, Y = 10.0 }; var edge1 = new GlobalEdge { Id = Guid.Parse("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"), MapId = Guid.Parse("00000000-0000-0000-0000-000000000001"), StartNodeId = node1.Id, EndNodeId = node2.Id, Degree = 2, // Quadratic Bezier ControlPoint1X = 5.0, ControlPoint1Y = 5.0 }; return ( new[] { node1, node2 }, new[] { edge1 } ); } }