Initial commit

This commit is contained in:
2026-07-03 16:37:12 +07:00
commit 63b8c1ea8b
1931 changed files with 640587 additions and 0 deletions

View File

@@ -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 }
);
}
}