Initial commit
This commit is contained in:
@@ -0,0 +1,237 @@
|
||||
using RobotNet10.GlobalPathPlanner.Model;
|
||||
|
||||
namespace RobotNet10.GlobalPathPlanner.UnitTest;
|
||||
|
||||
/// <summary>
|
||||
/// Helper class for creating test data
|
||||
/// </summary>
|
||||
public static class TestHelpers
|
||||
{
|
||||
/// <summary>
|
||||
/// Creates a simple linear graph with 3 nodes connected in a line
|
||||
/// </summary>
|
||||
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 }
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a square graph with 4 nodes forming a square
|
||||
/// </summary>
|
||||
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 }
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a disconnected graph (two separate components)
|
||||
/// </summary>
|
||||
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 }
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a graph with Bezier curve edges
|
||||
/// </summary>
|
||||
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 }
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user