Files
StructureHelper/StructureHelperTests/UnitTests/Calculators/LimitCurveLogicTest.cs
2025-11-29 21:43:00 +05:00

44 lines
1.4 KiB
C#

using Moq;
using NUnit.Framework;
using StructureHelperCommon.Infrastructures.Exceptions;
using StructureHelperCommon.Models.Shapes;
using StructureHelperLogics.NdmCalculations.Analyses.ByForces;
using StructureHelperLogics.NdmCalculations.Analyses.ByForces.LimitCurve.Factories;
namespace StructureHelperTests.UnitTests.Calcuators
{
[TestFixture]
public class LimitCurveLogicTests
{
[Test]
public void GetPoints_ValidPoints_ReturnsTransformedPoints()
{
// Arrange
var getPredicateLogic = new Mock<IGetPredicateLogic>();
getPredicateLogic.Setup(p => p.GetPredicate()).Returns(point => point.X >= 0.5d);//
var limitCurveLogic = new LimitCurveLogic(getPredicateLogic.Object);
var inputPoints = new List<IPoint2D>
{
new Point2D { X = 1, Y = 2 },
new Point2D { X = 3, Y = 4 }
// Add more points as needed
};
// Act
var result = limitCurveLogic.GetPoints(inputPoints);
// Assert
Assert.That(result, Is.Not.Null);
Assert.That(result.Count, Is.EqualTo(inputPoints.Count));
for (int i = 0; i < inputPoints.Count; i++)
{
Assert.That(result[i].X, Is.EqualTo(0.5d).Within(0.01d));
Assert.That(result[i].Y, Is.EqualTo(inputPoints[i].Y / inputPoints[i].X * 0.5d).Within(0.01d));
}
}
}
}