100 lines
3.2 KiB
C#
100 lines
3.2 KiB
C#
using System;
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using NavisworksTransport.Utils;
|
|
|
|
namespace NavisworksTransport.UnitTests.Core
|
|
{
|
|
[TestClass]
|
|
public class CornerTurnCheckHelperTests
|
|
{
|
|
[TestMethod]
|
|
public void EqualWidth_MaxLength_ShouldPass()
|
|
{
|
|
var L = 3.0 * Math.Sqrt(2) - 1.5 - 0.01;
|
|
Assert.IsTrue(CornerTurnCheckHelper.CanPass(L, 1.5, 3.0, 3.0, out _, out _));
|
|
}
|
|
|
|
[TestMethod]
|
|
public void EqualWidth_TooLong_ShouldNotPass()
|
|
{
|
|
Assert.IsFalse(CornerTurnCheckHelper.CanPass(2.5, 1.0, 2.0, 2.0, out _, out _));
|
|
}
|
|
|
|
[TestMethod]
|
|
public void EqualWidth_Short_ShouldPass()
|
|
{
|
|
Assert.IsTrue(CornerTurnCheckHelper.CanPass(1.0, 0.5, 2.0, 2.0, out _, out _));
|
|
}
|
|
|
|
[TestMethod]
|
|
public void StraightPass_ShouldPass()
|
|
{
|
|
Assert.IsTrue(CornerTurnCheckHelper.CanPass(2.5, 0.3, 2.5, 3.0, out _, out _));
|
|
}
|
|
|
|
[TestMethod]
|
|
public void WidthExceedsBoth_ShouldNotPass()
|
|
{
|
|
Assert.IsFalse(CornerTurnCheckHelper.CanPass(3.0, 4.0, 2.0, 2.5, out _, out _));
|
|
}
|
|
|
|
[TestMethod]
|
|
public void ZeroOrNegativeInput_ShouldReturnFalse()
|
|
{
|
|
Assert.IsFalse(CornerTurnCheckHelper.CanPass(0, 1, 2, 2, out _, out _));
|
|
Assert.IsFalse(CornerTurnCheckHelper.CanPass(2, 0, 2, 2, out _, out _));
|
|
Assert.IsFalse(CornerTurnCheckHelper.CanPass(2, 1, 0, 2, out _, out _));
|
|
Assert.IsFalse(CornerTurnCheckHelper.CanPass(2, 1, 2, 0, out _, out _));
|
|
Assert.IsFalse(CornerTurnCheckHelper.CanPass(-1, 1, 2, 2, out _, out _));
|
|
}
|
|
|
|
[TestMethod]
|
|
public void UnequalWidth_Fits_ShouldPass()
|
|
{
|
|
Assert.IsTrue(CornerTurnCheckHelper.CanPass(0.8, 0.5, 3.0, 1.5, out _, out _));
|
|
}
|
|
|
|
[TestMethod]
|
|
public void VeryDifferentWidths_ShouldUseNarrower()
|
|
{
|
|
Assert.IsTrue(CornerTurnCheckHelper.CanPass(0.1, 0.55, 10.0, 0.6, out _, out _));
|
|
}
|
|
|
|
[TestMethod]
|
|
public void HugeModule_ShouldNotPass()
|
|
{
|
|
Assert.IsFalse(CornerTurnCheckHelper.CanPass(20.0, 5.0, 2.0, 2.0, out _, out _));
|
|
}
|
|
|
|
[TestMethod]
|
|
public void UserCase_LongerThanEntry_ShouldNotPass()
|
|
{
|
|
Assert.IsFalse(CornerTurnCheckHelper.CanPass(4.9, 2.0, 4.8, 2.75, out _, out _));
|
|
}
|
|
|
|
[TestMethod]
|
|
public void UserCase_WiderThanExit_ShouldNotPass()
|
|
{
|
|
Assert.IsFalse(CornerTurnCheckHelper.CanPass(4.8, 2.8, 3.0, 2.75, out _, out _));
|
|
}
|
|
|
|
[TestMethod]
|
|
public void EqualWidth_Square_ShouldPass()
|
|
{
|
|
Assert.IsTrue(CornerTurnCheckHelper.CanPass(1.0, 1.0, 2.0, 2.0, out _, out _));
|
|
}
|
|
|
|
[TestMethod]
|
|
public void EntryExact_ShouldPass()
|
|
{
|
|
Assert.IsTrue(CornerTurnCheckHelper.CanPass(2.75, 2.0, 5.0, 2.75, out _, out _));
|
|
}
|
|
|
|
[TestMethod]
|
|
public void Square_WidthEqualsCorridor_ShouldPass()
|
|
{
|
|
Assert.IsTrue(CornerTurnCheckHelper.CanPass(2.0, 2.0, 3.0, 2.75, out _, out _));
|
|
}
|
|
}
|
|
}
|