Initial commit

This commit is contained in:
2026-07-03 16:31:37 +07:00
commit 899c7c637d
1939 changed files with 641750 additions and 0 deletions

View File

@@ -0,0 +1,140 @@
using RobotNet10.GlobalPathPlanner.Model;
namespace RobotNet10.GlobalPathPlanner.UnitTest;
public class GlobalNodeTests
{
[Fact]
public void DistanceTo_WithSamePosition_ShouldReturnZero()
{
// Arrange
var node1 = new GlobalNode { X = 5.0, Y = 5.0 };
var node2 = new GlobalNode { X = 5.0, Y = 5.0 };
// Act
var distance = node1.DistanceTo(node2);
// Assert
Assert.Equal(0.0, distance, 5);
}
[Fact]
public void DistanceTo_WithHorizontalDistance_ShouldReturnCorrectValue()
{
// Arrange
var node1 = new GlobalNode { X = 0.0, Y = 0.0 };
var node2 = new GlobalNode { X = 10.0, Y = 0.0 };
// Act
var distance = node1.DistanceTo(node2);
// Assert
Assert.Equal(10.0, distance, 5);
}
[Fact]
public void DistanceTo_WithVerticalDistance_ShouldReturnCorrectValue()
{
// Arrange
var node1 = new GlobalNode { X = 0.0, Y = 0.0 };
var node2 = new GlobalNode { X = 0.0, Y = 10.0 };
// Act
var distance = node1.DistanceTo(node2);
// Assert
Assert.Equal(10.0, distance, 5);
}
[Fact]
public void DistanceTo_WithDiagonalDistance_ShouldReturnCorrectValue()
{
// Arrange
var node1 = new GlobalNode { X = 0.0, Y = 0.0 };
var node2 = new GlobalNode { X = 3.0, Y = 4.0 };
// Act
var distance = node1.DistanceTo(node2);
// Assert
Assert.Equal(5.0, distance, 5); // 3-4-5 triangle
}
[Fact]
public void DistanceTo_ShouldBeCommutative()
{
// Arrange
var node1 = new GlobalNode { X = 1.0, Y = 2.0 };
var node2 = new GlobalNode { X = 4.0, Y = 6.0 };
// Act
var distance1 = node1.DistanceTo(node2);
var distance2 = node2.DistanceTo(node1);
// Assert
Assert.Equal(distance1, distance2, 5);
}
[Fact]
public void DistanceTo_WithNegativeCoordinates_ShouldReturnCorrectValue()
{
// Arrange
var node1 = new GlobalNode { X = -5.0, Y = -5.0 };
var node2 = new GlobalNode { X = -2.0, Y = -1.0 };
// Act
var distance = node1.DistanceTo(node2);
// Assert
Assert.Equal(5.0, distance, 5); // sqrt(3^2 + 4^2) = 5
}
[Fact]
public void ToString_WithName_ShouldReturnName()
{
// Arrange
var node = new GlobalNode { Name = "TestNode" };
// Act
var result = node.ToString();
// Assert
Assert.Equal("TestNode", result);
}
[Fact]
public void ToString_WithoutName_ShouldReturnTypeName()
{
// Arrange
var node = new GlobalNode { Name = null };
// Act
var result = node.ToString();
// Assert
Assert.Equal(typeof(GlobalNode).ToString(), result);
}
[Fact]
public void Properties_ShouldBeSettable()
{
// Arrange & Act
var node = new GlobalNode
{
Id = Guid.NewGuid(),
MapId = Guid.NewGuid(),
Name = "Test",
X = 1.5,
Y = 2.5,
Orientation = Orientation.FORWARD
};
// Assert
Assert.NotEqual(Guid.Empty, node.Id);
Assert.NotEqual(Guid.Empty, node.MapId);
Assert.Equal("Test", node.Name);
Assert.Equal(1.5, node.X);
Assert.Equal(2.5, node.Y);
Assert.Equal(Orientation.FORWARD, node.Orientation);
}
}