public void InsertAtStart() { ISimpleTestSpline2D testSpline2D = PrepareSpline(); float2 a = float2.zero; testSpline2D.AddControlPoint(float2.zero); float2 b = new float2(2f, 0f); testSpline2D.AddControlPoint(b); Assert.AreEqual(2, testSpline2D.ControlPointCount); Assert.AreEqual(2, testSpline2D.Modes.Count); Assert.AreEqual(testSpline2D.ExpectedTimeCount(testSpline2D.ControlPointCount), testSpline2D.Times.Count); TestHelpers.CheckFloat2(a, testSpline2D.Get2DPointWorld(0f)); TestHelpers.CheckFloat2(a, testSpline2D.GetControlPoint(0, SplinePoint.Point)); TestHelpers.CheckFloat2(b, testSpline2D.Get2DPointWorld(1f)); TestHelpers.CheckFloat2(b, testSpline2D.GetControlPoint(1, SplinePoint.Point)); //insert point float2 c = new float2(-2f, 0f); testSpline2D.InsertControlPoint(0, c); Assert.AreEqual(3, testSpline2D.ControlPointCount); Assert.AreEqual(3, testSpline2D.Modes.Count); Assert.AreEqual(testSpline2D.ExpectedTimeCount(testSpline2D.ControlPointCount), testSpline2D.Times.Count); TestHelpers.CheckFloat2(c, testSpline2D.GetControlPoint(0, SplinePoint.Point)); TestHelpers.CheckFloat2(a, testSpline2D.GetControlPoint(1, SplinePoint.Point)); TestHelpers.CheckFloat2(b, testSpline2D.GetControlPoint(2, SplinePoint.Point)); }
public void InsertWithOne() { ISimpleTestSpline2D testSpline2D = PrepareSpline(); float2 a = float2.zero; testSpline2D.AddControlPoint(float2.zero); Assert.AreEqual(1, testSpline2D.ControlPointCount); Assert.AreEqual(1, testSpline2D.Modes.Count); Assert.AreEqual(testSpline2D.ExpectedTimeCount(testSpline2D.ControlPointCount), testSpline2D.Times.Count); TestHelpers.CheckFloat2(a, testSpline2D.Get2DPointWorld(0f)); TestHelpers.CheckFloat2(a, testSpline2D.GetControlPoint(0, SplinePoint.Point)); float2 b = new float2(10f, 0f); testSpline2D.InsertControlPoint(1000, b); TestHelpers.CheckFloat2(b, testSpline2D.Get2DPointWorld(1f)); TestHelpers.CheckFloat2(b, testSpline2D.GetControlPoint(1, SplinePoint.Point)); Assert.AreEqual(2, testSpline2D.ControlPointCount); Assert.AreEqual(2, testSpline2D.Modes.Count); Assert.AreEqual(testSpline2D.ExpectedTimeCount(testSpline2D.ControlPointCount), testSpline2D.Times.Count); }
public void ZigZagLength() { ISimpleTestSpline2D testSpline2D = PrepareSpline(); float2 a = new float2(0f, 0f); float2 b = new float2(10f, 10f); float2 c = new float2(0f, 20f); float2 d = new float2(20f, 30f); testSpline2D.AddControlPoint(a); testSpline2D.AddControlPoint(d); testSpline2D.InsertControlPoint(1, b); testSpline2D.InsertControlPoint(2, c); float minLength = math.distance(a, b) + math.distance(b, c) + math.distance(c, d); Assert.Greater(testSpline2D.Length(), minLength); }
public void InsertEmpty() { ISimpleTestSpline2D testSpline2D = PrepareSpline(); Assert.AreEqual(0, testSpline2D.ControlPointCount); Assert.AreEqual(0, testSpline2D.Modes.Count); Assert.AreEqual(testSpline2D.ExpectedTimeCount(testSpline2D.ControlPointCount), testSpline2D.Times.Count); float2 a = float2.zero; testSpline2D.InsertControlPoint(12, a); Assert.AreEqual(1, testSpline2D.ControlPointCount); Assert.AreEqual(1, testSpline2D.Modes.Count); Assert.AreEqual(testSpline2D.ExpectedTimeCount(testSpline2D.ControlPointCount), testSpline2D.Times.Count); TestHelpers.CheckFloat2(a, testSpline2D.Get2DPointWorld(0f)); TestHelpers.CheckFloat2(a, testSpline2D.GetControlPoint(0, SplinePoint.Point)); }
public void InsertSecondFirst() { ISimpleTestSpline2D testSpline2D = PrepareSpline(); float2 a = float2.zero; testSpline2D.AddControlPoint(a); Assert.AreEqual(1, testSpline2D.ControlPointCount); TestHelpers.CheckFloat2(a, testSpline2D.GetControlPoint(0, SplinePoint.Point), (float.Epsilon * 2f)); float2 b = new float2(4); testSpline2D.InsertControlPoint(0, b); Assert.AreEqual(2, testSpline2D.ControlPointCount); Assert.AreEqual(2, testSpline2D.Modes.Count); TestHelpers.CheckFloat2(b, testSpline2D.GetControlPoint(0, SplinePoint.Point), (float.Epsilon * 2f)); TestHelpers.CheckFloat2(a, testSpline2D.GetControlPoint(1, SplinePoint.Point), (float.Epsilon * 2f)); }
public void Translation() { ISimpleTestSpline2D testSpline2D = PrepareSpline(); float3 move = new float3(10f, 0f, 10f); ((MonoBehaviour)testSpline2D).transform.position = move; Assert.AreEqual(0, testSpline2D.ControlPointCount); Assert.AreEqual(0, testSpline2D.Modes.Count); Assert.AreEqual(1, testSpline2D.Times.Count); float2 a = float2.zero; testSpline2D.InsertControlPoint(12, a); Assert.AreEqual(1, testSpline2D.ControlPointCount); Assert.AreEqual(1, testSpline2D.Modes.Count); Assert.AreEqual(1, testSpline2D.Times.Count); TestHelpers.CheckFloat2(a, testSpline2D.Get2DPointLocal(0f)); TestHelpers.CheckFloat2(move.xy + a, testSpline2D.Get2DPointWorld(0f)); TestHelpers.CheckFloat2(a, testSpline2D.GetControlPoint(0, SplinePoint.Point)); }