Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        public void RemoveFromEndOutOfRangeUnder()
        {
            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.ExpectedControlPointCount(2), testSpline2D.ControlPoints.Count);
            Assert.AreEqual(testSpline2D.ExpectedTimeCount(testSpline2D.ControlPointCount), testSpline2D.Times.Count);
            Assert.AreEqual(0.5f, testSpline2D.Length());

            TestHelpers.CheckFloat2(a, testSpline2D.GetControlPoint(0, SplinePoint.Point));
            TestHelpers.CheckFloat2(b, testSpline2D.GetControlPoint(1, SplinePoint.Point));

            // Remove a point less than 0
            testSpline2D.RemoveControlPoint(-3);

            Assert.AreEqual(2, testSpline2D.ControlPointCount);
            Assert.AreEqual(2, testSpline2D.Modes.Count);
            Assert.AreEqual(testSpline2D.ExpectedControlPointCount(2), testSpline2D.ControlPoints.Count);
            Assert.AreEqual(testSpline2D.ExpectedTimeCount(testSpline2D.ControlPointCount), testSpline2D.Times.Count);
            Assert.AreEqual(0.5f, testSpline2D.Length());

            TestHelpers.CheckFloat2(a, testSpline2D.GetControlPoint(0, SplinePoint.Point));
            TestHelpers.CheckFloat2(b, testSpline2D.GetControlPoint(1, SplinePoint.Point));
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        public void PointCreation()
        {
            ISimpleTestSpline2D testSpline2D = PrepareSpline();

            float2 a = new float2(0f, 0f);

            testSpline2D.AddControlPoint(float2.zero);

            Assert.AreEqual(1, testSpline2D.ControlPointCount);
            Assert.AreEqual(1, testSpline2D.Modes.Count);
            Assert.AreEqual(1, testSpline2D.Times.Count);

            Assert.AreEqual(1, testSpline2D.ControlPoints.Count);
            TestHelpers.CheckFloat2(a, testSpline2D.GetControlPoint(0, SplinePoint.Point));

            float2 b = new float2(10f, 0f);

            testSpline2D.AddControlPoint(b);

            Assert.AreEqual(2, testSpline2D.ControlPointCount);
            Assert.AreEqual(2, testSpline2D.Modes.Count);
            Assert.AreEqual(1, testSpline2D.Times.Count);
            Assert.AreEqual(10f, testSpline2D.Length());

            Assert.AreEqual(4, testSpline2D.ControlPoints.Count);
            TestHelpers.CheckFloat2(a, testSpline2D.GetControlPoint(0, SplinePoint.Point));
            TestHelpers.CheckFloat2(new float2(1f, 0f), testSpline2D.GetControlPoint(0, SplinePoint.Post));
            TestHelpers.CheckFloat2(new float2(9f, 0f), testSpline2D.GetControlPoint(1, SplinePoint.Pre));
            TestHelpers.CheckFloat2(b, testSpline2D.GetControlPoint(1, SplinePoint.Point));
        }
Ejemplo n.º 6
0
        public void RemoveFromEnd3Points()
        {
            ISimpleTestSpline2D testSpline2D = PrepareSpline();

            float2 a = float2.zero;
            float2 b = new float2(1f, 0f);
            float2 c = new float2(10f, 0f);

            testSpline2D.AddControlPoint(a);
            testSpline2D.AddControlPoint(b);
            testSpline2D.AddControlPoint(c);

            Assert.AreEqual(3, testSpline2D.ControlPointCount);
            Assert.AreEqual(3, testSpline2D.Modes.Count);
            Assert.AreEqual(testSpline2D.ExpectedControlPointCount(3), testSpline2D.ControlPoints.Count);
            Assert.AreEqual(testSpline2D.ExpectedTimeCount(testSpline2D.ControlPointCount), testSpline2D.Times.Count);
            Assert.AreEqual(5f, testSpline2D.Length());

            TestHelpers.CheckFloat2(a, testSpline2D.GetControlPoint(0, SplinePoint.Point));
            TestHelpers.CheckFloat2(b, testSpline2D.GetControlPoint(1, SplinePoint.Point));
            TestHelpers.CheckFloat2(c, testSpline2D.GetControlPoint(2, SplinePoint.Point));

            //Remove a point
            testSpline2D.RemoveControlPoint(2);

            Assert.AreEqual(2, testSpline2D.ControlPointCount);
            Assert.AreEqual(2, testSpline2D.Modes.Count);
            Assert.AreEqual(testSpline2D.ExpectedControlPointCount(2), testSpline2D.ControlPoints.Count);
            Assert.AreEqual(testSpline2D.ExpectedTimeCount(testSpline2D.ControlPointCount), testSpline2D.Times.Count);
            Assert.AreEqual(0.5f, testSpline2D.Length());

            TestHelpers.CheckFloat2(a, testSpline2D.GetControlPoint(0, SplinePoint.Point));
            TestHelpers.CheckFloat2(b, testSpline2D.GetControlPoint(1, SplinePoint.Point));
        }
Ejemplo n.º 7
0
        public void RemoveFromOutOfRange()
        {
            ISimpleTestSpline2D testSpline2D = PrepareSpline();

            float2 a = float2.zero;

            testSpline2D.AddControlPoint(float2.zero);
            float2 b = c_xOne;

            testSpline2D.AddControlPoint(b);

            Assert.AreEqual(2, testSpline2D.ControlPointCount);
            Assert.AreEqual(2, testSpline2D.Modes.Count);
            Assert.AreEqual(testSpline2D.ExpectedControlPointCount(2), testSpline2D.ControlPoints.Count);
            Assert.AreEqual(1, testSpline2D.Times.Count);
            Assert.AreEqual(1f, testSpline2D.Length());

            TestHelpers.CheckFloat2(a, testSpline2D.GetControlPoint(0, SplinePoint.Point));
            TestHelpers.CheckFloat2(b, testSpline2D.GetControlPoint(1, SplinePoint.Point));

            //Remove a point
            testSpline2D.RemoveControlPoint(300);

            Assert.AreEqual(1, testSpline2D.ControlPointCount);
            Assert.AreEqual(1, testSpline2D.Modes.Count);
            Assert.AreEqual(testSpline2D.ExpectedControlPointCount(1), testSpline2D.ControlPoints.Count);
            Assert.AreEqual(1, testSpline2D.Times.Count);
            Assert.AreEqual(0f, testSpline2D.Length());

            TestHelpers.CheckFloat2(a, testSpline2D.GetControlPoint(0, SplinePoint.Point));
        }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
        public void Add2()
        {
            ISimpleTestSpline2D testSpline2D = PrepareSpline();

            float2 a = float2.zero;

            testSpline2D.AddControlPoint(a);
            float2 b = new float2(1f, 0f);

            testSpline2D.AddControlPoint(b);

            Assert.AreEqual(2, testSpline2D.ControlPointCount);
            Assert.AreEqual(testSpline2D.ExpectedControlPointCount(2), testSpline2D.ControlPoints.Count);
            Assert.AreEqual(2, testSpline2D.Modes.Count);
            Assert.AreEqual(testSpline2D.ExpectedTimeCount(testSpline2D.ControlPointCount), testSpline2D.Times.Count);
            Assert.AreEqual(0.5f, testSpline2D.Length());

            TestHelpers.CheckFloat2(a, testSpline2D.GetControlPoint(0, SplinePoint.Point));
            TestHelpers.CheckFloat2(b, testSpline2D.GetControlPoint(1, SplinePoint.Point));
        }
Ejemplo n.º 10
0
        public void Add3()
        {
            ISimpleTestSpline2D testSpline2D = PrepareSpline();

            float2 a = float2.zero;

            testSpline2D.AddControlPoint(float2.zero);
            float2 b = c_xOne;

            testSpline2D.AddControlPoint(b);
            float2 c = c_xTwo;

            testSpline2D.AddControlPoint(c);

            Assert.AreEqual(3, testSpline2D.ControlPointCount);
            Assert.AreEqual(testSpline2D.ExpectedControlPointCount(3), testSpline2D.ControlPoints.Count);
            Assert.AreEqual(3, testSpline2D.Modes.Count);
            Assert.AreEqual(testSpline2D.ExpectedTimeCount(testSpline2D.ControlPointCount), testSpline2D.Times.Count);
            Assert.AreEqual(2f, testSpline2D.Length());

            TestHelpers.CheckFloat2(a, testSpline2D.GetControlPoint(0, SplinePoint.Point));
            TestHelpers.CheckFloat2(b, testSpline2D.GetControlPoint(1, SplinePoint.Point));
            TestHelpers.CheckFloat2(c, testSpline2D.GetControlPoint(2, SplinePoint.Point));
        }
Ejemplo n.º 11
0
        public void Add1()
        {
            ISimpleTestSpline2D testSpline2D = PrepareSpline();

            float2 a = float2.zero;

            testSpline2D.AddControlPoint(a);

            Assert.AreEqual(1, testSpline2D.ControlPointCount);
            Assert.AreEqual(testSpline2D.ExpectedControlPointCount(1), testSpline2D.ControlPoints.Count);
            Assert.AreEqual(1, testSpline2D.Modes.Count);
            Assert.AreEqual(1, testSpline2D.Times.Count);
            Assert.AreEqual(0f, testSpline2D.Length());

            TestHelpers.CheckFloat2(a, testSpline2D.GetControlPoint(0, SplinePoint.Point));
        }
Ejemplo n.º 12
0
        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));
        }
Ejemplo n.º 13
0
        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));
        }
Ejemplo n.º 14
0
        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));
        }