Exemple #1
0
        public void _1Scale_2Translate(Vector2 scale, Vector2 translate, Vector2 source, Vector2 expectedDest)
        {
            // These operations should be size-agnostic:
            var      size    = new Size(123, 321);
            TBuilder builder = this.CreateBuilder(size);

            this.AppendScale(builder, new SizeF(scale));
            this.AppendTranslation(builder, translate);

            Vector2 actualDest = this.Execute(builder, new Rectangle(Point.Empty, size), source);

            Assert.True(Comparer.Equals(expectedDest, actualDest));
        }
#pragma warning disable SA1300 // Element should begin with upper-case letter
        public void _1Scale_2Translate(Vector2 scale, Vector2 translate, Vector2 source, Vector2 expectedDest)
#pragma warning restore SA1300 // Element should begin with upper-case letter
        {
            // These operations should be size-agnostic:
            var      size    = new Size(123, 321);
            TBuilder builder = this.CreateBuilder();

            this.AppendScale(builder, new SizeF(scale));
            this.AppendTranslation(builder, translate);

            Vector2 actualDest = this.Execute(builder, new Rectangle(Point.Empty, size), source);

            Assert.True(Comparer.Equals(expectedDest, actualDest));
        }
        private void VerifyKernelMapContentIsCorrect(string resamplerName, int srcSize, int destSize)
        {
            IResampler resampler = TestUtils.GetResampler(resamplerName);

            var referenceMap = ReferenceKernelMap.Calculate(resampler, destSize, srcSize);
            var kernelMap    = ResizeKernelMap.Calculate(resampler, destSize, srcSize, Configuration.Default.MemoryAllocator);



#if DEBUG
            this.Output.WriteLine(kernelMap.Info);
            this.Output.WriteLine($"Expected KernelMap:\n{PrintKernelMap(referenceMap)}\n");
            this.Output.WriteLine($"Actual KernelMap:\n{PrintKernelMap(kernelMap)}\n");
#endif
            var comparer = new ApproximateFloatComparer(1e-6f);

            for (int i = 0; i < kernelMap.DestinationLength; i++)
            {
                ResizeKernel kernel = kernelMap.GetKernel(i);

                ReferenceKernel referenceKernel = referenceMap.GetKernel(i);

                Assert.True(
                    referenceKernel.Length == kernel.Length,
                    $"referenceKernel.Length != kernel.Length: {referenceKernel.Length} != {kernel.Length}");
                Assert.True(
                    referenceKernel.Left == kernel.StartIndex,
                    $"referenceKernel.Left != kernel.Left: {referenceKernel.Left} != {kernel.StartIndex}");
                float[]      expectedValues = referenceKernel.Values;
                Span <float> actualValues   = kernel.Values;

                Assert.Equal(expectedValues.Length, actualValues.Length);



                for (int x = 0; x < expectedValues.Length; x++)
                {
                    Assert.True(
                        comparer.Equals(expectedValues[x], actualValues[x]),
                        $"{expectedValues[x]} != {actualValues[x]} @ (Row:{i}, Col:{x})");
                }
            }
        }
Exemple #4
0
        internal static bool CompareBlocks(Span <float> a, Span <float> b, float tolerance, out float diff)
        {
            var  comparer = new ApproximateFloatComparer(tolerance);
            bool failed   = false;

            diff = 0;

            for (int i = 0; i < 64; i++)
            {
                float expected = a[i];
                float actual   = b[i];
                diff += Math.Abs(expected - actual);

                if (!comparer.Equals(expected, actual))
                {
                    failed = true;
                }
            }

            return(!failed);
        }
Exemple #5
0
        internal void CompareBlocks(Span <float> a, Span <float> b, float tolerance)
        {
            var    comparer        = new ApproximateFloatComparer(tolerance);
            double totalDifference = 0.0;

            bool failed = false;

            for (int i = 0; i < 64; i++)
            {
                float expected = a[i];
                float actual   = b[i];
                totalDifference += Math.Abs(expected - actual);

                if (!comparer.Equals(expected, actual))
                {
                    failed = true;
                    this.Output.WriteLine($"Difference too large at index {i}");
                }
            }

            this.Output.WriteLine("TOTAL DIFF: " + totalDifference);
            Assert.False(failed);
        }