Browse Source

better LoadPixelData tests

pull/618/head
Anton Firszov 8 years ago
parent
commit
7583a48415
  1. 19
      tests/ImageSharp.Tests/Image/ImageTests.ImageLoadTestBase.cs
  2. 63
      tests/ImageSharp.Tests/Image/ImageTests.LoadPixelData.cs
  3. 1
      tests/ImageSharp.Tests/Image/ImageTests.Load_FromBytes.cs
  4. 16
      tests/ImageSharp.Tests/Image/ImageTests.Load_FromStream.cs

19
tests/ImageSharp.Tests/Image/ImageTests.ImageLoadTestBase.cs

@ -1,14 +1,17 @@
namespace SixLabors.ImageSharp.Tests
{
using System;
using System.IO;
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using System;
using System.IO;
using Moq;
using Moq;
using SixLabors.ImageSharp.Formats;
using SixLabors.ImageSharp.IO;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Formats;
using SixLabors.ImageSharp.IO;
using SixLabors.ImageSharp.PixelFormats;
namespace SixLabors.ImageSharp.Tests
{
public partial class ImageTests
{
public abstract class ImageLoadTestBase : IDisposable

63
tests/ImageSharp.Tests/Image/ImageTests.LoadPixelData.cs

@ -1,31 +1,60 @@
namespace SixLabors.ImageSharp.Tests
{
using SixLabors.ImageSharp.PixelFormats;
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using Xunit;
using System;
using SixLabors.ImageSharp.PixelFormats;
using Xunit;
namespace SixLabors.ImageSharp.Tests
{
public partial class ImageTests
{
public class LoadPixelData
{
[Fact]
public void LoadFromPixelData_Bytes()
[Theory]
[InlineData(false)]
[InlineData(true)]
public void FromPixels(bool useSpan)
{
var img = Image.LoadPixelData<Rgba32>(new byte[] {
0,0,0,255, // 0,0
255,255,255,255, // 0,1
255,255,255,255, // 1,0
0,0,0,255, // 1,1
}, 2, 2);
Rgba32[] data = { Rgba32.Black, Rgba32.White, Rgba32.White, Rgba32.Black, };
Assert.NotNull(img);
Assert.Equal(Rgba32.Black, img[0, 0]);
Assert.Equal(Rgba32.White, img[0, 1]);
using (Image<Rgba32> img = useSpan
? Image.LoadPixelData<Rgba32>(data.AsSpan(), 2, 2)
: Image.LoadPixelData<Rgba32>(data, 2, 2))
{
Assert.NotNull(img);
Assert.Equal(Rgba32.Black, img[0, 0]);
Assert.Equal(Rgba32.White, img[0, 1]);
Assert.Equal(Rgba32.White, img[1, 0]);
Assert.Equal(Rgba32.Black, img[1, 1]);
Assert.Equal(Rgba32.White, img[1, 0]);
Assert.Equal(Rgba32.Black, img[1, 1]);
}
}
[Theory]
[InlineData(false)]
[InlineData(true)]
public void FromBytes(bool useSpan)
{
byte[] data =
{
0, 0, 0, 255, // 0,0
255, 255, 255, 255, // 0,1
255, 255, 255, 255, // 1,0
0, 0, 0, 255, // 1,1
};
using (Image<Rgba32> img = useSpan
? Image.LoadPixelData<Rgba32>(data.AsSpan(), 2, 2)
: Image.LoadPixelData<Rgba32>(data, 2, 2))
{
Assert.NotNull(img);
Assert.Equal(Rgba32.Black, img[0, 0]);
Assert.Equal(Rgba32.White, img[0, 1]);
Assert.Equal(Rgba32.White, img[1, 0]);
Assert.Equal(Rgba32.Black, img[1, 1]);
}
}
}
}
}

1
tests/ImageSharp.Tests/Image/ImageTests.Load_FromBytes.cs

@ -1,5 +1,6 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using System;
using System.IO;

16
tests/ImageSharp.Tests/Image/ImageTests.Load_FromStream.cs

@ -86,22 +86,6 @@ namespace SixLabors.ImageSharp.Tests
this.localDecoder.Verify(x => x.Decode<Rgba32>(this.TopLevelConfiguration, stream));
}
[Fact]
public void LoadFromPixelData_Pixels()
{
var img = Image.LoadPixelData<Rgba32>(new Rgba32[] {
Rgba32.Black, Rgba32.White,
Rgba32.White, Rgba32.Black,
}, 2, 2);
Assert.NotNull(img);
Assert.Equal(Rgba32.Black, img[0, 0]);
Assert.Equal(Rgba32.White, img[0, 1]);
Assert.Equal(Rgba32.White, img[1, 0]);
Assert.Equal(Rgba32.Black, img[1, 1]);
}
// TODO: This should be a png decoder test!
[Fact]
public void LoadsImageWithoutThrowingCrcException()

Loading…
Cancel
Save