コード例 #1
0
        public void PrintNonNormalizedKernelMap(string resamplerName, int srcSize, int destSize)
        {
            IResampler resampler = TestUtils.GetResampler(resamplerName);

            var kernelMap = ReferenceKernelMap.Calculate(resampler, destSize, srcSize, false);

            this.Output.WriteLine($"Actual KernelMap:\n{PrintKernelMap(kernelMap)}\n");
        }
コード例 #2
0
        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})");
                }
            }
        }
コード例 #3
0
 private static string PrintKernelMap(ReferenceKernelMap kernelMap)
 => PrintKernelMap(kernelMap, km => km.DestinationSize, (km, i) => km.GetKernel(i));