Abacus.DoublePrecision.Vector3Tests.TestStaticFn_SmoothStep_iii C# (CSharp) Method

TestStaticFn_SmoothStep_iii() private method

private TestStaticFn_SmoothStep_iii ( ) : void
return void
        public void TestStaticFn_SmoothStep_iii ()
        {
            var a = new Vector3( -30, -30, -30 );
            var b = new Vector3( +30, +30, +30 );

            Double one = 1;

            Double i;
            Maths.FromFraction(1755, 64, out i); // 27.421875

            Double j;
            Maths.FromFraction( 165,  8, out j); // 20.625

            Double k;
            Maths.FromFraction( 705, 64, out k); // 11.015625

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

            Vector3 r0 = a;
            Vector3 r1 = new Vector3( -i, -i, -i );
            Vector3 r2 = new Vector3( -j, -j, -j );
            Vector3 r3 = new Vector3( -k, -k, -k );
            Vector3 r4 = Vector3.Zero;
            Vector3 r5 = new Vector3(  k,  k,  k );
            Vector3 r6 = new Vector3(  j,  j,  j );
            Vector3 r7 = new Vector3(  i,  i,  i );
            Vector3 r8 = b;

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

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

                Vector3.SmoothStep (
                    ref a, ref b, ref amount, out result);

                AssertEqualWithinReason(result, expected);
            }
        }
Vector3Tests