Beispiel #1
0
        public void DangerousGetPixelRowMemory_PixelDataIsCorrect <TPixel>(TestImageProvider <TPixel> provider)
            where TPixel : unmanaged, IPixel <TPixel>
        {
            provider.LimitAllocatorBufferCapacity().InPixelsSqrt(200);

            using Image <TPixel> image = provider.GetImage();

            for (int y = 0; y < image.Height; y++)
            {
                // Act:
                Memory <TPixel> rowMemoryFromImage = image.DangerousGetPixelRowMemory(y);
                Memory <TPixel> rowMemoryFromFrame = image.Frames.RootFrame.DangerousGetPixelRowMemory(y);
                Span <TPixel>   spanFromImage      = rowMemoryFromImage.Span;
                Span <TPixel>   spanFromFrame      = rowMemoryFromFrame.Span;

                Assert.Equal(spanFromFrame.Length, spanFromImage.Length);
                Assert.True(Unsafe.AreSame(ref spanFromFrame[0], ref spanFromImage[0]));

                // Assert:
                for (int x = 0; x < image.Width; x++)
                {
                    Assert.Equal(provider.GetExpectedBasicTestPatternPixelAt(x, y), spanFromImage[x]);
                }
            }
        }
Beispiel #2
0
        public void GetPixelRowMemory_PixelDataIsCorrect <TPixel>(TestImageProvider <TPixel> provider)
            where TPixel : unmanaged, IPixel <TPixel>
        {
            provider.LimitAllocatorBufferCapacity().InPixelsSqrt(200);

            using Image <TPixel> image = provider.GetImage();

            for (int y = 0; y < image.Height; y++)
            {
                // Act:
                Memory <TPixel> rowMemory = image.GetPixelRowMemory(y);
                Span <TPixel>   span      = rowMemory.Span;

                // Assert:
                for (int x = 0; x < image.Width; x++)
                {
                    Assert.Equal(provider.GetExpectedBasicTestPatternPixelAt(x, y), span[x]);
                }
            }
        }
Beispiel #3
0
            private static void VerifyMemoryGroupDataMatchesTestPattern <TPixel>(
                TestImageProvider <TPixel> provider,
                IMemoryGroup <TPixel> memoryGroup,
                Size size)
                where TPixel : unmanaged, IPixel <TPixel>
            {
                Assert.True(memoryGroup.IsValid);
                Assert.Equal(size.Width * size.Height, memoryGroup.TotalLength);
                Assert.True(memoryGroup.BufferLength % size.Width == 0);

                int cnt = 0;

                for (MemoryGroupIndex i = memoryGroup.MaxIndex(); i < memoryGroup.MaxIndex(); i += 1, cnt++)
                {
                    int y = cnt / size.Width;
                    int x = cnt % size.Width;

                    TPixel expected = provider.GetExpectedBasicTestPatternPixelAt(x, y);
                    TPixel actual   = memoryGroup.GetElementAt(i);
                    Assert.Equal(expected, actual);
                }
            }