Abacus.SinglePrecision.Vector2Tests.TestStaticFn_CatmullRom_ii C# (CSharp) Method

TestStaticFn_CatmullRom_ii() private method

private TestStaticFn_CatmullRom_ii ( ) : void
return void
        public void TestStaticFn_CatmullRom_ii ()
        {
            var a = new Vector2( -90, +30 );
            var b = new Vector2( -30, -30 );
            var c = new Vector2( +30, +30 );
            var d = new Vector2( +90, -30 );

            Single one = 1;

            Single u = 15;
            Single v = (Single) 165  / (Single)  8; // 20.5
            Single w = (Single) 45   / (Single)  2; // 20.625
            Single x = (Single) 1755 / (Single) 64; // 27.421875
            Single y = (Single) 15   / (Single)  2; // 14.5
            Single z = (Single) 705  / (Single) 64; // 11.015625

            Single a0 = 0;
            Single a1 = (one * 1) / 8;
            Single a2 = (one * 2) / 8;
            Single a3 = (one * 3) / 8;
            Single a4 = (one * 4) / 8;
            Single a5 = (one * 5) / 8;
            Single a6 = (one * 6) / 8;
            Single a7 = (one * 7) / 8;
            Single a8 = 1;

            Vector2 r0 = b;
            Vector2 r1 = new Vector2( -w, -x );
            Vector2 r2 = new Vector2( -u, -v );
            Vector2 r3 = new Vector2( -y, -z );
            Vector2 r4 = Vector2.Zero;
            Vector2 r5 = new Vector2(  y,  z );
            Vector2 r6 = new Vector2(  u,  v );
            Vector2 r7 = new Vector2(  w,  x );
            Vector2 r8 = c;

            var knownResults = new List<Tuple<Single, Vector2>>
            {
                new Tuple<Single, Vector2>( a0, r0 ),
                new Tuple<Single, Vector2>( a1, r1 ),
                new Tuple<Single, Vector2>( a2, r2 ),
                new Tuple<Single, Vector2>( a3, r3 ),
                new Tuple<Single, Vector2>( a4, r4 ),
                new Tuple<Single, Vector2>( a5, r5 ),
                new Tuple<Single, Vector2>( a6, r6 ),
                new Tuple<Single, Vector2>( a7, r7 ),
                new Tuple<Single, Vector2>( a8, r8 ),
            };

            for(Int32 idx = 0; idx < knownResults.Count; ++idx)
            {
                Vector2 result;
                Single amount = knownResults[idx].Item1;
                Vector2 expected = knownResults[idx].Item2;

                Vector2.CatmullRom (
                    ref a, ref b, ref c, ref d, ref amount, out result);

                AssertEqualWithinReason(result, expected);
            }
        }
Vector2Tests