public void Update() { ISimpleTestSpline2D testSpline2D = PrepareSpline(); float2 a = float2.zero; testSpline2D.AddControlPoint(float2.zero); float2 b = new float2(1f, 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)); //update 0 point position float2 a2 = new float2(-1f, -1f); testSpline2D.UpdateControlPointLocal(0, a2, SplinePoint.Point); TestHelpers.CheckFloat2(a2, testSpline2D.Get2DPointWorld(0f)); TestHelpers.CheckFloat2(a2, testSpline2D.GetControlPoint(0, SplinePoint.Point)); //update 1 point position float2 b2 = new float2(2f, 2f); testSpline2D.UpdateControlPointLocal(1, b2, SplinePoint.Point); TestHelpers.CheckFloat2(b2, testSpline2D.Get2DPointWorld(1f)); TestHelpers.CheckFloat2(b2, testSpline2D.GetControlPoint(1, SplinePoint.Point)); }
public void ZigZagLength2() { ISimpleTestSpline2D testSpline2D = PrepareSpline(); float2 a = new float2(0f, 0f); testSpline2D.AddControlPoint(a); float2 b = new float2(1f, 3f); testSpline2D.AddControlPoint(b); testSpline2D.UpdateControlPointLocal(0, new float2(1f, 0f), SplinePoint.Post); testSpline2D.UpdateControlPointLocal(1, new float2(0f, 3f), SplinePoint.Pre); float length = math.distance(a, b); Assert.Greater(testSpline2D.Length(), length); }
public void ZigZagLength2() { ISimpleTestSpline2D testSpline2D = PrepareSpline(); float2 a = new float2(0f, 0f); testSpline2D.AddControlPoint(a); float2 b = new float2(1f, 3f); testSpline2D.AddControlPoint(b); testSpline2D.UpdateControlPointLocal(0, new float2(1f, 0f), SplinePoint.Post); testSpline2D.UpdateControlPointLocal(1, new float2(0f, 3f), SplinePoint.Pre); float length = math.distance(a, b); float spline = testSpline2D.Length(); Assert.IsTrue(math.abs(length - spline) <= 0.00005f, $"Expected: {length}, but received: {spline}"); }
public void Update2() { ISimpleTestSpline2D testSpline2D = PrepareSpline(); float2 a = float2.zero; testSpline2D.AddControlPoint(float2.zero); float2 b = new float2(1f, 0f); testSpline2D.AddControlPoint(b); float2 c = new float2(2f, 0f); testSpline2D.AddControlPoint(c); Assert.AreEqual(3, testSpline2D.ControlPointCount); Assert.AreEqual(3, testSpline2D.Modes.Count); Assert.AreEqual(1, testSpline2D.Times.Count); TestHelpers.CheckFloat2(new float2(0.5f, 0f), testSpline2D.Get2DPointWorld(0f)); TestHelpers.CheckFloat2(a, testSpline2D.GetControlPoint(0, SplinePoint.Point)); TestHelpers.CheckFloat2(b, testSpline2D.Get2DPointWorld(0.5f)); TestHelpers.CheckFloat2(b, testSpline2D.GetControlPoint(1, SplinePoint.Point)); TestHelpers.CheckFloat2(new float2(1.5f, 0f), testSpline2D.Get2DPointWorld(1f)); TestHelpers.CheckFloat2(c, testSpline2D.GetControlPoint(2, SplinePoint.Point)); //update 0 point position testSpline2D.UpdateControlPointLocal(0, new float2(0.5f, 1f), SplinePoint.Point); TestHelpers.CheckFloat2(new float2(0.75f, 0.5f), testSpline2D.Get2DPointWorld(0f)); TestHelpers.CheckFloat2(new float2(0.5f, 1f), testSpline2D.GetControlPoint(0, SplinePoint.Point)); //update 1 point position float2 b2 = new float2(1f, 1f); testSpline2D.UpdateControlPointLocal(1, b2, SplinePoint.Point); TestHelpers.CheckFloat2(b2, testSpline2D.GetControlPoint(1, SplinePoint.Point)); //update 2 point position testSpline2D.UpdateControlPointLocal(2, new float2(2f, 1f), SplinePoint.Point); TestHelpers.CheckFloat2(new float2(1.5f, 1f), testSpline2D.Get2DPointWorld(1f)); TestHelpers.CheckFloat2(new float2(2f, 1f), testSpline2D.GetControlPoint(2, SplinePoint.Point)); }
public void Update3() { ISimpleTestSpline2D testSpline2D = PrepareSpline(); float2 a = float2.zero; testSpline2D.AddControlPoint(a); float2 b = new float2(1f, 0f); testSpline2D.AddControlPoint(b); float2 c = new float2(2f, 0f); testSpline2D.AddControlPoint(c); Assert.AreEqual(1f, testSpline2D.Length()); // update 1 point position float2 b2 = new float2(1f, 2f); testSpline2D.UpdateControlPointLocal(1, b2, SplinePoint.Point); Assert.GreaterOrEqual(testSpline2D.Length(), 1f); }