Browse Source

Merge pull request #1635 from SixLabors/bp/unittests

Small code quality improvements for the UnitTests
pull/1636/head
James Jackson-South 5 years ago
committed by GitHub
parent
commit
a21f8a486f
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      tests/ImageSharp.Tests/Formats/GeneralFormatTests.cs
  2. 6
      tests/ImageSharp.Tests/Formats/Gif/Sections/GifGraphicControlExtensionTests.cs
  3. 6
      tests/ImageSharp.Tests/Formats/Gif/Sections/GifImageDescriptorTests.cs
  4. 6
      tests/ImageSharp.Tests/Formats/Gif/Sections/GifLogicalScreenDescriptorTests.cs
  5. 12
      tests/ImageSharp.Tests/Formats/Jpg/JpegDecoderTests.cs
  6. 2
      tests/ImageSharp.Tests/Formats/Png/PngFilterTests.cs
  7. 37
      tests/ImageSharp.Tests/Formats/Png/PngMetadataTests.cs
  8. 2
      tests/ImageSharp.Tests/Formats/Png/ReferenceImplementations.cs
  9. 102
      tests/ImageSharp.Tests/Image/ImageFrameCollectionTests.Generic.cs
  10. 20
      tests/ImageSharp.Tests/Image/ImageTests.Identify.cs
  11. 15
      tests/ImageSharp.Tests/Image/ImageTests.Save.cs
  12. 16
      tests/ImageSharp.Tests/Image/ImageTests.SaveAsync.cs
  13. 38
      tests/ImageSharp.Tests/Memory/Allocators/BufferTestSuite.cs
  14. 23
      tests/ImageSharp.Tests/Metadata/Profiles/Exif/ExifProfileTests.cs
  15. 2
      tests/ImageSharp.Tests/Metadata/Profiles/Exif/ExifReaderTests.cs
  16. 2
      tests/ImageSharp.Tests/Metadata/Profiles/Exif/ExifTagDescriptionAttributeTests.cs
  17. 4
      tests/ImageSharp.Tests/Metadata/Profiles/Exif/ExifValueTests.cs
  18. 17
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataReader/IccDataReaderCurvesTests.cs
  19. 17
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataReader/IccDataReaderLutTests.cs
  20. 9
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataReader/IccDataReaderMatrixTests.cs
  21. 13
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataReader/IccDataReaderMultiProcessElementTests.cs
  22. 25
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataReader/IccDataReaderNonPrimitivesTests.cs
  23. 19
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataReader/IccDataReaderPrimitivesTests.cs
  24. 71
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataReader/IccDataReaderTagDataEntryTests.cs
  25. 5
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataReader/IccDataReaderTests.cs
  26. 17
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterCurvesTests.cs
  27. 17
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterLutTests.cs
  28. 17
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterLutTests1.cs
  29. 17
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterLutTests2.cs
  30. 17
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterMatrixTests.cs
  31. 13
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterMultiProcessElementTests.cs
  32. 23
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterNonPrimitivesTests.cs
  33. 23
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterPrimitivesTests.cs
  34. 71
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterTagDataEntryTests.cs
  35. 21
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterTests.cs
  36. 3
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/IccProfileTests.cs
  37. 3
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/IccReaderTests.cs
  38. 3
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/IccWriterTests.cs
  39. 7
      tests/ImageSharp.Tests/Metadata/Profiles/ICC/Various/IccProfileIdTests.cs
  40. 6
      tests/ImageSharp.Tests/Metadata/Profiles/IPTC/IptcProfileTests.cs
  41. 2
      tests/ImageSharp.Tests/PixelFormats/PixelOperations/PixelOperationsTests.cs
  42. 6
      tests/ImageSharp.Tests/Processing/BaseImageOperationsExtensionTest.cs
  43. 9
      tests/ImageSharp.Tests/Processing/Binarization/AdaptiveThresholdTests.cs
  44. 1
      tests/ImageSharp.Tests/Processing/Binarization/BinaryThresholdTest.cs
  45. 1
      tests/ImageSharp.Tests/Processing/Binarization/OrderedDitherFactoryTests.cs
  46. 5
      tests/ImageSharp.Tests/Processing/Convolution/BoxBlurTest.cs
  47. 1
      tests/ImageSharp.Tests/Processing/Convolution/DetectEdgesTest.cs
  48. 5
      tests/ImageSharp.Tests/Processing/Convolution/GaussianBlurTest.cs
  49. 3
      tests/ImageSharp.Tests/Processing/Convolution/GaussianSharpenTest.cs
  50. 2
      tests/ImageSharp.Tests/Processing/Convolution/Processors/LaplacianKernelFactoryTests.cs
  51. 3
      tests/ImageSharp.Tests/Processing/Dithering/DitherTest.cs
  52. 2
      tests/ImageSharp.Tests/Processing/Effects/BackgroundColorTest.cs
  53. 1
      tests/ImageSharp.Tests/Processing/Effects/OilPaintTest.cs
  54. 3
      tests/ImageSharp.Tests/Processing/Effects/PixelateTest.cs
  55. 1
      tests/ImageSharp.Tests/Processing/Filters/BlackWhiteTest.cs
  56. 3
      tests/ImageSharp.Tests/Processing/Filters/BrightnessTest.cs
  57. 1
      tests/ImageSharp.Tests/Processing/Filters/ColorBlindnessTest.cs
  58. 8
      tests/ImageSharp.Tests/Processing/Filters/ContrastTest.cs
  59. 6
      tests/ImageSharp.Tests/Processing/Filters/FilterTest.cs
  60. 1
      tests/ImageSharp.Tests/Processing/Filters/GrayscaleTest.cs
  61. 5
      tests/ImageSharp.Tests/Processing/Filters/HueTest.cs
  62. 3
      tests/ImageSharp.Tests/Processing/Filters/InvertTest.cs
  63. 1
      tests/ImageSharp.Tests/Processing/Filters/KodachromeTest.cs
  64. 3
      tests/ImageSharp.Tests/Processing/Filters/LightnessTest.cs
  65. 10
      tests/ImageSharp.Tests/Processing/Filters/LomographTest.cs
  66. 7
      tests/ImageSharp.Tests/Processing/Filters/OpacityTest.cs
  67. 1
      tests/ImageSharp.Tests/Processing/Filters/PolaroidTest.cs
  68. 5
      tests/ImageSharp.Tests/Processing/Filters/SaturateTest.cs
  69. 1
      tests/ImageSharp.Tests/Processing/Filters/SepiaTest.cs
  70. 2
      tests/ImageSharp.Tests/Processing/ImageOperationTests.cs
  71. 5
      tests/ImageSharp.Tests/Processing/ImageProcessingContextTests.cs
  72. 2
      tests/ImageSharp.Tests/Processing/IntegralImageTests.cs
  73. 21
      tests/ImageSharp.Tests/Processing/Normalization/HistogramEqualizationTests.cs
  74. 3
      tests/ImageSharp.Tests/Processing/Overlays/GlowTest.cs
  75. 2
      tests/ImageSharp.Tests/Processing/Overlays/VignetteTest.cs
  76. 1
      tests/ImageSharp.Tests/Processing/Processors/Binarization/BinaryDitherTests.cs
  77. 2
      tests/ImageSharp.Tests/Processing/Processors/Binarization/BinaryThresholdTest.cs
  78. 1
      tests/ImageSharp.Tests/Processing/Processors/Convolution/BokehBlurTest.cs
  79. 6
      tests/ImageSharp.Tests/Processing/Processors/Convolution/BoxBlurTest.cs
  80. 1
      tests/ImageSharp.Tests/Processing/Processors/Convolution/DetectEdgesTest.cs
  81. 6
      tests/ImageSharp.Tests/Processing/Processors/Convolution/GaussianBlurTest.cs
  82. 4
      tests/ImageSharp.Tests/Processing/Processors/Convolution/GaussianSharpenTest.cs
  83. 3
      tests/ImageSharp.Tests/Processing/Processors/Dithering/DitherTests.cs
  84. 1
      tests/ImageSharp.Tests/Processing/Processors/Effects/BackgroundColorTest.cs
  85. 1
      tests/ImageSharp.Tests/Processing/Processors/Effects/OilPaintTest.cs
  86. 1
      tests/ImageSharp.Tests/Processing/Processors/Effects/PixelShaderTest.cs
  87. 3
      tests/ImageSharp.Tests/Processing/Processors/Effects/PixelateTest.cs
  88. 11
      tests/ImageSharp.Tests/Processing/Processors/Filters/BlackWhiteTest.cs
  89. 9
      tests/ImageSharp.Tests/Processing/Processors/Filters/BrightnessTest.cs
  90. 11
      tests/ImageSharp.Tests/Processing/Processors/Filters/ColorBlindnessTest.cs
  91. 7
      tests/ImageSharp.Tests/Processing/Processors/Filters/ContrastTest.cs
  92. 5
      tests/ImageSharp.Tests/Processing/Processors/Filters/FilterTest.cs
  93. 5
      tests/ImageSharp.Tests/Processing/Processors/Filters/GrayscaleTest.cs
  94. 5
      tests/ImageSharp.Tests/Processing/Processors/Filters/HueTest.cs
  95. 11
      tests/ImageSharp.Tests/Processing/Processors/Filters/InvertTest.cs
  96. 9
      tests/ImageSharp.Tests/Processing/Processors/Filters/KodachromeTest.cs
  97. 9
      tests/ImageSharp.Tests/Processing/Processors/Filters/LightnessTest.cs
  98. 9
      tests/ImageSharp.Tests/Processing/Processors/Filters/LomographTest.cs
  99. 7
      tests/ImageSharp.Tests/Processing/Processors/Filters/OpacityTest.cs
  100. 9
      tests/ImageSharp.Tests/Processing/Processors/Filters/PolaroidTest.cs

2
tests/ImageSharp.Tests/Formats/GeneralFormatTests.cs

@ -176,7 +176,7 @@ namespace SixLabors.ImageSharp.Tests.Formats
using (var image2 = Image.Load<Rgba32>(serialized)) using (var image2 = Image.Load<Rgba32>(serialized))
{ {
image2.Save($"{path}/{file.FileName}"); image2.Save($"{path}{Path.DirectorySeparatorChar}{file.FileName}");
} }
} }
} }

6
tests/ImageSharp.Tests/Formats/Gif/Sections/GifGraphicControlExtensionTests.cs

@ -1,11 +1,11 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Formats.Gif; using SixLabors.ImageSharp.Formats.Gif;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Formats.Gif namespace SixLabors.ImageSharp.Tests.Formats.Gif.Sections
{ {
public class GifGraphicControlExtensionTests public class GifGraphicControlExtensionTests
{ {
@ -18,4 +18,4 @@ namespace SixLabors.ImageSharp.Tests.Formats.Gif
Assert.Equal(14, GifGraphicControlExtension.GetPackedValue(GifDisposalMethod.RestoreToPrevious, true, false)); Assert.Equal(14, GifGraphicControlExtension.GetPackedValue(GifDisposalMethod.RestoreToPrevious, true, false));
} }
} }
} }

6
tests/ImageSharp.Tests/Formats/Gif/Sections/GifImageDescriptorTests.cs

@ -1,11 +1,11 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Formats.Gif; using SixLabors.ImageSharp.Formats.Gif;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Formats.Gif namespace SixLabors.ImageSharp.Tests.Formats.Gif.Sections
{ {
public class GifImageDescriptorTests public class GifImageDescriptorTests
{ {
@ -21,4 +21,4 @@ namespace SixLabors.ImageSharp.Tests.Formats.Gif
Assert.Equal(232, GifImageDescriptor.GetPackedValue(true, true, true, 8)); Assert.Equal(232, GifImageDescriptor.GetPackedValue(true, true, true, 8));
} }
} }
} }

6
tests/ImageSharp.Tests/Formats/Gif/Sections/GifLogicalScreenDescriptorTests.cs

@ -1,11 +1,11 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Formats.Gif; using SixLabors.ImageSharp.Formats.Gif;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Formats.Gif namespace SixLabors.ImageSharp.Tests.Formats.Gif.Sections
{ {
public class GifLogicalScreenDescriptorTests public class GifLogicalScreenDescriptorTests
{ {
@ -20,4 +20,4 @@ namespace SixLabors.ImageSharp.Tests.Formats.Gif
Assert.Equal(55, GifLogicalScreenDescriptor.GetPackedValue(false, 3, false, 7)); Assert.Equal(55, GifLogicalScreenDescriptor.GetPackedValue(false, 3, false, 7));
} }
} }
} }

12
tests/ImageSharp.Tests/Formats/Jpg/JpegDecoderTests.cs

@ -117,7 +117,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
[Theory] [Theory]
[WithFile(TestImages.Jpeg.Baseline.Floorplan, PixelTypes.Rgba32)] [WithFile(TestImages.Jpeg.Baseline.Floorplan, PixelTypes.Rgba32)]
[WithFile(TestImages.Jpeg.Progressive.Festzug, PixelTypes.Rgba32)] [WithFile(TestImages.Jpeg.Progressive.Festzug, PixelTypes.Rgba32)]
public async Task DecodeAsnc_DegenerateMemoryRequest_ShouldTranslateTo_ImageFormatException<TPixel>(TestImageProvider<TPixel> provider) public async Task DecodeAsync_DegenerateMemoryRequest_ShouldTranslateTo_ImageFormatException<TPixel>(TestImageProvider<TPixel> provider)
where TPixel : unmanaged, IPixel<TPixel> where TPixel : unmanaged, IPixel<TPixel>
{ {
provider.LimitAllocatorBufferCapacity().InBytesSqrt(10); provider.LimitAllocatorBufferCapacity().InBytesSqrt(10);
@ -141,9 +141,9 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
TestEnvironment.InputImagesDirectoryFullPath, TestEnvironment.InputImagesDirectoryFullPath,
fileName); fileName);
const int NumberOfRuns = 5; const int numberOfRuns = 5;
for (int i = 0; i < NumberOfRuns; i++) for (int i = 0; i < numberOfRuns; i++)
{ {
var cts = new CancellationTokenSource(); var cts = new CancellationTokenSource();
if (cancellationDelayMs == 0) if (cancellationDelayMs == 0)
@ -157,16 +157,16 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg
try try
{ {
using var image = await Image.LoadAsync(hugeFile, cts.Token); using Image image = await Image.LoadAsync(hugeFile, cts.Token);
} }
catch (TaskCanceledException) catch (TaskCanceledException)
{ {
// Succesfully observed a cancellation // Successfully observed a cancellation
return; return;
} }
} }
throw new Exception($"No cancellation happened out of {NumberOfRuns} runs!"); throw new Exception($"No cancellation happened out of {numberOfRuns} runs!");
} }
[Theory(Skip = "Identify is too fast, doesn't work reliably.")] [Theory(Skip = "Identify is too fast, doesn't work reliably.")]

2
tests/ImageSharp.Tests/Formats/Png/PngFilterTests.cs

@ -7,7 +7,6 @@ using System;
using SixLabors.ImageSharp.Formats.Png; using SixLabors.ImageSharp.Formats.Png;
using SixLabors.ImageSharp.Formats.Png.Filters; using SixLabors.ImageSharp.Formats.Png.Filters;
using SixLabors.ImageSharp.Tests.Formats.Png.Utils;
using SixLabors.ImageSharp.Tests.TestUtilities; using SixLabors.ImageSharp.Tests.TestUtilities;
using Xunit; using Xunit;
using Xunit.Abstractions; using Xunit.Abstractions;
@ -142,7 +141,6 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png
HwIntrinsics.DisableSIMD); HwIntrinsics.DisableSIMD);
} }
[Fact] [Fact]
public void UpAvx2() public void UpAvx2()
{ {

37
tests/ImageSharp.Tests/Formats/Png/PngMetadataTests.cs

@ -90,12 +90,12 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png
using (Image<TPixel> image = provider.GetImage(new PngDecoder())) using (Image<TPixel> image = provider.GetImage(new PngDecoder()))
{ {
PngMetadata meta = image.Metadata.GetFormatMetadata(PngFormat.Instance); PngMetadata meta = image.Metadata.GetFormatMetadata(PngFormat.Instance);
Assert.DoesNotContain(meta.TextData, m => m.Value.Equals("leading space")); Assert.DoesNotContain(meta.TextData, m => m.Value is "leading space");
Assert.DoesNotContain(meta.TextData, m => m.Value.Equals("trailing space")); Assert.DoesNotContain(meta.TextData, m => m.Value is "trailing space");
Assert.DoesNotContain(meta.TextData, m => m.Value.Equals("space")); Assert.DoesNotContain(meta.TextData, m => m.Value is "space");
Assert.DoesNotContain(meta.TextData, m => m.Value.Equals("empty")); Assert.DoesNotContain(meta.TextData, m => m.Value is "empty");
Assert.DoesNotContain(meta.TextData, m => m.Value.Equals("invalid characters")); Assert.DoesNotContain(meta.TextData, m => m.Value is "invalid characters");
Assert.DoesNotContain(meta.TextData, m => m.Value.Equals("too large")); Assert.DoesNotContain(meta.TextData, m => m.Value is "too large");
} }
} }
@ -277,20 +277,17 @@ namespace SixLabors.ImageSharp.Tests.Formats.Png
private static void VerifyTextDataIsPresent(PngMetadata meta) private static void VerifyTextDataIsPresent(PngMetadata meta)
{ {
Assert.NotNull(meta); Assert.NotNull(meta);
Assert.Contains(meta.TextData, m => m.Keyword.Equals("Comment") && m.Value.Equals("comment")); Assert.Contains(meta.TextData, m => m.Keyword is "Comment" && m.Value is "comment");
Assert.Contains(meta.TextData, m => m.Keyword.Equals("Author") && m.Value.Equals("ImageSharp")); Assert.Contains(meta.TextData, m => m.Keyword is "Author" && m.Value is "ImageSharp");
Assert.Contains(meta.TextData, m => m.Keyword.Equals("Copyright") && m.Value.Equals("ImageSharp")); Assert.Contains(meta.TextData, m => m.Keyword is "Copyright" && m.Value is "ImageSharp");
Assert.Contains(meta.TextData, m => m.Keyword.Equals("Title") && m.Value.Equals("unittest")); Assert.Contains(meta.TextData, m => m.Keyword is "Title" && m.Value is "unittest");
Assert.Contains(meta.TextData, m => m.Keyword.Equals("Description") && m.Value.Equals("compressed-text")); Assert.Contains(meta.TextData, m => m.Keyword is "Description" && m.Value is "compressed-text");
Assert.Contains(meta.TextData, m => m.Keyword.Equals("International") && m.Value.Equals("'e', mu'tlheghvam, ghaH yu'") && Assert.Contains(meta.TextData, m => m.Keyword is "International" && m.Value is "'e', mu'tlheghvam, ghaH yu'" && m.LanguageTag is "x-klingon" && m.TranslatedKeyword is "warning");
m.LanguageTag.Equals("x-klingon") && m.TranslatedKeyword.Equals("warning")); Assert.Contains(meta.TextData, m => m.Keyword is "International2" && m.Value is "ИМАГЕШАРП" && m.LanguageTag is "rus");
Assert.Contains(meta.TextData, m => m.Keyword.Equals("International2") && m.Value.Equals("ИМАГЕШАРП") && m.LanguageTag.Equals("rus")); Assert.Contains(meta.TextData, m => m.Keyword is "CompressedInternational" && m.Value is "la plume de la mante" && m.LanguageTag is "fra" && m.TranslatedKeyword is "foobar");
Assert.Contains(meta.TextData, m => m.Keyword.Equals("CompressedInternational") && m.Value.Equals("la plume de la mante") && Assert.Contains(meta.TextData, m => m.Keyword is "CompressedInternational2" && m.Value is "這是一個考驗" && m.LanguageTag is "chinese");
m.LanguageTag.Equals("fra") && m.TranslatedKeyword.Equals("foobar")); Assert.Contains(meta.TextData, m => m.Keyword is "NoLang" && m.Value is "this text chunk is missing a language tag");
Assert.Contains(meta.TextData, m => m.Keyword.Equals("CompressedInternational2") && m.Value.Equals("這是一個考驗") && Assert.Contains(meta.TextData, m => m.Keyword is "NoTranslatedKeyword" && m.Value is "dieser chunk hat kein übersetztes Schlüßelwort");
m.LanguageTag.Equals("chinese"));
Assert.Contains(meta.TextData, m => m.Keyword.Equals("NoLang") && m.Value.Equals("this text chunk is missing a language tag"));
Assert.Contains(meta.TextData, m => m.Keyword.Equals("NoTranslatedKeyword") && m.Value.Equals("dieser chunk hat kein übersetztes Schlüßelwort"));
} }
} }
} }

2
tests/ImageSharp.Tests/Formats/Png/ReferenceImplementations.cs

@ -6,7 +6,7 @@ using System.Runtime.CompilerServices;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
// ReSharper disable InconsistentNaming // ReSharper disable InconsistentNaming
namespace SixLabors.ImageSharp.Tests.Formats.Png.Utils namespace SixLabors.ImageSharp.Tests.Formats.Png
{ {
/// <summary> /// <summary>
/// This class contains reference implementations to produce verification data for unit tests /// This class contains reference implementations to produce verification data for unit tests

102
tests/ImageSharp.Tests/Image/ImageFrameCollectionTests.Generic.cs

@ -28,7 +28,8 @@ namespace SixLabors.ImageSharp.Tests
ArgumentException ex = Assert.Throws<ArgumentException>( ArgumentException ex = Assert.Throws<ArgumentException>(
() => () =>
{ {
this.Collection.AddFrame(new ImageFrame<Rgba32>(Configuration.Default, 1, 1)); using var frame = new ImageFrame<Rgba32>(Configuration.Default, 1, 1);
using ImageFrame<Rgba32> addedFrame = this.Collection.AddFrame(frame);
}); });
Assert.StartsWith("Frame must have the same dimensions as the image.", ex.Message); Assert.StartsWith("Frame must have the same dimensions as the image.", ex.Message);
@ -40,7 +41,7 @@ namespace SixLabors.ImageSharp.Tests
ArgumentNullException ex = Assert.Throws<ArgumentNullException>( ArgumentNullException ex = Assert.Throws<ArgumentNullException>(
() => () =>
{ {
this.Collection.AddFrame((ImageFrame<Rgba32>)null); using ImageFrame<Rgba32> addedFrame = this.Collection.AddFrame((ImageFrame<Rgba32>)null);
}); });
Assert.StartsWith("Parameter \"frame\" must be not null.", ex.Message); Assert.StartsWith("Parameter \"frame\" must be not null.", ex.Message);
@ -54,7 +55,7 @@ namespace SixLabors.ImageSharp.Tests
ArgumentNullException ex = Assert.Throws<ArgumentNullException>( ArgumentNullException ex = Assert.Throws<ArgumentNullException>(
() => () =>
{ {
this.Collection.AddFrame(data); using ImageFrame<Rgba32> addedFrame = this.Collection.AddFrame(data);
}); });
Assert.StartsWith("Parameter \"source\" must be not null.", ex.Message); Assert.StartsWith("Parameter \"source\" must be not null.", ex.Message);
@ -66,7 +67,7 @@ namespace SixLabors.ImageSharp.Tests
ArgumentOutOfRangeException ex = Assert.Throws<ArgumentOutOfRangeException>( ArgumentOutOfRangeException ex = Assert.Throws<ArgumentOutOfRangeException>(
() => () =>
{ {
this.Collection.AddFrame(new Rgba32[0]); using ImageFrame<Rgba32> addedFrame = this.Collection.AddFrame(Array.Empty<Rgba32>());
}); });
Assert.StartsWith($"Parameter \"data\" ({typeof(int)}) must be greater than or equal to {100}, was {0}", ex.Message); Assert.StartsWith($"Parameter \"data\" ({typeof(int)}) must be greater than or equal to {100}, was {0}", ex.Message);
@ -78,7 +79,8 @@ namespace SixLabors.ImageSharp.Tests
ArgumentException ex = Assert.Throws<ArgumentException>( ArgumentException ex = Assert.Throws<ArgumentException>(
() => () =>
{ {
this.Collection.InsertFrame(1, new ImageFrame<Rgba32>(Configuration.Default, 1, 1)); using var frame = new ImageFrame<Rgba32>(Configuration.Default, 1, 1);
using ImageFrame<Rgba32> insertedFrame = this.Collection.InsertFrame(1, frame);
}); });
Assert.StartsWith("Frame must have the same dimensions as the image.", ex.Message); Assert.StartsWith("Frame must have the same dimensions as the image.", ex.Message);
@ -90,7 +92,7 @@ namespace SixLabors.ImageSharp.Tests
ArgumentNullException ex = Assert.Throws<ArgumentNullException>( ArgumentNullException ex = Assert.Throws<ArgumentNullException>(
() => () =>
{ {
this.Collection.InsertFrame(1, null); using ImageFrame<Rgba32> insertedFrame = this.Collection.InsertFrame(1, null);
}); });
Assert.StartsWith("Parameter \"frame\" must be not null.", ex.Message); Assert.StartsWith("Parameter \"frame\" must be not null.", ex.Message);
@ -102,9 +104,11 @@ namespace SixLabors.ImageSharp.Tests
ArgumentException ex = Assert.Throws<ArgumentException>( ArgumentException ex = Assert.Throws<ArgumentException>(
() => () =>
{ {
using var imageFrame1 = new ImageFrame<Rgba32>(Configuration.Default, 10, 10);
using var imageFrame2 = new ImageFrame<Rgba32>(Configuration.Default, 1, 1);
new ImageFrameCollection<Rgba32>( new ImageFrameCollection<Rgba32>(
this.Image, this.Image,
new[] { new ImageFrame<Rgba32>(Configuration.Default, 10, 10), new ImageFrame<Rgba32>(Configuration.Default, 1, 1) }); new[] { imageFrame1, imageFrame2 });
}); });
Assert.StartsWith("Frame must have the same dimensions as the image.", ex.Message); Assert.StartsWith("Frame must have the same dimensions as the image.", ex.Message);
@ -113,24 +117,24 @@ namespace SixLabors.ImageSharp.Tests
[Fact] [Fact]
public void RemoveAtFrame_ThrowIfRemovingLastFrame() public void RemoveAtFrame_ThrowIfRemovingLastFrame()
{ {
using var imageFrame = new ImageFrame<Rgba32>(Configuration.Default, 10, 10);
var collection = new ImageFrameCollection<Rgba32>( var collection = new ImageFrameCollection<Rgba32>(
this.Image, this.Image,
new[] { new ImageFrame<Rgba32>(Configuration.Default, 10, 10) }); new[] { imageFrame });
InvalidOperationException ex = Assert.Throws<InvalidOperationException>( InvalidOperationException ex = Assert.Throws<InvalidOperationException>(
() => () => collection.RemoveFrame(0));
{
collection.RemoveFrame(0);
});
Assert.Equal("Cannot remove last frame.", ex.Message); Assert.Equal("Cannot remove last frame.", ex.Message);
} }
[Fact] [Fact]
public void RemoveAtFrame_CanRemoveFrameZeroIfMultipleFramesExist() public void RemoveAtFrame_CanRemoveFrameZeroIfMultipleFramesExist()
{ {
using var imageFrame1 = new ImageFrame<Rgba32>(Configuration.Default, 10, 10);
using var imageFrame2 = new ImageFrame<Rgba32>(Configuration.Default, 10, 10);
var collection = new ImageFrameCollection<Rgba32>( var collection = new ImageFrameCollection<Rgba32>(
this.Image, this.Image,
new[] { new ImageFrame<Rgba32>(Configuration.Default, 10, 10), new ImageFrame<Rgba32>(Configuration.Default, 10, 10) }); new[] { imageFrame1, imageFrame2 });
collection.RemoveFrame(0); collection.RemoveFrame(0);
Assert.Equal(1, collection.Count); Assert.Equal(1, collection.Count);
@ -139,9 +143,11 @@ namespace SixLabors.ImageSharp.Tests
[Fact] [Fact]
public void RootFrameIsFrameAtIndexZero() public void RootFrameIsFrameAtIndexZero()
{ {
using var imageFrame1 = new ImageFrame<Rgba32>(Configuration.Default, 10, 10);
using var imageFrame2 = new ImageFrame<Rgba32>(Configuration.Default, 10, 10);
var collection = new ImageFrameCollection<Rgba32>( var collection = new ImageFrameCollection<Rgba32>(
this.Image, this.Image,
new[] { new ImageFrame<Rgba32>(Configuration.Default, 10, 10), new ImageFrame<Rgba32>(Configuration.Default, 10, 10) }); new[] { imageFrame1, imageFrame2 });
Assert.Equal(collection.RootFrame, collection[0]); Assert.Equal(collection.RootFrame, collection[0]);
} }
@ -149,9 +155,11 @@ namespace SixLabors.ImageSharp.Tests
[Fact] [Fact]
public void ConstructorPopulatesFrames() public void ConstructorPopulatesFrames()
{ {
using var imageFrame1 = new ImageFrame<Rgba32>(Configuration.Default, 10, 10);
using var imageFrame2 = new ImageFrame<Rgba32>(Configuration.Default, 10, 10);
var collection = new ImageFrameCollection<Rgba32>( var collection = new ImageFrameCollection<Rgba32>(
this.Image, this.Image,
new[] { new ImageFrame<Rgba32>(Configuration.Default, 10, 10), new ImageFrame<Rgba32>(Configuration.Default, 10, 10) }); new[] { imageFrame1, imageFrame2 });
Assert.Equal(2, collection.Count); Assert.Equal(2, collection.Count);
} }
@ -159,9 +167,11 @@ namespace SixLabors.ImageSharp.Tests
[Fact] [Fact]
public void DisposeClearsCollection() public void DisposeClearsCollection()
{ {
using var imageFrame1 = new ImageFrame<Rgba32>(Configuration.Default, 10, 10);
using var imageFrame2 = new ImageFrame<Rgba32>(Configuration.Default, 10, 10);
var collection = new ImageFrameCollection<Rgba32>( var collection = new ImageFrameCollection<Rgba32>(
this.Image, this.Image,
new[] { new ImageFrame<Rgba32>(Configuration.Default, 10, 10), new ImageFrame<Rgba32>(Configuration.Default, 10, 10) }); new[] { imageFrame1, imageFrame2 });
collection.Dispose(); collection.Dispose();
@ -171,9 +181,11 @@ namespace SixLabors.ImageSharp.Tests
[Fact] [Fact]
public void Dispose_DisposesAllInnerFrames() public void Dispose_DisposesAllInnerFrames()
{ {
using var imageFrame1 = new ImageFrame<Rgba32>(Configuration.Default, 10, 10);
using var imageFrame2 = new ImageFrame<Rgba32>(Configuration.Default, 10, 10);
var collection = new ImageFrameCollection<Rgba32>( var collection = new ImageFrameCollection<Rgba32>(
this.Image, this.Image,
new[] { new ImageFrame<Rgba32>(Configuration.Default, 10, 10), new ImageFrame<Rgba32>(Configuration.Default, 10, 10) }); new[] { imageFrame1, imageFrame2 });
IPixelSource<Rgba32>[] framesSnapShot = collection.OfType<IPixelSource<Rgba32>>().ToArray(); IPixelSource<Rgba32>[] framesSnapShot = collection.OfType<IPixelSource<Rgba32>>().ToArray();
collection.Dispose(); collection.Dispose();
@ -194,7 +206,8 @@ namespace SixLabors.ImageSharp.Tests
{ {
using (Image<TPixel> img = provider.GetImage()) using (Image<TPixel> img = provider.GetImage())
{ {
img.Frames.AddFrame(new ImageFrame<TPixel>(Configuration.Default, 10, 10)); // add a frame anyway using var imageFrame = new ImageFrame<Rgba32>(Configuration.Default, 10, 10);
using ImageFrame addedFrame = img.Frames.AddFrame(imageFrame); // add a frame anyway
using (Image<TPixel> cloned = img.Frames.CloneFrame(0)) using (Image<TPixel> cloned = img.Frames.CloneFrame(0))
{ {
Assert.Equal(2, img.Frames.Count); Assert.Equal(2, img.Frames.Count);
@ -215,7 +228,8 @@ namespace SixLabors.ImageSharp.Tests
Assert.True(img.TryGetSinglePixelSpan(out Span<TPixel> imgSpan)); Assert.True(img.TryGetSinglePixelSpan(out Span<TPixel> imgSpan));
TPixel[] sourcePixelData = imgSpan.ToArray(); TPixel[] sourcePixelData = imgSpan.ToArray();
img.Frames.AddFrame(new ImageFrame<TPixel>(Configuration.Default, 10, 10)); using var imageFrame = new ImageFrame<Rgba32>(Configuration.Default, 10, 10);
using ImageFrame addedFrame = img.Frames.AddFrame(imageFrame);
using (Image<TPixel> cloned = img.Frames.ExportFrame(0)) using (Image<TPixel> cloned = img.Frames.ExportFrame(0))
{ {
Assert.Equal(1, img.Frames.Count); Assert.Equal(1, img.Frames.Count);
@ -227,35 +241,37 @@ namespace SixLabors.ImageSharp.Tests
[Fact] [Fact]
public void CreateFrame_Default() public void CreateFrame_Default()
{ {
this.Image.Frames.CreateFrame(); using (this.Image.Frames.CreateFrame())
{
Assert.Equal(2, this.Image.Frames.Count); Assert.Equal(2, this.Image.Frames.Count);
this.Image.Frames[1].ComparePixelBufferTo(default(Rgba32)); this.Image.Frames[1].ComparePixelBufferTo(default(Rgba32));
}
} }
[Fact] [Fact]
public void CreateFrame_CustomFillColor() public void CreateFrame_CustomFillColor()
{ {
this.Image.Frames.CreateFrame(Color.HotPink); using (this.Image.Frames.CreateFrame(Color.HotPink))
{
Assert.Equal(2, this.Image.Frames.Count); Assert.Equal(2, this.Image.Frames.Count);
this.Image.Frames[1].ComparePixelBufferTo(Color.HotPink); this.Image.Frames[1].ComparePixelBufferTo(Color.HotPink);
}
} }
[Fact] [Fact]
public void AddFrameFromPixelData() public void AddFrameFromPixelData()
{ {
Assert.True(this.Image.Frames.RootFrame.TryGetSinglePixelSpan(out Span<Rgba32> imgSpan)); Assert.True(this.Image.Frames.RootFrame.TryGetSinglePixelSpan(out Span<Rgba32> imgSpan));
var pixelData = imgSpan.ToArray(); Rgba32[] pixelData = imgSpan.ToArray();
this.Image.Frames.AddFrame(pixelData); using ImageFrame<Rgba32> addedFrame = this.Image.Frames.AddFrame(pixelData);
Assert.Equal(2, this.Image.Frames.Count); Assert.Equal(2, this.Image.Frames.Count);
} }
[Fact] [Fact]
public void AddFrame_clones_sourceFrame() public void AddFrame_clones_sourceFrame()
{ {
var otherFrame = new ImageFrame<Rgba32>(Configuration.Default, 10, 10); using var otherFrame = new ImageFrame<Rgba32>(Configuration.Default, 10, 10);
ImageFrame<Rgba32> addedFrame = this.Image.Frames.AddFrame(otherFrame); using ImageFrame<Rgba32> addedFrame = this.Image.Frames.AddFrame(otherFrame);
Assert.True(otherFrame.TryGetSinglePixelSpan(out Span<Rgba32> otherFrameSpan)); Assert.True(otherFrame.TryGetSinglePixelSpan(out Span<Rgba32> otherFrameSpan));
addedFrame.ComparePixelBufferTo(otherFrameSpan); addedFrame.ComparePixelBufferTo(otherFrameSpan);
@ -265,8 +281,8 @@ namespace SixLabors.ImageSharp.Tests
[Fact] [Fact]
public void InsertFrame_clones_sourceFrame() public void InsertFrame_clones_sourceFrame()
{ {
var otherFrame = new ImageFrame<Rgba32>(Configuration.Default, 10, 10); using var otherFrame = new ImageFrame<Rgba32>(Configuration.Default, 10, 10);
ImageFrame<Rgba32> addedFrame = this.Image.Frames.InsertFrame(0, otherFrame); using ImageFrame<Rgba32> addedFrame = this.Image.Frames.InsertFrame(0, otherFrame);
Assert.True(otherFrame.TryGetSinglePixelSpan(out Span<Rgba32> otherFrameSpan)); Assert.True(otherFrame.TryGetSinglePixelSpan(out Span<Rgba32> otherFrameSpan));
addedFrame.ComparePixelBufferTo(otherFrameSpan); addedFrame.ComparePixelBufferTo(otherFrameSpan);
@ -276,51 +292,51 @@ namespace SixLabors.ImageSharp.Tests
[Fact] [Fact]
public void MoveFrame_LeavesFrameInCorrectLocation() public void MoveFrame_LeavesFrameInCorrectLocation()
{ {
for (var i = 0; i < 9; i++) for (int i = 0; i < 9; i++)
{ {
this.Image.Frames.CreateFrame(); this.Image.Frames.CreateFrame();
} }
var frame = this.Image.Frames[4]; ImageFrame<Rgba32> frame = this.Image.Frames[4];
this.Image.Frames.MoveFrame(4, 7); this.Image.Frames.MoveFrame(4, 7);
var newIndex = this.Image.Frames.IndexOf(frame); int newIndex = this.Image.Frames.IndexOf(frame);
Assert.Equal(7, newIndex); Assert.Equal(7, newIndex);
} }
[Fact] [Fact]
public void IndexOf_ReturnsCorrectIndex() public void IndexOf_ReturnsCorrectIndex()
{ {
for (var i = 0; i < 9; i++) for (int i = 0; i < 9; i++)
{ {
this.Image.Frames.CreateFrame(); this.Image.Frames.CreateFrame();
} }
var frame = this.Image.Frames[4]; ImageFrame<Rgba32> frame = this.Image.Frames[4];
var index = this.Image.Frames.IndexOf(frame); int index = this.Image.Frames.IndexOf(frame);
Assert.Equal(4, index); Assert.Equal(4, index);
} }
[Fact] [Fact]
public void Contains_TrueIfMember() public void Contains_TrueIfMember()
{ {
for (var i = 0; i < 9; i++) for (int i = 0; i < 9; i++)
{ {
this.Image.Frames.CreateFrame(); this.Image.Frames.CreateFrame();
} }
var frame = this.Image.Frames[4]; ImageFrame<Rgba32> frame = this.Image.Frames[4];
Assert.True(this.Image.Frames.Contains(frame)); Assert.True(this.Image.Frames.Contains(frame));
} }
[Fact] [Fact]
public void Contains_FalseIfNonMember() public void Contains_FalseIfNonMember()
{ {
for (var i = 0; i < 9; i++) for (int i = 0; i < 9; i++)
{ {
this.Image.Frames.CreateFrame(); this.Image.Frames.CreateFrame();
} }
var frame = new ImageFrame<Rgba32>(Configuration.Default, 10, 10); using var frame = new ImageFrame<Rgba32>(Configuration.Default, 10, 10);
Assert.False(this.Image.Frames.Contains(frame)); Assert.False(this.Image.Frames.Contains(frame));
} }
} }

20
tests/ImageSharp.Tests/Image/ImageTests.Identify.cs

@ -21,7 +21,7 @@ namespace SixLabors.ImageSharp.Tests
private static readonly Size ExpectedImageSize = new Size(108, 202); private static readonly Size ExpectedImageSize = new Size(108, 202);
private byte[] ActualImageBytes => TestFile.Create(TestImages.Bmp.F).Bytes; private static byte[] ActualImageBytes => TestFile.Create(TestImages.Bmp.F).Bytes;
private IImageInfo LocalImageInfo => this.localImageInfoMock.Object; private IImageInfo LocalImageInfo => this.localImageInfoMock.Object;
@ -33,7 +33,7 @@ namespace SixLabors.ImageSharp.Tests
[Fact] [Fact]
public void FromBytes_GlobalConfiguration() public void FromBytes_GlobalConfiguration()
{ {
IImageInfo info = Image.Identify(this.ActualImageBytes, out IImageFormat type); IImageInfo info = Image.Identify(ActualImageBytes, out IImageFormat type);
Assert.Equal(ExpectedImageSize, info.Size()); Assert.Equal(ExpectedImageSize, info.Size());
Assert.Equal(ExpectedGlobalFormat, type); Assert.Equal(ExpectedGlobalFormat, type);
@ -69,7 +69,7 @@ namespace SixLabors.ImageSharp.Tests
[Fact] [Fact]
public void FromStream_GlobalConfiguration() public void FromStream_GlobalConfiguration()
{ {
using (var stream = new MemoryStream(this.ActualImageBytes)) using (var stream = new MemoryStream(ActualImageBytes))
{ {
IImageInfo info = Image.Identify(stream, out IImageFormat type); IImageInfo info = Image.Identify(stream, out IImageFormat type);
@ -81,7 +81,7 @@ namespace SixLabors.ImageSharp.Tests
[Fact] [Fact]
public void FromStream_GlobalConfiguration_NoFormat() public void FromStream_GlobalConfiguration_NoFormat()
{ {
using (var stream = new MemoryStream(this.ActualImageBytes)) using (var stream = new MemoryStream(ActualImageBytes))
{ {
IImageInfo info = Image.Identify(stream); IImageInfo info = Image.Identify(stream);
@ -92,7 +92,7 @@ namespace SixLabors.ImageSharp.Tests
[Fact] [Fact]
public void FromNonSeekableStream_GlobalConfiguration() public void FromNonSeekableStream_GlobalConfiguration()
{ {
using var stream = new MemoryStream(this.ActualImageBytes); using var stream = new MemoryStream(ActualImageBytes);
using var nonSeekableStream = new NonSeekableStream(stream); using var nonSeekableStream = new NonSeekableStream(stream);
IImageInfo info = Image.Identify(nonSeekableStream, out IImageFormat type); IImageInfo info = Image.Identify(nonSeekableStream, out IImageFormat type);
@ -104,7 +104,7 @@ namespace SixLabors.ImageSharp.Tests
[Fact] [Fact]
public void FromNonSeekableStream_GlobalConfiguration_NoFormat() public void FromNonSeekableStream_GlobalConfiguration_NoFormat()
{ {
using var stream = new MemoryStream(this.ActualImageBytes); using var stream = new MemoryStream(ActualImageBytes);
using var nonSeekableStream = new NonSeekableStream(stream); using var nonSeekableStream = new NonSeekableStream(stream);
IImageInfo info = Image.Identify(nonSeekableStream); IImageInfo info = Image.Identify(nonSeekableStream);
@ -141,7 +141,7 @@ namespace SixLabors.ImageSharp.Tests
[Fact] [Fact]
public async Task FromStreamAsync_GlobalConfiguration_NoFormat() public async Task FromStreamAsync_GlobalConfiguration_NoFormat()
{ {
using (var stream = new MemoryStream(this.ActualImageBytes)) using (var stream = new MemoryStream(ActualImageBytes))
{ {
var asyncStream = new AsyncStreamWrapper(stream, () => false); var asyncStream = new AsyncStreamWrapper(stream, () => false);
IImageInfo info = await Image.IdentifyAsync(asyncStream); IImageInfo info = await Image.IdentifyAsync(asyncStream);
@ -153,7 +153,7 @@ namespace SixLabors.ImageSharp.Tests
[Fact] [Fact]
public async Task FromStreamAsync_GlobalConfiguration() public async Task FromStreamAsync_GlobalConfiguration()
{ {
using (var stream = new MemoryStream(this.ActualImageBytes)) using (var stream = new MemoryStream(ActualImageBytes))
{ {
var asyncStream = new AsyncStreamWrapper(stream, () => false); var asyncStream = new AsyncStreamWrapper(stream, () => false);
(IImageInfo ImageInfo, IImageFormat Format) res = await Image.IdentifyWithFormatAsync(asyncStream); (IImageInfo ImageInfo, IImageFormat Format) res = await Image.IdentifyWithFormatAsync(asyncStream);
@ -166,7 +166,7 @@ namespace SixLabors.ImageSharp.Tests
[Fact] [Fact]
public async Task FromNonSeekableStreamAsync_GlobalConfiguration_NoFormat() public async Task FromNonSeekableStreamAsync_GlobalConfiguration_NoFormat()
{ {
using var stream = new MemoryStream(this.ActualImageBytes); using var stream = new MemoryStream(ActualImageBytes);
using var nonSeekableStream = new NonSeekableStream(stream); using var nonSeekableStream = new NonSeekableStream(stream);
var asyncStream = new AsyncStreamWrapper(nonSeekableStream, () => false); var asyncStream = new AsyncStreamWrapper(nonSeekableStream, () => false);
@ -178,7 +178,7 @@ namespace SixLabors.ImageSharp.Tests
[Fact] [Fact]
public async Task FromNonSeekableStreamAsync_GlobalConfiguration() public async Task FromNonSeekableStreamAsync_GlobalConfiguration()
{ {
using var stream = new MemoryStream(this.ActualImageBytes); using var stream = new MemoryStream(ActualImageBytes);
using var nonSeekableStream = new NonSeekableStream(stream); using var nonSeekableStream = new NonSeekableStream(stream);
var asyncStream = new AsyncStreamWrapper(nonSeekableStream, () => false); var asyncStream = new AsyncStreamWrapper(nonSeekableStream, () => false);

15
tests/ImageSharp.Tests/Image/ImageTests.Save.cs

@ -3,9 +3,8 @@
using System; using System;
using System.IO; using System.IO;
using Moq; using Moq;
using SixLabors.ImageSharp.Formats;
using SixLabors.ImageSharp.Formats.Png; using SixLabors.ImageSharp.Formats.Png;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using Xunit; using Xunit;
@ -13,8 +12,6 @@ using Xunit;
// ReSharper disable InconsistentNaming // ReSharper disable InconsistentNaming
namespace SixLabors.ImageSharp.Tests namespace SixLabors.ImageSharp.Tests
{ {
using SixLabors.ImageSharp.Formats;
public partial class ImageTests public partial class ImageTests
{ {
public class Save public class Save
@ -23,7 +20,7 @@ namespace SixLabors.ImageSharp.Tests
public void DetectedEncoding() public void DetectedEncoding()
{ {
string dir = TestEnvironment.CreateOutputDirectory(nameof(ImageTests)); string dir = TestEnvironment.CreateOutputDirectory(nameof(ImageTests));
string file = System.IO.Path.Combine(dir, "DetectedEncoding.png"); string file = Path.Combine(dir, "DetectedEncoding.png");
using (var image = new Image<Rgba32>(10, 10)) using (var image = new Image<Rgba32>(10, 10))
{ {
@ -40,7 +37,7 @@ namespace SixLabors.ImageSharp.Tests
public void WhenExtensionIsUnknown_Throws() public void WhenExtensionIsUnknown_Throws()
{ {
string dir = TestEnvironment.CreateOutputDirectory(nameof(ImageTests)); string dir = TestEnvironment.CreateOutputDirectory(nameof(ImageTests));
string file = System.IO.Path.Combine(dir, "UnknownExtensionsEncoding_Throws.tmp"); string file = Path.Combine(dir, "UnknownExtensionsEncoding_Throws.tmp");
Assert.Throws<NotSupportedException>( Assert.Throws<NotSupportedException>(
() => () =>
@ -56,14 +53,14 @@ namespace SixLabors.ImageSharp.Tests
public void SetEncoding() public void SetEncoding()
{ {
string dir = TestEnvironment.CreateOutputDirectory(nameof(ImageTests)); string dir = TestEnvironment.CreateOutputDirectory(nameof(ImageTests));
string file = System.IO.Path.Combine(dir, "SetEncoding.dat"); string file = Path.Combine(dir, "SetEncoding.dat");
using (var image = new Image<Rgba32>(10, 10)) using (var image = new Image<Rgba32>(10, 10))
{ {
image.Save(file, new PngEncoder()); image.Save(file, new PngEncoder());
} }
using (Image.Load(file, out var mime)) using (Image.Load(file, out IImageFormat mime))
{ {
Assert.Equal("image/png", mime.DefaultMimeType); Assert.Equal("image/png", mime.DefaultMimeType);
} }
@ -72,7 +69,7 @@ namespace SixLabors.ImageSharp.Tests
[Fact] [Fact]
public void ThrowsWhenDisposed() public void ThrowsWhenDisposed()
{ {
var image = new Image<Rgba32>(5, 5); using var image = new Image<Rgba32>(5, 5);
image.Dispose(); image.Dispose();
IImageEncoder encoder = Mock.Of<IImageEncoder>(); IImageEncoder encoder = Mock.Of<IImageEncoder>();
using (var stream = new MemoryStream()) using (var stream = new MemoryStream())

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

@ -4,20 +4,18 @@
using System; using System;
using System.IO; using System.IO;
using System.Threading; using System.Threading;
using System.Threading.Tasks;
using Moq; using Moq;
using SixLabors.ImageSharp.Formats.Bmp; using SixLabors.ImageSharp.Advanced;
using SixLabors.ImageSharp.Formats;
using SixLabors.ImageSharp.Formats.Png; using SixLabors.ImageSharp.Formats.Png;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Tests.TestUtilities;
using Xunit; using Xunit;
// ReSharper disable InconsistentNaming // ReSharper disable InconsistentNaming
namespace SixLabors.ImageSharp.Tests namespace SixLabors.ImageSharp.Tests
{ {
using System.Threading.Tasks;
using SixLabors.ImageSharp.Advanced;
using SixLabors.ImageSharp.Formats;
using SixLabors.ImageSharp.Tests.TestUtilities;
public partial class ImageTests public partial class ImageTests
{ {
public class SaveAsync public class SaveAsync
@ -43,7 +41,7 @@ namespace SixLabors.ImageSharp.Tests
public async Task WhenExtensionIsUnknown_Throws() public async Task WhenExtensionIsUnknown_Throws()
{ {
string dir = TestEnvironment.CreateOutputDirectory(nameof(ImageTests)); string dir = TestEnvironment.CreateOutputDirectory(nameof(ImageTests));
string file = System.IO.Path.Combine(dir, "UnknownExtensionsEncoding_Throws.tmp"); string file = Path.Combine(dir, "UnknownExtensionsEncoding_Throws.tmp");
await Assert.ThrowsAsync<NotSupportedException>( await Assert.ThrowsAsync<NotSupportedException>(
async () => async () =>
@ -59,14 +57,14 @@ namespace SixLabors.ImageSharp.Tests
public async Task SetEncoding() public async Task SetEncoding()
{ {
string dir = TestEnvironment.CreateOutputDirectory(nameof(ImageTests)); string dir = TestEnvironment.CreateOutputDirectory(nameof(ImageTests));
string file = System.IO.Path.Combine(dir, "SetEncoding.dat"); string file = Path.Combine(dir, "SetEncoding.dat");
using (var image = new Image<Rgba32>(10, 10)) using (var image = new Image<Rgba32>(10, 10))
{ {
await image.SaveAsync(file, new PngEncoder()); await image.SaveAsync(file, new PngEncoder());
} }
using (Image.Load(file, out var mime)) using (Image.Load(file, out IImageFormat mime))
{ {
Assert.Equal("image/png", mime.DefaultMimeType); Assert.Equal("image/png", mime.DefaultMimeType);
} }

38
tests/ImageSharp.Tests/Memory/Allocators/BufferTestSuite.cs

@ -60,24 +60,24 @@ namespace SixLabors.ImageSharp.Tests.Memory.Allocators
} }
} }
public static readonly TheoryData<int> LenthValues = new TheoryData<int> { 0, 1, 7, 1023, 1024 }; public static readonly TheoryData<int> LengthValues = new TheoryData<int> { 0, 1, 7, 1023, 1024 };
[Theory] [Theory]
[MemberData(nameof(LenthValues))] [MemberData(nameof(LengthValues))]
public void HasCorrectLength_byte(int desiredLength) public void HasCorrectLength_byte(int desiredLength)
{ {
this.TestHasCorrectLength<byte>(desiredLength); this.TestHasCorrectLength<byte>(desiredLength);
} }
[Theory] [Theory]
[MemberData(nameof(LenthValues))] [MemberData(nameof(LengthValues))]
public void HasCorrectLength_float(int desiredLength) public void HasCorrectLength_float(int desiredLength)
{ {
this.TestHasCorrectLength<float>(desiredLength); this.TestHasCorrectLength<float>(desiredLength);
} }
[Theory] [Theory]
[MemberData(nameof(LenthValues))] [MemberData(nameof(LengthValues))]
public void HasCorrectLength_CustomStruct(int desiredLength) public void HasCorrectLength_CustomStruct(int desiredLength)
{ {
this.TestHasCorrectLength<CustomStruct>(desiredLength); this.TestHasCorrectLength<CustomStruct>(desiredLength);
@ -93,7 +93,7 @@ namespace SixLabors.ImageSharp.Tests.Memory.Allocators
} }
[Theory] [Theory]
[MemberData(nameof(LenthValues))] [MemberData(nameof(LengthValues))]
public void CanAllocateCleanBuffer_byte(int desiredLength) public void CanAllocateCleanBuffer_byte(int desiredLength)
{ {
this.TestCanAllocateCleanBuffer<byte>(desiredLength, false); this.TestCanAllocateCleanBuffer<byte>(desiredLength, false);
@ -101,14 +101,14 @@ namespace SixLabors.ImageSharp.Tests.Memory.Allocators
} }
[Theory] [Theory]
[MemberData(nameof(LenthValues))] [MemberData(nameof(LengthValues))]
public void CanAllocateCleanBuffer_double(int desiredLength) public void CanAllocateCleanBuffer_double(int desiredLength)
{ {
this.TestCanAllocateCleanBuffer<double>(desiredLength); this.TestCanAllocateCleanBuffer<double>(desiredLength);
} }
[Theory] [Theory]
[MemberData(nameof(LenthValues))] [MemberData(nameof(LengthValues))]
public void CanAllocateCleanBuffer_CustomStruct(int desiredLength) public void CanAllocateCleanBuffer_CustomStruct(int desiredLength)
{ {
this.TestCanAllocateCleanBuffer<CustomStruct>(desiredLength); this.TestCanAllocateCleanBuffer<CustomStruct>(desiredLength);
@ -145,14 +145,14 @@ namespace SixLabors.ImageSharp.Tests.Memory.Allocators
} }
[Theory] [Theory]
[MemberData(nameof(LenthValues))] [MemberData(nameof(LengthValues))]
public void SpanPropertyIsAlwaysTheSame_int(int desiredLength) public void SpanPropertyIsAlwaysTheSame_int(int desiredLength)
{ {
this.TestSpanPropertyIsAlwaysTheSame<int>(desiredLength); this.TestSpanPropertyIsAlwaysTheSame<int>(desiredLength);
} }
[Theory] [Theory]
[MemberData(nameof(LenthValues))] [MemberData(nameof(LengthValues))]
public void SpanPropertyIsAlwaysTheSame_byte(int desiredLength) public void SpanPropertyIsAlwaysTheSame_byte(int desiredLength)
{ {
this.TestSpanPropertyIsAlwaysTheSame<byte>(desiredLength, false); this.TestSpanPropertyIsAlwaysTheSame<byte>(desiredLength, false);
@ -174,18 +174,18 @@ namespace SixLabors.ImageSharp.Tests.Memory.Allocators
} }
[Theory] [Theory]
[MemberData(nameof(LenthValues))] [MemberData(nameof(LengthValues))]
public void WriteAndReadElements_float(int desiredLength) public void WriteAndReadElements_float(int desiredLength)
{ {
this.TestWriteAndReadElements<float>(desiredLength, x => x * 1.2f); this.TestWriteAndReadElements(desiredLength, x => x * 1.2f);
} }
[Theory] [Theory]
[MemberData(nameof(LenthValues))] [MemberData(nameof(LengthValues))]
public void WriteAndReadElements_byte(int desiredLength) public void WriteAndReadElements_byte(int desiredLength)
{ {
this.TestWriteAndReadElements<byte>(desiredLength, x => (byte)(x + 1), false); this.TestWriteAndReadElements(desiredLength, x => (byte)(x + 1), false);
this.TestWriteAndReadElements<byte>(desiredLength, x => (byte)(x + 1), true); this.TestWriteAndReadElements(desiredLength, x => (byte)(x + 1), true);
} }
private void TestWriteAndReadElements<T>(int desiredLength, Func<int, T> getExpectedValue, bool testManagedByteBuffer = false) private void TestWriteAndReadElements<T>(int desiredLength, Func<int, T> getExpectedValue, bool testManagedByteBuffer = false)
@ -193,7 +193,7 @@ namespace SixLabors.ImageSharp.Tests.Memory.Allocators
{ {
using (IMemoryOwner<T> buffer = this.Allocate<T>(desiredLength, AllocationOptions.None, testManagedByteBuffer)) using (IMemoryOwner<T> buffer = this.Allocate<T>(desiredLength, AllocationOptions.None, testManagedByteBuffer))
{ {
T[] expectedVals = new T[buffer.Length()]; var expectedVals = new T[buffer.Length()];
for (int i = 0; i < buffer.Length(); i++) for (int i = 0; i < buffer.Length(); i++)
{ {
@ -211,7 +211,7 @@ namespace SixLabors.ImageSharp.Tests.Memory.Allocators
} }
[Theory] [Theory]
[MemberData(nameof(LenthValues))] [MemberData(nameof(LengthValues))]
public void IndexingSpan_WhenOutOfRange_Throws_byte(int desiredLength) public void IndexingSpan_WhenOutOfRange_Throws_byte(int desiredLength)
{ {
this.TestIndexOutOfRangeShouldThrow<byte>(desiredLength, false); this.TestIndexOutOfRangeShouldThrow<byte>(desiredLength, false);
@ -219,14 +219,14 @@ namespace SixLabors.ImageSharp.Tests.Memory.Allocators
} }
[Theory] [Theory]
[MemberData(nameof(LenthValues))] [MemberData(nameof(LengthValues))]
public void IndexingSpan_WhenOutOfRange_Throws_long(int desiredLength) public void IndexingSpan_WhenOutOfRange_Throws_long(int desiredLength)
{ {
this.TestIndexOutOfRangeShouldThrow<long>(desiredLength); this.TestIndexOutOfRangeShouldThrow<long>(desiredLength);
} }
[Theory] [Theory]
[MemberData(nameof(LenthValues))] [MemberData(nameof(LengthValues))]
public void IndexingSpan_WhenOutOfRange_Throws_CustomStruct(int desiredLength) public void IndexingSpan_WhenOutOfRange_Throws_CustomStruct(int desiredLength)
{ {
this.TestIndexOutOfRangeShouldThrow<CustomStruct>(desiredLength); this.TestIndexOutOfRangeShouldThrow<CustomStruct>(desiredLength);
@ -316,4 +316,4 @@ namespace SixLabors.ImageSharp.Tests.Memory.Allocators
} }
} }
} }
} }

23
tests/ImageSharp.Tests/Metadata/Profiles/Exif/ExifProfileTests.cs

@ -12,7 +12,7 @@ using SixLabors.ImageSharp.PixelFormats;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.Exif
{ {
[Trait("Profile", "Exif")] [Trait("Profile", "Exif")]
public class ExifProfileTests public class ExifProfileTests
@ -63,6 +63,7 @@ namespace SixLabors.ImageSharp.Tests
Assert.NotNull(value); Assert.NotNull(value);
Assert.Equal(expected, value.Value); Assert.Equal(expected, value.Value);
image.Dispose();
} }
[Fact] [Fact]
@ -157,6 +158,8 @@ namespace SixLabors.ImageSharp.Tests
IExifValue<Rational> value2 = image.Metadata.ExifProfile.GetValue(ExifTag.FlashEnergy); IExifValue<Rational> value2 = image.Metadata.ExifProfile.GetValue(ExifTag.FlashEnergy);
Assert.NotNull(value2); Assert.NotNull(value2);
Assert.Equal(new Rational(double.PositiveInfinity), value2.Value); Assert.Equal(new Rational(double.PositiveInfinity), value2.Value);
image.Dispose();
} }
[Theory] [Theory]
@ -231,6 +234,8 @@ namespace SixLabors.ImageSharp.Tests
latitude = image.Metadata.ExifProfile.GetValue(ExifTag.GPSLatitude); latitude = image.Metadata.ExifProfile.GetValue(ExifTag.GPSLatitude);
Assert.Equal(expectedLatitude, latitude.Value); Assert.Equal(expectedLatitude, latitude.Value);
image.Dispose();
} }
[Theory] [Theory]
@ -252,13 +257,15 @@ namespace SixLabors.ImageSharp.Tests
{ {
Assert.True(ExifTags.GetPart(exifProfileValue.Tag) == ExifParts.ExifTags); Assert.True(ExifTags.GetPart(exifProfileValue.Tag) == ExifParts.ExifTags);
} }
image.Dispose();
} }
[Fact] [Fact]
public void RemoveEntry_Works() public void RemoveEntry_Works()
{ {
// Arrange // Arrange
Image<Rgba32> image = TestFile.Create(TestImages.Jpeg.Baseline.Floorplan).CreateRgba32Image(); using Image<Rgba32> image = TestFile.Create(TestImages.Jpeg.Baseline.Floorplan).CreateRgba32Image();
int profileCount = image.Metadata.ExifProfile.Values.Count; int profileCount = image.Metadata.ExifProfile.Values.Count;
// Assert // Assert
@ -311,7 +318,7 @@ namespace SixLabors.ImageSharp.Tests
TestProfile(profile); TestProfile(profile);
Image<Rgba32> thumbnail = profile.CreateThumbnail<Rgba32>(); using Image<Rgba32> thumbnail = profile.CreateThumbnail<Rgba32>();
Assert.NotNull(thumbnail); Assert.NotNull(thumbnail);
Assert.Equal(256, thumbnail.Width); Assert.Equal(256, thumbnail.Width);
Assert.Equal(170, thumbnail.Height); Assert.Equal(170, thumbnail.Height);
@ -337,7 +344,7 @@ namespace SixLabors.ImageSharp.Tests
image.Metadata.ExifProfile = expectedProfile; image.Metadata.ExifProfile = expectedProfile;
// Act // Act
Image<Rgba32> reloadedImage = WriteAndRead(image, TestImageWriteFormat.Jpeg); using Image<Rgba32> reloadedImage = WriteAndRead(image, TestImageWriteFormat.Jpeg);
// Assert // Assert
ExifProfile actualProfile = reloadedImage.Metadata.ExifProfile; ExifProfile actualProfile = reloadedImage.Metadata.ExifProfile;
@ -361,7 +368,7 @@ namespace SixLabors.ImageSharp.Tests
{ {
// This image contains an 802 byte EXIF profile // This image contains an 802 byte EXIF profile
// It has a tag with an index offset of 18,481,152 bytes (overrunning the data) // It has a tag with an index offset of 18,481,152 bytes (overrunning the data)
Image<Rgba32> image = TestFile.Create(TestImages.Jpeg.Progressive.Bad.ExifUndefType).CreateRgba32Image(); using Image<Rgba32> image = TestFile.Create(TestImages.Jpeg.Progressive.Bad.ExifUndefType).CreateRgba32Image();
Assert.NotNull(image); Assert.NotNull(image);
ExifProfile profile = image.Metadata.ExifProfile; ExifProfile profile = image.Metadata.ExifProfile;
@ -381,7 +388,7 @@ namespace SixLabors.ImageSharp.Tests
public void TestArrayValueWithUnspecifiedSize() public void TestArrayValueWithUnspecifiedSize()
{ {
// This images contains array in the exif profile that has zero components. // This images contains array in the exif profile that has zero components.
Image<Rgba32> image = TestFile.Create(TestImages.Jpeg.Issues.InvalidCast520).CreateRgba32Image(); using Image<Rgba32> image = TestFile.Create(TestImages.Jpeg.Issues.InvalidCast520).CreateRgba32Image();
ExifProfile profile = image.Metadata.ExifProfile; ExifProfile profile = image.Metadata.ExifProfile;
Assert.NotNull(profile); Assert.NotNull(profile);
@ -409,7 +416,7 @@ namespace SixLabors.ImageSharp.Tests
image.Metadata.ExifProfile = CreateExifProfile(); image.Metadata.ExifProfile = CreateExifProfile();
// Act // Act
Image<Rgba32> reloadedImage = WriteAndRead(image, imageFormat); using Image<Rgba32> reloadedImage = WriteAndRead(image, imageFormat);
// Assert // Assert
ExifProfile actual = reloadedImage.Metadata.ExifProfile; ExifProfile actual = reloadedImage.Metadata.ExifProfile;
@ -460,7 +467,7 @@ namespace SixLabors.ImageSharp.Tests
internal static ExifProfile GetExifProfile() internal static ExifProfile GetExifProfile()
{ {
Image<Rgba32> image = TestFile.Create(TestImages.Jpeg.Baseline.Floorplan).CreateRgba32Image(); using Image<Rgba32> image = TestFile.Create(TestImages.Jpeg.Baseline.Floorplan).CreateRgba32Image();
ExifProfile profile = image.Metadata.ExifProfile; ExifProfile profile = image.Metadata.ExifProfile;
Assert.NotNull(profile); Assert.NotNull(profile);

2
tests/ImageSharp.Tests/Metadata/Profiles/Exif/ExifReaderTests.cs

@ -6,7 +6,7 @@ using System.Collections.Generic;
using SixLabors.ImageSharp.Metadata.Profiles.Exif; using SixLabors.ImageSharp.Metadata.Profiles.Exif;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.Exif
{ {
[Trait("Profile", "Exif")] [Trait("Profile", "Exif")]
public class ExifReaderTests public class ExifReaderTests

2
tests/ImageSharp.Tests/Metadata/Profiles/Exif/ExifTagDescriptionAttributeTests.cs

@ -4,7 +4,7 @@
using SixLabors.ImageSharp.Metadata.Profiles.Exif; using SixLabors.ImageSharp.Metadata.Profiles.Exif;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.Exif
{ {
[Trait("Profile", "Exif")] [Trait("Profile", "Exif")]
public class ExifTagDescriptionAttributeTests public class ExifTagDescriptionAttributeTests

4
tests/ImageSharp.Tests/Metadata/Profiles/Exif/ExifValueTests.cs

@ -5,12 +5,12 @@ using SixLabors.ImageSharp.Metadata.Profiles.Exif;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.Exif
{ {
[Trait("Profile", "Exif")] [Trait("Profile", "Exif")]
public class ExifValueTests public class ExifValueTests
{ {
private ExifProfile profile; private readonly ExifProfile profile;
public ExifValueTests() public ExifValueTests()
{ {

17
tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataReader/IccDataReaderCurvesTests.cs

@ -4,15 +4,16 @@
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.ICC.DataReader
{ {
[Trait("Profile", "Icc")]
public class IccDataReaderCurvesTests public class IccDataReaderCurvesTests
{ {
[Theory] [Theory]
[MemberData(nameof(IccTestDataCurves.OneDimensionalCurveTestData), MemberType = typeof(IccTestDataCurves))] [MemberData(nameof(IccTestDataCurves.OneDimensionalCurveTestData), MemberType = typeof(IccTestDataCurves))]
internal void ReadOneDimensionalCurve(byte[] data, IccOneDimensionalCurve expected) internal void ReadOneDimensionalCurve(byte[] data, IccOneDimensionalCurve expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccOneDimensionalCurve output = reader.ReadOneDimensionalCurve(); IccOneDimensionalCurve output = reader.ReadOneDimensionalCurve();
@ -23,7 +24,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataCurves.ResponseCurveTestData), MemberType = typeof(IccTestDataCurves))] [MemberData(nameof(IccTestDataCurves.ResponseCurveTestData), MemberType = typeof(IccTestDataCurves))]
internal void ReadResponseCurve(byte[] data, IccResponseCurve expected, int channelCount) internal void ReadResponseCurve(byte[] data, IccResponseCurve expected, int channelCount)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccResponseCurve output = reader.ReadResponseCurve(channelCount); IccResponseCurve output = reader.ReadResponseCurve(channelCount);
@ -34,7 +35,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataCurves.ParametricCurveTestData), MemberType = typeof(IccTestDataCurves))] [MemberData(nameof(IccTestDataCurves.ParametricCurveTestData), MemberType = typeof(IccTestDataCurves))]
internal void ReadParametricCurve(byte[] data, IccParametricCurve expected) internal void ReadParametricCurve(byte[] data, IccParametricCurve expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccParametricCurve output = reader.ReadParametricCurve(); IccParametricCurve output = reader.ReadParametricCurve();
@ -45,7 +46,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataCurves.CurveSegmentTestData), MemberType = typeof(IccTestDataCurves))] [MemberData(nameof(IccTestDataCurves.CurveSegmentTestData), MemberType = typeof(IccTestDataCurves))]
internal void ReadCurveSegment(byte[] data, IccCurveSegment expected) internal void ReadCurveSegment(byte[] data, IccCurveSegment expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccCurveSegment output = reader.ReadCurveSegment(); IccCurveSegment output = reader.ReadCurveSegment();
@ -56,7 +57,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataCurves.FormulaCurveSegmentTestData), MemberType = typeof(IccTestDataCurves))] [MemberData(nameof(IccTestDataCurves.FormulaCurveSegmentTestData), MemberType = typeof(IccTestDataCurves))]
internal void ReadFormulaCurveElement(byte[] data, IccFormulaCurveElement expected) internal void ReadFormulaCurveElement(byte[] data, IccFormulaCurveElement expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccFormulaCurveElement output = reader.ReadFormulaCurveElement(); IccFormulaCurveElement output = reader.ReadFormulaCurveElement();
@ -67,14 +68,14 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataCurves.SampledCurveSegmentTestData), MemberType = typeof(IccTestDataCurves))] [MemberData(nameof(IccTestDataCurves.SampledCurveSegmentTestData), MemberType = typeof(IccTestDataCurves))]
internal void ReadSampledCurveElement(byte[] data, IccSampledCurveElement expected) internal void ReadSampledCurveElement(byte[] data, IccSampledCurveElement expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccSampledCurveElement output = reader.ReadSampledCurveElement(); IccSampledCurveElement output = reader.ReadSampledCurveElement();
Assert.Equal(expected, output); Assert.Equal(expected, output);
} }
private IccDataReader CreateReader(byte[] data) private static IccDataReader CreateReader(byte[] data)
{ {
return new IccDataReader(data); return new IccDataReader(data);
} }

17
tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataReader/IccDataReaderLutTests.cs

@ -4,15 +4,16 @@
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.ICC.DataReader
{ {
[Trait("Profile", "Icc")]
public class IccDataReaderLutTests public class IccDataReaderLutTests
{ {
[Theory] [Theory]
[MemberData(nameof(IccTestDataLut.ClutTestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.ClutTestData), MemberType = typeof(IccTestDataLut))]
internal void ReadClut(byte[] data, IccClut expected, int inChannelCount, int outChannelCount, bool isFloat) internal void ReadClut(byte[] data, IccClut expected, int inChannelCount, int outChannelCount, bool isFloat)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccClut output = reader.ReadClut(inChannelCount, outChannelCount, isFloat); IccClut output = reader.ReadClut(inChannelCount, outChannelCount, isFloat);
@ -23,7 +24,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.Clut8TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.Clut8TestData), MemberType = typeof(IccTestDataLut))]
internal void ReadClut8(byte[] data, IccClut expected, int inChannelCount, int outChannelCount, byte[] gridPointCount) internal void ReadClut8(byte[] data, IccClut expected, int inChannelCount, int outChannelCount, byte[] gridPointCount)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccClut output = reader.ReadClut8(inChannelCount, outChannelCount, gridPointCount); IccClut output = reader.ReadClut8(inChannelCount, outChannelCount, gridPointCount);
@ -34,7 +35,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.Clut16TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.Clut16TestData), MemberType = typeof(IccTestDataLut))]
internal void ReadClut16(byte[] data, IccClut expected, int inChannelCount, int outChannelCount, byte[] gridPointCount) internal void ReadClut16(byte[] data, IccClut expected, int inChannelCount, int outChannelCount, byte[] gridPointCount)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccClut output = reader.ReadClut16(inChannelCount, outChannelCount, gridPointCount); IccClut output = reader.ReadClut16(inChannelCount, outChannelCount, gridPointCount);
@ -45,7 +46,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.ClutF32TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.ClutF32TestData), MemberType = typeof(IccTestDataLut))]
internal void ReadClutF32(byte[] data, IccClut expected, int inChannelCount, int outChannelCount, byte[] gridPointCount) internal void ReadClutF32(byte[] data, IccClut expected, int inChannelCount, int outChannelCount, byte[] gridPointCount)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccClut output = reader.ReadClutF32(inChannelCount, outChannelCount, gridPointCount); IccClut output = reader.ReadClutF32(inChannelCount, outChannelCount, gridPointCount);
@ -56,7 +57,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.Lut8TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.Lut8TestData), MemberType = typeof(IccTestDataLut))]
internal void ReadLut8(byte[] data, IccLut expected) internal void ReadLut8(byte[] data, IccLut expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccLut output = reader.ReadLut8(); IccLut output = reader.ReadLut8();
@ -67,14 +68,14 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.Lut16TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.Lut16TestData), MemberType = typeof(IccTestDataLut))]
internal void ReadLut16(byte[] data, IccLut expected, int count) internal void ReadLut16(byte[] data, IccLut expected, int count)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccLut output = reader.ReadLut16(count); IccLut output = reader.ReadLut16(count);
Assert.Equal(expected, output); Assert.Equal(expected, output);
} }
private IccDataReader CreateReader(byte[] data) private static IccDataReader CreateReader(byte[] data)
{ {
return new IccDataReader(data); return new IccDataReader(data);
} }

9
tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataReader/IccDataReaderMatrixTests.cs

@ -4,15 +4,16 @@
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.ICC.DataReader
{ {
[Trait("Profile", "Icc")]
public class IccDataReaderMatrixTests public class IccDataReaderMatrixTests
{ {
[Theory] [Theory]
[MemberData(nameof(IccTestDataMatrix.Matrix2D_FloatArrayTestData), MemberType = typeof(IccTestDataMatrix))] [MemberData(nameof(IccTestDataMatrix.Matrix2D_FloatArrayTestData), MemberType = typeof(IccTestDataMatrix))]
public void ReadMatrix2D(byte[] data, int xCount, int yCount, bool isSingle, float[,] expected) public void ReadMatrix2D(byte[] data, int xCount, int yCount, bool isSingle, float[,] expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
float[,] output = reader.ReadMatrix(xCount, yCount, isSingle); float[,] output = reader.ReadMatrix(xCount, yCount, isSingle);
@ -23,14 +24,14 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataMatrix.Matrix1D_ArrayTestData), MemberType = typeof(IccTestDataMatrix))] [MemberData(nameof(IccTestDataMatrix.Matrix1D_ArrayTestData), MemberType = typeof(IccTestDataMatrix))]
public void ReadMatrix1D(byte[] data, int yCount, bool isSingle, float[] expected) public void ReadMatrix1D(byte[] data, int yCount, bool isSingle, float[] expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
float[] output = reader.ReadMatrix(yCount, isSingle); float[] output = reader.ReadMatrix(yCount, isSingle);
Assert.Equal(expected, output); Assert.Equal(expected, output);
} }
private IccDataReader CreateReader(byte[] data) private static IccDataReader CreateReader(byte[] data)
{ {
return new IccDataReader(data); return new IccDataReader(data);
} }

13
tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataReader/IccDataReaderMultiProcessElementTests.cs

@ -4,15 +4,16 @@
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.ICC.DataReader
{ {
[Trait("Profile", "Icc")]
public class IccDataReaderMultiProcessElementTests public class IccDataReaderMultiProcessElementTests
{ {
[Theory] [Theory]
[MemberData(nameof(IccTestDataMultiProcessElements.MultiProcessElementTestData), MemberType = typeof(IccTestDataMultiProcessElements))] [MemberData(nameof(IccTestDataMultiProcessElements.MultiProcessElementTestData), MemberType = typeof(IccTestDataMultiProcessElements))]
internal void ReadMultiProcessElement(byte[] data, IccMultiProcessElement expected) internal void ReadMultiProcessElement(byte[] data, IccMultiProcessElement expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccMultiProcessElement output = reader.ReadMultiProcessElement(); IccMultiProcessElement output = reader.ReadMultiProcessElement();
@ -23,7 +24,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataMultiProcessElements.CurveSetTestData), MemberType = typeof(IccTestDataMultiProcessElements))] [MemberData(nameof(IccTestDataMultiProcessElements.CurveSetTestData), MemberType = typeof(IccTestDataMultiProcessElements))]
internal void ReadCurveSetProcessElement(byte[] data, IccCurveSetProcessElement expected, int inChannelCount, int outChannelCount) internal void ReadCurveSetProcessElement(byte[] data, IccCurveSetProcessElement expected, int inChannelCount, int outChannelCount)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccCurveSetProcessElement output = reader.ReadCurveSetProcessElement(inChannelCount, outChannelCount); IccCurveSetProcessElement output = reader.ReadCurveSetProcessElement(inChannelCount, outChannelCount);
@ -34,7 +35,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataMultiProcessElements.MatrixTestData), MemberType = typeof(IccTestDataMultiProcessElements))] [MemberData(nameof(IccTestDataMultiProcessElements.MatrixTestData), MemberType = typeof(IccTestDataMultiProcessElements))]
internal void ReadMatrixProcessElement(byte[] data, IccMatrixProcessElement expected, int inChannelCount, int outChannelCount) internal void ReadMatrixProcessElement(byte[] data, IccMatrixProcessElement expected, int inChannelCount, int outChannelCount)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccMatrixProcessElement output = reader.ReadMatrixProcessElement(inChannelCount, outChannelCount); IccMatrixProcessElement output = reader.ReadMatrixProcessElement(inChannelCount, outChannelCount);
@ -45,14 +46,14 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataMultiProcessElements.ClutTestData), MemberType = typeof(IccTestDataMultiProcessElements))] [MemberData(nameof(IccTestDataMultiProcessElements.ClutTestData), MemberType = typeof(IccTestDataMultiProcessElements))]
internal void ReadClutProcessElement(byte[] data, IccClutProcessElement expected, int inChannelCount, int outChannelCount) internal void ReadClutProcessElement(byte[] data, IccClutProcessElement expected, int inChannelCount, int outChannelCount)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccClutProcessElement output = reader.ReadClutProcessElement(inChannelCount, outChannelCount); IccClutProcessElement output = reader.ReadClutProcessElement(inChannelCount, outChannelCount);
Assert.Equal(expected, output); Assert.Equal(expected, output);
} }
private IccDataReader CreateReader(byte[] data) private static IccDataReader CreateReader(byte[] data)
{ {
return new IccDataReader(data); return new IccDataReader(data);
} }

25
tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataReader/IccDataReaderNonPrimitivesTests.cs

@ -6,15 +6,16 @@ using System.Numerics;
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.ICC.DataReader
{ {
[Trait("Profile", "Icc")]
public class IccDataReaderNonPrimitivesTests public class IccDataReaderNonPrimitivesTests
{ {
[Theory] [Theory]
[MemberData(nameof(IccTestDataNonPrimitives.DateTimeTestData), MemberType = typeof(IccTestDataNonPrimitives))] [MemberData(nameof(IccTestDataNonPrimitives.DateTimeTestData), MemberType = typeof(IccTestDataNonPrimitives))]
public void ReadDateTime(byte[] data, DateTime expected) public void ReadDateTime(byte[] data, DateTime expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
DateTime output = reader.ReadDateTime(); DateTime output = reader.ReadDateTime();
@ -25,7 +26,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataNonPrimitives.VersionNumberTestData), MemberType = typeof(IccTestDataNonPrimitives))] [MemberData(nameof(IccTestDataNonPrimitives.VersionNumberTestData), MemberType = typeof(IccTestDataNonPrimitives))]
public void ReadVersionNumber(byte[] data, IccVersion expected) public void ReadVersionNumber(byte[] data, IccVersion expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccVersion output = reader.ReadVersionNumber(); IccVersion output = reader.ReadVersionNumber();
@ -36,7 +37,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataNonPrimitives.XyzNumberTestData), MemberType = typeof(IccTestDataNonPrimitives))] [MemberData(nameof(IccTestDataNonPrimitives.XyzNumberTestData), MemberType = typeof(IccTestDataNonPrimitives))]
public void ReadXyzNumber(byte[] data, Vector3 expected) public void ReadXyzNumber(byte[] data, Vector3 expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
Vector3 output = reader.ReadXyzNumber(); Vector3 output = reader.ReadXyzNumber();
@ -47,7 +48,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataNonPrimitives.ProfileIdTestData), MemberType = typeof(IccTestDataNonPrimitives))] [MemberData(nameof(IccTestDataNonPrimitives.ProfileIdTestData), MemberType = typeof(IccTestDataNonPrimitives))]
internal void ReadProfileId(byte[] data, IccProfileId expected) internal void ReadProfileId(byte[] data, IccProfileId expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccProfileId output = reader.ReadProfileId(); IccProfileId output = reader.ReadProfileId();
@ -58,7 +59,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataNonPrimitives.PositionNumberTestData), MemberType = typeof(IccTestDataNonPrimitives))] [MemberData(nameof(IccTestDataNonPrimitives.PositionNumberTestData), MemberType = typeof(IccTestDataNonPrimitives))]
internal void ReadPositionNumber(byte[] data, IccPositionNumber expected) internal void ReadPositionNumber(byte[] data, IccPositionNumber expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccPositionNumber output = reader.ReadPositionNumber(); IccPositionNumber output = reader.ReadPositionNumber();
@ -69,7 +70,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataNonPrimitives.ResponseNumberTestData), MemberType = typeof(IccTestDataNonPrimitives))] [MemberData(nameof(IccTestDataNonPrimitives.ResponseNumberTestData), MemberType = typeof(IccTestDataNonPrimitives))]
internal void ReadResponseNumber(byte[] data, IccResponseNumber expected) internal void ReadResponseNumber(byte[] data, IccResponseNumber expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccResponseNumber output = reader.ReadResponseNumber(); IccResponseNumber output = reader.ReadResponseNumber();
@ -80,7 +81,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataNonPrimitives.NamedColorTestData), MemberType = typeof(IccTestDataNonPrimitives))] [MemberData(nameof(IccTestDataNonPrimitives.NamedColorTestData), MemberType = typeof(IccTestDataNonPrimitives))]
internal void ReadNamedColor(byte[] data, IccNamedColor expected, uint coordinateCount) internal void ReadNamedColor(byte[] data, IccNamedColor expected, uint coordinateCount)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccNamedColor output = reader.ReadNamedColor(coordinateCount); IccNamedColor output = reader.ReadNamedColor(coordinateCount);
@ -91,7 +92,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataNonPrimitives.ProfileDescriptionReadTestData), MemberType = typeof(IccTestDataNonPrimitives))] [MemberData(nameof(IccTestDataNonPrimitives.ProfileDescriptionReadTestData), MemberType = typeof(IccTestDataNonPrimitives))]
internal void ReadProfileDescription(byte[] data, IccProfileDescription expected) internal void ReadProfileDescription(byte[] data, IccProfileDescription expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccProfileDescription output = reader.ReadProfileDescription(); IccProfileDescription output = reader.ReadProfileDescription();
@ -102,7 +103,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataNonPrimitives.ColorantTableEntryTestData), MemberType = typeof(IccTestDataNonPrimitives))] [MemberData(nameof(IccTestDataNonPrimitives.ColorantTableEntryTestData), MemberType = typeof(IccTestDataNonPrimitives))]
internal void ReadColorantTableEntry(byte[] data, IccColorantTableEntry expected) internal void ReadColorantTableEntry(byte[] data, IccColorantTableEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccColorantTableEntry output = reader.ReadColorantTableEntry(); IccColorantTableEntry output = reader.ReadColorantTableEntry();
@ -113,14 +114,14 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataNonPrimitives.ScreeningChannelTestData), MemberType = typeof(IccTestDataNonPrimitives))] [MemberData(nameof(IccTestDataNonPrimitives.ScreeningChannelTestData), MemberType = typeof(IccTestDataNonPrimitives))]
internal void ReadScreeningChannel(byte[] data, IccScreeningChannel expected) internal void ReadScreeningChannel(byte[] data, IccScreeningChannel expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccScreeningChannel output = reader.ReadScreeningChannel(); IccScreeningChannel output = reader.ReadScreeningChannel();
Assert.Equal(expected, output); Assert.Equal(expected, output);
} }
private IccDataReader CreateReader(byte[] data) private static IccDataReader CreateReader(byte[] data)
{ {
return new IccDataReader(data); return new IccDataReader(data);
} }

19
tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataReader/IccDataReaderPrimitivesTests.cs

@ -5,15 +5,16 @@ using System;
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.ICC.DataReader
{ {
[Trait("Profile", "Icc")]
public class IccDataReaderPrimitivesTests public class IccDataReaderPrimitivesTests
{ {
[Theory] [Theory]
[MemberData(nameof(IccTestDataPrimitives.AsciiTestData), MemberType = typeof(IccTestDataPrimitives))] [MemberData(nameof(IccTestDataPrimitives.AsciiTestData), MemberType = typeof(IccTestDataPrimitives))]
public void ReadAsciiString(byte[] textBytes, int length, string expected) public void ReadAsciiString(byte[] textBytes, int length, string expected)
{ {
IccDataReader reader = this.CreateReader(textBytes); IccDataReader reader = CreateReader(textBytes);
string output = reader.ReadAsciiString(length); string output = reader.ReadAsciiString(length);
@ -23,7 +24,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[Fact] [Fact]
public void ReadAsciiStringWithNegativeLengthThrowsArgumentException() public void ReadAsciiStringWithNegativeLengthThrowsArgumentException()
{ {
IccDataReader reader = this.CreateReader(new byte[4]); IccDataReader reader = CreateReader(new byte[4]);
Assert.Throws<ArgumentOutOfRangeException>(() => reader.ReadAsciiString(-1)); Assert.Throws<ArgumentOutOfRangeException>(() => reader.ReadAsciiString(-1));
} }
@ -31,7 +32,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[Fact] [Fact]
public void ReadUnicodeStringWithNegativeLengthThrowsArgumentException() public void ReadUnicodeStringWithNegativeLengthThrowsArgumentException()
{ {
IccDataReader reader = this.CreateReader(new byte[4]); IccDataReader reader = CreateReader(new byte[4]);
Assert.Throws<ArgumentOutOfRangeException>(() => reader.ReadUnicodeString(-1)); Assert.Throws<ArgumentOutOfRangeException>(() => reader.ReadUnicodeString(-1));
} }
@ -40,7 +41,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataPrimitives.Fix16TestData), MemberType = typeof(IccTestDataPrimitives))] [MemberData(nameof(IccTestDataPrimitives.Fix16TestData), MemberType = typeof(IccTestDataPrimitives))]
public void ReadFix16(byte[] data, float expected) public void ReadFix16(byte[] data, float expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
float output = reader.ReadFix16(); float output = reader.ReadFix16();
@ -51,7 +52,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataPrimitives.UFix16TestData), MemberType = typeof(IccTestDataPrimitives))] [MemberData(nameof(IccTestDataPrimitives.UFix16TestData), MemberType = typeof(IccTestDataPrimitives))]
public void ReadUFix16(byte[] data, float expected) public void ReadUFix16(byte[] data, float expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
float output = reader.ReadUFix16(); float output = reader.ReadUFix16();
@ -62,7 +63,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataPrimitives.U1Fix15TestData), MemberType = typeof(IccTestDataPrimitives))] [MemberData(nameof(IccTestDataPrimitives.U1Fix15TestData), MemberType = typeof(IccTestDataPrimitives))]
public void ReadU1Fix15(byte[] data, float expected) public void ReadU1Fix15(byte[] data, float expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
float output = reader.ReadU1Fix15(); float output = reader.ReadU1Fix15();
@ -73,14 +74,14 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataPrimitives.UFix8TestData), MemberType = typeof(IccTestDataPrimitives))] [MemberData(nameof(IccTestDataPrimitives.UFix8TestData), MemberType = typeof(IccTestDataPrimitives))]
public void ReadUFix8(byte[] data, float expected) public void ReadUFix8(byte[] data, float expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
float output = reader.ReadUFix8(); float output = reader.ReadUFix8();
Assert.Equal(expected, output); Assert.Equal(expected, output);
} }
private IccDataReader CreateReader(byte[] data) private static IccDataReader CreateReader(byte[] data)
{ {
return new IccDataReader(data); return new IccDataReader(data);
} }

71
tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataReader/IccDataReaderTagDataEntryTests.cs

@ -4,8 +4,9 @@
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.ICC.DataReader
{ {
[Trait("Profile", "Icc")]
public class IccDataReaderTagDataEntryTests public class IccDataReaderTagDataEntryTests
{ {
[Theory] [Theory]
@ -14,7 +15,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadUnknownTagDataEntry(byte[] data, IccUnknownTagDataEntry expected, uint size) internal void ReadUnknownTagDataEntry(byte[] data, IccUnknownTagDataEntry expected, uint size)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccUnknownTagDataEntry output = reader.ReadUnknownTagDataEntry(size); IccUnknownTagDataEntry output = reader.ReadUnknownTagDataEntry(size);
@ -27,7 +28,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadChromaticityTagDataEntry(byte[] data, IccChromaticityTagDataEntry expected) internal void ReadChromaticityTagDataEntry(byte[] data, IccChromaticityTagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccChromaticityTagDataEntry output = reader.ReadChromaticityTagDataEntry(); IccChromaticityTagDataEntry output = reader.ReadChromaticityTagDataEntry();
@ -40,7 +41,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadColorantOrderTagDataEntry(byte[] data, IccColorantOrderTagDataEntry expected) internal void ReadColorantOrderTagDataEntry(byte[] data, IccColorantOrderTagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccColorantOrderTagDataEntry output = reader.ReadColorantOrderTagDataEntry(); IccColorantOrderTagDataEntry output = reader.ReadColorantOrderTagDataEntry();
@ -53,7 +54,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadColorantTableTagDataEntry(byte[] data, IccColorantTableTagDataEntry expected) internal void ReadColorantTableTagDataEntry(byte[] data, IccColorantTableTagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccColorantTableTagDataEntry output = reader.ReadColorantTableTagDataEntry(); IccColorantTableTagDataEntry output = reader.ReadColorantTableTagDataEntry();
@ -66,7 +67,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadCurveTagDataEntry(byte[] data, IccCurveTagDataEntry expected) internal void ReadCurveTagDataEntry(byte[] data, IccCurveTagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccCurveTagDataEntry output = reader.ReadCurveTagDataEntry(); IccCurveTagDataEntry output = reader.ReadCurveTagDataEntry();
@ -79,7 +80,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadDataTagDataEntry(byte[] data, IccDataTagDataEntry expected, uint size) internal void ReadDataTagDataEntry(byte[] data, IccDataTagDataEntry expected, uint size)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccDataTagDataEntry output = reader.ReadDataTagDataEntry(size); IccDataTagDataEntry output = reader.ReadDataTagDataEntry(size);
@ -92,7 +93,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadDateTimeTagDataEntry(byte[] data, IccDateTimeTagDataEntry expected) internal void ReadDateTimeTagDataEntry(byte[] data, IccDateTimeTagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccDateTimeTagDataEntry output = reader.ReadDateTimeTagDataEntry(); IccDateTimeTagDataEntry output = reader.ReadDateTimeTagDataEntry();
@ -105,7 +106,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadLut16TagDataEntry(byte[] data, IccLut16TagDataEntry expected) internal void ReadLut16TagDataEntry(byte[] data, IccLut16TagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccLut16TagDataEntry output = reader.ReadLut16TagDataEntry(); IccLut16TagDataEntry output = reader.ReadLut16TagDataEntry();
@ -118,7 +119,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadLut8TagDataEntry(byte[] data, IccLut8TagDataEntry expected) internal void ReadLut8TagDataEntry(byte[] data, IccLut8TagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccLut8TagDataEntry output = reader.ReadLut8TagDataEntry(); IccLut8TagDataEntry output = reader.ReadLut8TagDataEntry();
@ -131,7 +132,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadLutAToBTagDataEntry(byte[] data, IccLutAToBTagDataEntry expected) internal void ReadLutAToBTagDataEntry(byte[] data, IccLutAToBTagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccLutAToBTagDataEntry output = reader.ReadLutAtoBTagDataEntry(); IccLutAToBTagDataEntry output = reader.ReadLutAtoBTagDataEntry();
@ -144,7 +145,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadLutBToATagDataEntry(byte[] data, IccLutBToATagDataEntry expected) internal void ReadLutBToATagDataEntry(byte[] data, IccLutBToATagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccLutBToATagDataEntry output = reader.ReadLutBtoATagDataEntry(); IccLutBToATagDataEntry output = reader.ReadLutBtoATagDataEntry();
@ -157,7 +158,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadMeasurementTagDataEntry(byte[] data, IccMeasurementTagDataEntry expected) internal void ReadMeasurementTagDataEntry(byte[] data, IccMeasurementTagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccMeasurementTagDataEntry output = reader.ReadMeasurementTagDataEntry(); IccMeasurementTagDataEntry output = reader.ReadMeasurementTagDataEntry();
@ -170,7 +171,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadMultiLocalizedUnicodeTagDataEntry(byte[] data, IccMultiLocalizedUnicodeTagDataEntry expected) internal void ReadMultiLocalizedUnicodeTagDataEntry(byte[] data, IccMultiLocalizedUnicodeTagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccMultiLocalizedUnicodeTagDataEntry output = reader.ReadMultiLocalizedUnicodeTagDataEntry(); IccMultiLocalizedUnicodeTagDataEntry output = reader.ReadMultiLocalizedUnicodeTagDataEntry();
@ -183,7 +184,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadMultiProcessElementsTagDataEntry(byte[] data, IccMultiProcessElementsTagDataEntry expected) internal void ReadMultiProcessElementsTagDataEntry(byte[] data, IccMultiProcessElementsTagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccMultiProcessElementsTagDataEntry output = reader.ReadMultiProcessElementsTagDataEntry(); IccMultiProcessElementsTagDataEntry output = reader.ReadMultiProcessElementsTagDataEntry();
@ -196,7 +197,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadNamedColor2TagDataEntry(byte[] data, IccNamedColor2TagDataEntry expected) internal void ReadNamedColor2TagDataEntry(byte[] data, IccNamedColor2TagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccNamedColor2TagDataEntry output = reader.ReadNamedColor2TagDataEntry(); IccNamedColor2TagDataEntry output = reader.ReadNamedColor2TagDataEntry();
@ -209,7 +210,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadParametricCurveTagDataEntry(byte[] data, IccParametricCurveTagDataEntry expected) internal void ReadParametricCurveTagDataEntry(byte[] data, IccParametricCurveTagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccParametricCurveTagDataEntry output = reader.ReadParametricCurveTagDataEntry(); IccParametricCurveTagDataEntry output = reader.ReadParametricCurveTagDataEntry();
@ -222,7 +223,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadProfileSequenceDescTagDataEntry(byte[] data, IccProfileSequenceDescTagDataEntry expected) internal void ReadProfileSequenceDescTagDataEntry(byte[] data, IccProfileSequenceDescTagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccProfileSequenceDescTagDataEntry output = reader.ReadProfileSequenceDescTagDataEntry(); IccProfileSequenceDescTagDataEntry output = reader.ReadProfileSequenceDescTagDataEntry();
@ -237,7 +238,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
byte[] data, byte[] data,
IccProfileSequenceIdentifierTagDataEntry expected) IccProfileSequenceIdentifierTagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccProfileSequenceIdentifierTagDataEntry output = reader.ReadProfileSequenceIdentifierTagDataEntry(); IccProfileSequenceIdentifierTagDataEntry output = reader.ReadProfileSequenceIdentifierTagDataEntry();
@ -250,7 +251,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadResponseCurveSet16TagDataEntry(byte[] data, IccResponseCurveSet16TagDataEntry expected) internal void ReadResponseCurveSet16TagDataEntry(byte[] data, IccResponseCurveSet16TagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccResponseCurveSet16TagDataEntry output = reader.ReadResponseCurveSet16TagDataEntry(); IccResponseCurveSet16TagDataEntry output = reader.ReadResponseCurveSet16TagDataEntry();
@ -263,7 +264,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadFix16ArrayTagDataEntry(byte[] data, IccFix16ArrayTagDataEntry expected, uint size) internal void ReadFix16ArrayTagDataEntry(byte[] data, IccFix16ArrayTagDataEntry expected, uint size)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccFix16ArrayTagDataEntry output = reader.ReadFix16ArrayTagDataEntry(size); IccFix16ArrayTagDataEntry output = reader.ReadFix16ArrayTagDataEntry(size);
@ -276,7 +277,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadSignatureTagDataEntry(byte[] data, IccSignatureTagDataEntry expected) internal void ReadSignatureTagDataEntry(byte[] data, IccSignatureTagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccSignatureTagDataEntry output = reader.ReadSignatureTagDataEntry(); IccSignatureTagDataEntry output = reader.ReadSignatureTagDataEntry();
@ -289,7 +290,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadTextTagDataEntry(byte[] data, IccTextTagDataEntry expected, uint size) internal void ReadTextTagDataEntry(byte[] data, IccTextTagDataEntry expected, uint size)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccTextTagDataEntry output = reader.ReadTextTagDataEntry(size); IccTextTagDataEntry output = reader.ReadTextTagDataEntry(size);
@ -302,7 +303,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadUFix16ArrayTagDataEntry(byte[] data, IccUFix16ArrayTagDataEntry expected, uint size) internal void ReadUFix16ArrayTagDataEntry(byte[] data, IccUFix16ArrayTagDataEntry expected, uint size)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccUFix16ArrayTagDataEntry output = reader.ReadUFix16ArrayTagDataEntry(size); IccUFix16ArrayTagDataEntry output = reader.ReadUFix16ArrayTagDataEntry(size);
@ -315,7 +316,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadUInt16ArrayTagDataEntry(byte[] data, IccUInt16ArrayTagDataEntry expected, uint size) internal void ReadUInt16ArrayTagDataEntry(byte[] data, IccUInt16ArrayTagDataEntry expected, uint size)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccUInt16ArrayTagDataEntry output = reader.ReadUInt16ArrayTagDataEntry(size); IccUInt16ArrayTagDataEntry output = reader.ReadUInt16ArrayTagDataEntry(size);
@ -328,7 +329,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadUInt32ArrayTagDataEntry(byte[] data, IccUInt32ArrayTagDataEntry expected, uint size) internal void ReadUInt32ArrayTagDataEntry(byte[] data, IccUInt32ArrayTagDataEntry expected, uint size)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccUInt32ArrayTagDataEntry output = reader.ReadUInt32ArrayTagDataEntry(size); IccUInt32ArrayTagDataEntry output = reader.ReadUInt32ArrayTagDataEntry(size);
@ -341,7 +342,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadUInt64ArrayTagDataEntry(byte[] data, IccUInt64ArrayTagDataEntry expected, uint size) internal void ReadUInt64ArrayTagDataEntry(byte[] data, IccUInt64ArrayTagDataEntry expected, uint size)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccUInt64ArrayTagDataEntry output = reader.ReadUInt64ArrayTagDataEntry(size); IccUInt64ArrayTagDataEntry output = reader.ReadUInt64ArrayTagDataEntry(size);
@ -354,7 +355,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadUInt8ArrayTagDataEntry(byte[] data, IccUInt8ArrayTagDataEntry expected, uint size) internal void ReadUInt8ArrayTagDataEntry(byte[] data, IccUInt8ArrayTagDataEntry expected, uint size)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccUInt8ArrayTagDataEntry output = reader.ReadUInt8ArrayTagDataEntry(size); IccUInt8ArrayTagDataEntry output = reader.ReadUInt8ArrayTagDataEntry(size);
@ -367,7 +368,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadViewingConditionsTagDataEntry(byte[] data, IccViewingConditionsTagDataEntry expected) internal void ReadViewingConditionsTagDataEntry(byte[] data, IccViewingConditionsTagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccViewingConditionsTagDataEntry output = reader.ReadViewingConditionsTagDataEntry(); IccViewingConditionsTagDataEntry output = reader.ReadViewingConditionsTagDataEntry();
@ -380,7 +381,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadXyzTagDataEntry(byte[] data, IccXyzTagDataEntry expected, uint size) internal void ReadXyzTagDataEntry(byte[] data, IccXyzTagDataEntry expected, uint size)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccXyzTagDataEntry output = reader.ReadXyzTagDataEntry(size); IccXyzTagDataEntry output = reader.ReadXyzTagDataEntry(size);
@ -393,7 +394,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadTextDescriptionTagDataEntry(byte[] data, IccTextDescriptionTagDataEntry expected) internal void ReadTextDescriptionTagDataEntry(byte[] data, IccTextDescriptionTagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccTextDescriptionTagDataEntry output = reader.ReadTextDescriptionTagDataEntry(); IccTextDescriptionTagDataEntry output = reader.ReadTextDescriptionTagDataEntry();
@ -406,7 +407,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadCrdInfoTagDataEntry(byte[] data, IccCrdInfoTagDataEntry expected) internal void ReadCrdInfoTagDataEntry(byte[] data, IccCrdInfoTagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccCrdInfoTagDataEntry output = reader.ReadCrdInfoTagDataEntry(); IccCrdInfoTagDataEntry output = reader.ReadCrdInfoTagDataEntry();
@ -419,7 +420,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadScreeningTagDataEntry(byte[] data, IccScreeningTagDataEntry expected) internal void ReadScreeningTagDataEntry(byte[] data, IccScreeningTagDataEntry expected)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccScreeningTagDataEntry output = reader.ReadScreeningTagDataEntry(); IccScreeningTagDataEntry output = reader.ReadScreeningTagDataEntry();
@ -432,14 +433,14 @@ namespace SixLabors.ImageSharp.Tests.Icc
MemberType = typeof(IccTestDataTagDataEntry))] MemberType = typeof(IccTestDataTagDataEntry))]
internal void ReadUcrBgTagDataEntry(byte[] data, IccUcrBgTagDataEntry expected, uint size) internal void ReadUcrBgTagDataEntry(byte[] data, IccUcrBgTagDataEntry expected, uint size)
{ {
IccDataReader reader = this.CreateReader(data); IccDataReader reader = CreateReader(data);
IccUcrBgTagDataEntry output = reader.ReadUcrBgTagDataEntry(size); IccUcrBgTagDataEntry output = reader.ReadUcrBgTagDataEntry(size);
Assert.Equal(expected, output); Assert.Equal(expected, output);
} }
private IccDataReader CreateReader(byte[] data) private static IccDataReader CreateReader(byte[] data)
{ {
return new IccDataReader(data); return new IccDataReader(data);
} }

5
tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataReader/IccDataReaderTests.cs

@ -1,12 +1,13 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using System; using System;
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.ICC.DataReader
{ {
[Trait("Profile", "Icc")]
public class IccDataReaderTests public class IccDataReaderTests
{ {
[Fact] [Fact]

17
tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterCurvesTests.cs

@ -4,15 +4,16 @@
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.ICC.DataWriter
{ {
[Trait("Profile", "Icc")]
public class IccDataWriterCurvesTests public class IccDataWriterCurvesTests
{ {
[Theory] [Theory]
[MemberData(nameof(IccTestDataCurves.OneDimensionalCurveTestData), MemberType = typeof(IccTestDataCurves))] [MemberData(nameof(IccTestDataCurves.OneDimensionalCurveTestData), MemberType = typeof(IccTestDataCurves))]
internal void WriteOneDimensionalCurve(byte[] expected, IccOneDimensionalCurve data) internal void WriteOneDimensionalCurve(byte[] expected, IccOneDimensionalCurve data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteOneDimensionalCurve(data); writer.WriteOneDimensionalCurve(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -24,7 +25,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataCurves.ResponseCurveTestData), MemberType = typeof(IccTestDataCurves))] [MemberData(nameof(IccTestDataCurves.ResponseCurveTestData), MemberType = typeof(IccTestDataCurves))]
internal void WriteResponseCurve(byte[] expected, IccResponseCurve data, int channelCount) internal void WriteResponseCurve(byte[] expected, IccResponseCurve data, int channelCount)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteResponseCurve(data); writer.WriteResponseCurve(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -36,7 +37,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataCurves.ParametricCurveTestData), MemberType = typeof(IccTestDataCurves))] [MemberData(nameof(IccTestDataCurves.ParametricCurveTestData), MemberType = typeof(IccTestDataCurves))]
internal void WriteParametricCurve(byte[] expected, IccParametricCurve data) internal void WriteParametricCurve(byte[] expected, IccParametricCurve data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteParametricCurve(data); writer.WriteParametricCurve(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -48,7 +49,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataCurves.CurveSegmentTestData), MemberType = typeof(IccTestDataCurves))] [MemberData(nameof(IccTestDataCurves.CurveSegmentTestData), MemberType = typeof(IccTestDataCurves))]
internal void WriteCurveSegment(byte[] expected, IccCurveSegment data) internal void WriteCurveSegment(byte[] expected, IccCurveSegment data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteCurveSegment(data); writer.WriteCurveSegment(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -60,7 +61,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataCurves.FormulaCurveSegmentTestData), MemberType = typeof(IccTestDataCurves))] [MemberData(nameof(IccTestDataCurves.FormulaCurveSegmentTestData), MemberType = typeof(IccTestDataCurves))]
internal void WriteFormulaCurveElement(byte[] expected, IccFormulaCurveElement data) internal void WriteFormulaCurveElement(byte[] expected, IccFormulaCurveElement data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteFormulaCurveElement(data); writer.WriteFormulaCurveElement(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -72,7 +73,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataCurves.SampledCurveSegmentTestData), MemberType = typeof(IccTestDataCurves))] [MemberData(nameof(IccTestDataCurves.SampledCurveSegmentTestData), MemberType = typeof(IccTestDataCurves))]
internal void WriteSampledCurveElement(byte[] expected, IccSampledCurveElement data) internal void WriteSampledCurveElement(byte[] expected, IccSampledCurveElement data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteSampledCurveElement(data); writer.WriteSampledCurveElement(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -80,7 +81,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
Assert.Equal(expected, output); Assert.Equal(expected, output);
} }
private IccDataWriter CreateWriter() private static IccDataWriter CreateWriter()
{ {
return new IccDataWriter(); return new IccDataWriter();
} }

17
tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterLutTests.cs

@ -4,15 +4,16 @@
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.ICC.DataWriter
{ {
[Trait("Profile", "Icc")]
public class IccDataWriterLutTests public class IccDataWriterLutTests
{ {
[Theory] [Theory]
[MemberData(nameof(IccTestDataLut.ClutTestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.ClutTestData), MemberType = typeof(IccTestDataLut))]
internal void WriteClutAll(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, bool isFloat) internal void WriteClutAll(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, bool isFloat)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteClut(data); writer.WriteClut(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -24,7 +25,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.Clut8TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.Clut8TestData), MemberType = typeof(IccTestDataLut))]
internal void WriteClut8(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, byte[] gridPointCount) internal void WriteClut8(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, byte[] gridPointCount)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteClut8(data); writer.WriteClut8(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -36,7 +37,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.Clut16TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.Clut16TestData), MemberType = typeof(IccTestDataLut))]
internal void WriteClut16(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, byte[] gridPointCount) internal void WriteClut16(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, byte[] gridPointCount)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteClut16(data); writer.WriteClut16(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -48,7 +49,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.ClutF32TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.ClutF32TestData), MemberType = typeof(IccTestDataLut))]
internal void WriteClutF32(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, byte[] gridPointCount) internal void WriteClutF32(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, byte[] gridPointCount)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteClutF32(data); writer.WriteClutF32(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -60,7 +61,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.Lut8TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.Lut8TestData), MemberType = typeof(IccTestDataLut))]
internal void WriteLut8(byte[] expected, IccLut data) internal void WriteLut8(byte[] expected, IccLut data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteLut8(data); writer.WriteLut8(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -72,7 +73,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.Lut16TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.Lut16TestData), MemberType = typeof(IccTestDataLut))]
internal void WriteLut16(byte[] expected, IccLut data, int count) internal void WriteLut16(byte[] expected, IccLut data, int count)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteLut16(data); writer.WriteLut16(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -80,7 +81,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
Assert.Equal(expected, output); Assert.Equal(expected, output);
} }
private IccDataWriter CreateWriter() private static IccDataWriter CreateWriter()
{ {
return new IccDataWriter(); return new IccDataWriter();
} }

17
tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterLutTests1.cs

@ -4,15 +4,16 @@
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.ICC.DataWriter
{ {
[Trait("Profile", "Icc")]
public class IccDataWriterLutTests1 public class IccDataWriterLutTests1
{ {
[Theory] [Theory]
[MemberData(nameof(IccTestDataLut.ClutTestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.ClutTestData), MemberType = typeof(IccTestDataLut))]
internal void WriteClutAll(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, bool isFloat) internal void WriteClutAll(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, bool isFloat)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteClut(data); writer.WriteClut(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -24,7 +25,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.Clut8TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.Clut8TestData), MemberType = typeof(IccTestDataLut))]
internal void WriteClut8(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, byte[] gridPointCount) internal void WriteClut8(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, byte[] gridPointCount)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteClut8(data); writer.WriteClut8(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -36,7 +37,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.Clut16TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.Clut16TestData), MemberType = typeof(IccTestDataLut))]
internal void WriteClut16(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, byte[] gridPointCount) internal void WriteClut16(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, byte[] gridPointCount)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteClut16(data); writer.WriteClut16(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -48,7 +49,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.ClutF32TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.ClutF32TestData), MemberType = typeof(IccTestDataLut))]
internal void WriteClutF32(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, byte[] gridPointCount) internal void WriteClutF32(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, byte[] gridPointCount)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteClutF32(data); writer.WriteClutF32(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -60,7 +61,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.Lut8TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.Lut8TestData), MemberType = typeof(IccTestDataLut))]
internal void WriteLut8(byte[] expected, IccLut data) internal void WriteLut8(byte[] expected, IccLut data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteLut8(data); writer.WriteLut8(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -72,7 +73,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.Lut16TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.Lut16TestData), MemberType = typeof(IccTestDataLut))]
internal void WriteLut16(byte[] expected, IccLut data, int count) internal void WriteLut16(byte[] expected, IccLut data, int count)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteLut16(data); writer.WriteLut16(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -80,7 +81,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
Assert.Equal(expected, output); Assert.Equal(expected, output);
} }
private IccDataWriter CreateWriter() private static IccDataWriter CreateWriter()
{ {
return new IccDataWriter(); return new IccDataWriter();
} }

17
tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterLutTests2.cs

@ -4,15 +4,16 @@
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.ICC.DataWriter
{ {
[Trait("Profile", "Icc")]
public class IccDataWriterLutTests2 public class IccDataWriterLutTests2
{ {
[Theory] [Theory]
[MemberData(nameof(IccTestDataLut.ClutTestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.ClutTestData), MemberType = typeof(IccTestDataLut))]
internal void WriteClutAll(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, bool isFloat) internal void WriteClutAll(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, bool isFloat)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteClut(data); writer.WriteClut(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -24,7 +25,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.Clut8TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.Clut8TestData), MemberType = typeof(IccTestDataLut))]
internal void WriteClut8(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, byte[] gridPointCount) internal void WriteClut8(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, byte[] gridPointCount)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteClut8(data); writer.WriteClut8(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -36,7 +37,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.Clut16TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.Clut16TestData), MemberType = typeof(IccTestDataLut))]
internal void WriteClut16(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, byte[] gridPointCount) internal void WriteClut16(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, byte[] gridPointCount)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteClut16(data); writer.WriteClut16(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -48,7 +49,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.ClutF32TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.ClutF32TestData), MemberType = typeof(IccTestDataLut))]
internal void WriteClutF32(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, byte[] gridPointCount) internal void WriteClutF32(byte[] expected, IccClut data, int inChannelCount, int outChannelCount, byte[] gridPointCount)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteClutF32(data); writer.WriteClutF32(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -60,7 +61,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.Lut8TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.Lut8TestData), MemberType = typeof(IccTestDataLut))]
internal void WriteLut8(byte[] expected, IccLut data) internal void WriteLut8(byte[] expected, IccLut data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteLut8(data); writer.WriteLut8(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -72,7 +73,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataLut.Lut16TestData), MemberType = typeof(IccTestDataLut))] [MemberData(nameof(IccTestDataLut.Lut16TestData), MemberType = typeof(IccTestDataLut))]
internal void WriteLut16(byte[] expected, IccLut data, int count) internal void WriteLut16(byte[] expected, IccLut data, int count)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteLut16(data); writer.WriteLut16(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -80,7 +81,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
Assert.Equal(expected, output); Assert.Equal(expected, output);
} }
private IccDataWriter CreateWriter() private static IccDataWriter CreateWriter()
{ {
return new IccDataWriter(); return new IccDataWriter();
} }

17
tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterMatrixTests.cs

@ -6,17 +6,16 @@ using System.Numerics;
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.ICC.DataWriter
{ {
using SixLabors.ImageSharp; [Trait("Profile", "Icc")]
public class IccDataWriterMatrixTests public class IccDataWriterMatrixTests
{ {
[Theory] [Theory]
[MemberData(nameof(IccTestDataMatrix.Matrix2D_FloatArrayTestData), MemberType = typeof(IccTestDataMatrix))] [MemberData(nameof(IccTestDataMatrix.Matrix2D_FloatArrayTestData), MemberType = typeof(IccTestDataMatrix))]
public void WriteMatrix2D_Array(byte[] expected, int xCount, int yCount, bool isSingle, float[,] data) public void WriteMatrix2D_Array(byte[] expected, int xCount, int yCount, bool isSingle, float[,] data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteMatrix(data, isSingle); writer.WriteMatrix(data, isSingle);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -28,7 +27,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataMatrix.Matrix2D_Matrix4x4TestData), MemberType = typeof(IccTestDataMatrix))] [MemberData(nameof(IccTestDataMatrix.Matrix2D_Matrix4x4TestData), MemberType = typeof(IccTestDataMatrix))]
public void WriteMatrix2D_Matrix4x4(byte[] expected, int xCount, int yCount, bool isSingle, Matrix4x4 data) public void WriteMatrix2D_Matrix4x4(byte[] expected, int xCount, int yCount, bool isSingle, Matrix4x4 data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteMatrix(data, isSingle); writer.WriteMatrix(data, isSingle);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -40,7 +39,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataMatrix.Matrix2D_DenseMatrixTestData), MemberType = typeof(IccTestDataMatrix))] [MemberData(nameof(IccTestDataMatrix.Matrix2D_DenseMatrixTestData), MemberType = typeof(IccTestDataMatrix))]
internal void WriteMatrix2D_DenseMatrix(byte[] expected, int xCount, int yCount, bool isSingle, in DenseMatrix<float> data) internal void WriteMatrix2D_DenseMatrix(byte[] expected, int xCount, int yCount, bool isSingle, in DenseMatrix<float> data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteMatrix(data, isSingle); writer.WriteMatrix(data, isSingle);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -52,7 +51,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataMatrix.Matrix1D_ArrayTestData), MemberType = typeof(IccTestDataMatrix))] [MemberData(nameof(IccTestDataMatrix.Matrix1D_ArrayTestData), MemberType = typeof(IccTestDataMatrix))]
public void WriteMatrix1D_Array(byte[] expected, int yCount, bool isSingle, float[] data) public void WriteMatrix1D_Array(byte[] expected, int yCount, bool isSingle, float[] data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteMatrix(data, isSingle); writer.WriteMatrix(data, isSingle);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -64,7 +63,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataMatrix.Matrix1D_Vector3TestData), MemberType = typeof(IccTestDataMatrix))] [MemberData(nameof(IccTestDataMatrix.Matrix1D_Vector3TestData), MemberType = typeof(IccTestDataMatrix))]
public void WriteMatrix1D_Vector3(byte[] expected, int yCount, bool isSingle, Vector3 data) public void WriteMatrix1D_Vector3(byte[] expected, int yCount, bool isSingle, Vector3 data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteMatrix(data, isSingle); writer.WriteMatrix(data, isSingle);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -72,7 +71,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
Assert.Equal(expected, output); Assert.Equal(expected, output);
} }
private IccDataWriter CreateWriter() private static IccDataWriter CreateWriter()
{ {
return new IccDataWriter(); return new IccDataWriter();
} }

13
tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterMultiProcessElementTests.cs

@ -4,15 +4,16 @@
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.ICC.DataWriter
{ {
[Trait("Profile", "Icc")]
public class IccDataWriterMultiProcessElementTests public class IccDataWriterMultiProcessElementTests
{ {
[Theory] [Theory]
[MemberData(nameof(IccTestDataMultiProcessElements.MultiProcessElementTestData), MemberType = typeof(IccTestDataMultiProcessElements))] [MemberData(nameof(IccTestDataMultiProcessElements.MultiProcessElementTestData), MemberType = typeof(IccTestDataMultiProcessElements))]
internal void WriteMultiProcessElement(byte[] expected, IccMultiProcessElement data) internal void WriteMultiProcessElement(byte[] expected, IccMultiProcessElement data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteMultiProcessElement(data); writer.WriteMultiProcessElement(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -24,7 +25,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataMultiProcessElements.CurveSetTestData), MemberType = typeof(IccTestDataMultiProcessElements))] [MemberData(nameof(IccTestDataMultiProcessElements.CurveSetTestData), MemberType = typeof(IccTestDataMultiProcessElements))]
internal void WriteCurveSetProcessElement(byte[] expected, IccCurveSetProcessElement data, int inChannelCount, int outChannelCount) internal void WriteCurveSetProcessElement(byte[] expected, IccCurveSetProcessElement data, int inChannelCount, int outChannelCount)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteCurveSetProcessElement(data); writer.WriteCurveSetProcessElement(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -36,7 +37,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataMultiProcessElements.MatrixTestData), MemberType = typeof(IccTestDataMultiProcessElements))] [MemberData(nameof(IccTestDataMultiProcessElements.MatrixTestData), MemberType = typeof(IccTestDataMultiProcessElements))]
internal void WriteMatrixProcessElement(byte[] expected, IccMatrixProcessElement data, int inChannelCount, int outChannelCount) internal void WriteMatrixProcessElement(byte[] expected, IccMatrixProcessElement data, int inChannelCount, int outChannelCount)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteMatrixProcessElement(data); writer.WriteMatrixProcessElement(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -48,7 +49,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataMultiProcessElements.ClutTestData), MemberType = typeof(IccTestDataMultiProcessElements))] [MemberData(nameof(IccTestDataMultiProcessElements.ClutTestData), MemberType = typeof(IccTestDataMultiProcessElements))]
internal void WriteClutProcessElement(byte[] expected, IccClutProcessElement data, int inChannelCount, int outChannelCount) internal void WriteClutProcessElement(byte[] expected, IccClutProcessElement data, int inChannelCount, int outChannelCount)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteClutProcessElement(data); writer.WriteClutProcessElement(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -56,7 +57,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
Assert.Equal(expected, output); Assert.Equal(expected, output);
} }
private IccDataWriter CreateWriter() private static IccDataWriter CreateWriter()
{ {
return new IccDataWriter(); return new IccDataWriter();
} }

23
tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterNonPrimitivesTests.cs

@ -6,15 +6,16 @@ using System.Numerics;
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.ICC.DataWriter
{ {
[Trait("Profile", "Icc")]
public class IccDataWriterNonPrimitivesTests public class IccDataWriterNonPrimitivesTests
{ {
[Theory] [Theory]
[MemberData(nameof(IccTestDataNonPrimitives.DateTimeTestData), MemberType = typeof(IccTestDataNonPrimitives))] [MemberData(nameof(IccTestDataNonPrimitives.DateTimeTestData), MemberType = typeof(IccTestDataNonPrimitives))]
public void WriteDateTime(byte[] expected, DateTime data) public void WriteDateTime(byte[] expected, DateTime data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteDateTime(data); writer.WriteDateTime(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -26,7 +27,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataNonPrimitives.VersionNumberTestData), MemberType = typeof(IccTestDataNonPrimitives))] [MemberData(nameof(IccTestDataNonPrimitives.VersionNumberTestData), MemberType = typeof(IccTestDataNonPrimitives))]
public void WriteVersionNumber(byte[] expected, IccVersion data) public void WriteVersionNumber(byte[] expected, IccVersion data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteVersionNumber(data); writer.WriteVersionNumber(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -38,7 +39,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataNonPrimitives.XyzNumberTestData), MemberType = typeof(IccTestDataNonPrimitives))] [MemberData(nameof(IccTestDataNonPrimitives.XyzNumberTestData), MemberType = typeof(IccTestDataNonPrimitives))]
public void WriteXyzNumber(byte[] expected, Vector3 data) public void WriteXyzNumber(byte[] expected, Vector3 data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteXyzNumber(data); writer.WriteXyzNumber(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -50,7 +51,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataNonPrimitives.ProfileIdTestData), MemberType = typeof(IccTestDataNonPrimitives))] [MemberData(nameof(IccTestDataNonPrimitives.ProfileIdTestData), MemberType = typeof(IccTestDataNonPrimitives))]
internal void WriteProfileId(byte[] expected, IccProfileId data) internal void WriteProfileId(byte[] expected, IccProfileId data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteProfileId(data); writer.WriteProfileId(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -62,7 +63,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataNonPrimitives.PositionNumberTestData), MemberType = typeof(IccTestDataNonPrimitives))] [MemberData(nameof(IccTestDataNonPrimitives.PositionNumberTestData), MemberType = typeof(IccTestDataNonPrimitives))]
internal void WritePositionNumber(byte[] expected, IccPositionNumber data) internal void WritePositionNumber(byte[] expected, IccPositionNumber data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WritePositionNumber(data); writer.WritePositionNumber(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -74,7 +75,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataNonPrimitives.ResponseNumberTestData), MemberType = typeof(IccTestDataNonPrimitives))] [MemberData(nameof(IccTestDataNonPrimitives.ResponseNumberTestData), MemberType = typeof(IccTestDataNonPrimitives))]
internal void WriteResponseNumber(byte[] expected, IccResponseNumber data) internal void WriteResponseNumber(byte[] expected, IccResponseNumber data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteResponseNumber(data); writer.WriteResponseNumber(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -86,7 +87,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataNonPrimitives.NamedColorTestData), MemberType = typeof(IccTestDataNonPrimitives))] [MemberData(nameof(IccTestDataNonPrimitives.NamedColorTestData), MemberType = typeof(IccTestDataNonPrimitives))]
internal void WriteNamedColor(byte[] expected, IccNamedColor data, uint coordinateCount) internal void WriteNamedColor(byte[] expected, IccNamedColor data, uint coordinateCount)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteNamedColor(data); writer.WriteNamedColor(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -98,7 +99,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataNonPrimitives.ProfileDescriptionWriteTestData), MemberType = typeof(IccTestDataNonPrimitives))] [MemberData(nameof(IccTestDataNonPrimitives.ProfileDescriptionWriteTestData), MemberType = typeof(IccTestDataNonPrimitives))]
internal void WriteProfileDescription(byte[] expected, IccProfileDescription data) internal void WriteProfileDescription(byte[] expected, IccProfileDescription data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteProfileDescription(data); writer.WriteProfileDescription(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -110,7 +111,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataNonPrimitives.ScreeningChannelTestData), MemberType = typeof(IccTestDataNonPrimitives))] [MemberData(nameof(IccTestDataNonPrimitives.ScreeningChannelTestData), MemberType = typeof(IccTestDataNonPrimitives))]
internal void WriteScreeningChannel(byte[] expected, IccScreeningChannel data) internal void WriteScreeningChannel(byte[] expected, IccScreeningChannel data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteScreeningChannel(data); writer.WriteScreeningChannel(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -118,7 +119,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
Assert.Equal(expected, output); Assert.Equal(expected, output);
} }
private IccDataWriter CreateWriter() private static IccDataWriter CreateWriter()
{ {
return new IccDataWriter(); return new IccDataWriter();
} }

23
tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterPrimitivesTests.cs

@ -5,15 +5,16 @@ using System;
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.ICC.DataWriter
{ {
[Trait("Profile", "Icc")]
public class IccDataWriterPrimitivesTests public class IccDataWriterPrimitivesTests
{ {
[Theory] [Theory]
[MemberData(nameof(IccTestDataPrimitives.AsciiWriteTestData), MemberType = typeof(IccTestDataPrimitives))] [MemberData(nameof(IccTestDataPrimitives.AsciiWriteTestData), MemberType = typeof(IccTestDataPrimitives))]
public void WriteAsciiString(byte[] expected, string data) public void WriteAsciiString(byte[] expected, string data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteAsciiString(data); writer.WriteAsciiString(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -25,7 +26,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataPrimitives.AsciiPaddingTestData), MemberType = typeof(IccTestDataPrimitives))] [MemberData(nameof(IccTestDataPrimitives.AsciiPaddingTestData), MemberType = typeof(IccTestDataPrimitives))]
public void WriteAsciiStringPadded(byte[] expected, int length, string data, bool ensureNullTerminator) public void WriteAsciiStringPadded(byte[] expected, int length, string data, bool ensureNullTerminator)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteAsciiString(data, length, ensureNullTerminator); writer.WriteAsciiString(data, length, ensureNullTerminator);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -36,7 +37,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[Fact] [Fact]
public void WriteAsciiStringWithNullWritesEmpty() public void WriteAsciiStringWithNullWritesEmpty()
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
int count = writer.WriteAsciiString(null); int count = writer.WriteAsciiString(null);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -48,7 +49,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[Fact] [Fact]
public void WriteAsciiStringWithNegativeLengthThrowsArgumentException() public void WriteAsciiStringWithNegativeLengthThrowsArgumentException()
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
Assert.Throws<ArgumentOutOfRangeException>(() => writer.WriteAsciiString("abcd", -1, false)); Assert.Throws<ArgumentOutOfRangeException>(() => writer.WriteAsciiString("abcd", -1, false));
} }
@ -56,7 +57,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[Fact] [Fact]
public void WriteUnicodeStringWithNullWritesEmpty() public void WriteUnicodeStringWithNullWritesEmpty()
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
int count = writer.WriteUnicodeString(null); int count = writer.WriteUnicodeString(null);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -69,7 +70,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataPrimitives.Fix16TestData), MemberType = typeof(IccTestDataPrimitives))] [MemberData(nameof(IccTestDataPrimitives.Fix16TestData), MemberType = typeof(IccTestDataPrimitives))]
public void WriteFix16(byte[] expected, float data) public void WriteFix16(byte[] expected, float data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteFix16(data); writer.WriteFix16(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -81,7 +82,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataPrimitives.UFix16TestData), MemberType = typeof(IccTestDataPrimitives))] [MemberData(nameof(IccTestDataPrimitives.UFix16TestData), MemberType = typeof(IccTestDataPrimitives))]
public void WriteUFix16(byte[] expected, float data) public void WriteUFix16(byte[] expected, float data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteUFix16(data); writer.WriteUFix16(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -93,7 +94,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataPrimitives.U1Fix15TestData), MemberType = typeof(IccTestDataPrimitives))] [MemberData(nameof(IccTestDataPrimitives.U1Fix15TestData), MemberType = typeof(IccTestDataPrimitives))]
public void WriteU1Fix15(byte[] expected, float data) public void WriteU1Fix15(byte[] expected, float data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteU1Fix15(data); writer.WriteU1Fix15(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -105,7 +106,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataPrimitives.UFix8TestData), MemberType = typeof(IccTestDataPrimitives))] [MemberData(nameof(IccTestDataPrimitives.UFix8TestData), MemberType = typeof(IccTestDataPrimitives))]
public void WriteUFix8(byte[] expected, float data) public void WriteUFix8(byte[] expected, float data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteUFix8(data); writer.WriteUFix8(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -113,7 +114,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
Assert.Equal(expected, output); Assert.Equal(expected, output);
} }
private IccDataWriter CreateWriter() private static IccDataWriter CreateWriter()
{ {
return new IccDataWriter(); return new IccDataWriter();
} }

71
tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterTagDataEntryTests.cs

@ -4,15 +4,16 @@
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.ICC.DataWriter
{ {
[Trait("Profile", "Icc")]
public class IccDataWriterTagDataEntryTests public class IccDataWriterTagDataEntryTests
{ {
[Theory] [Theory]
[MemberData(nameof(IccTestDataTagDataEntry.UnknownTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.UnknownTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteUnknownTagDataEntry(byte[] expected, IccUnknownTagDataEntry data, uint size) internal void WriteUnknownTagDataEntry(byte[] expected, IccUnknownTagDataEntry data, uint size)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteUnknownTagDataEntry(data); writer.WriteUnknownTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -24,7 +25,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.ChromaticityTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.ChromaticityTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteChromaticityTagDataEntry(byte[] expected, IccChromaticityTagDataEntry data) internal void WriteChromaticityTagDataEntry(byte[] expected, IccChromaticityTagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteChromaticityTagDataEntry(data); writer.WriteChromaticityTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -36,7 +37,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.ColorantOrderTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.ColorantOrderTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteColorantOrderTagDataEntry(byte[] expected, IccColorantOrderTagDataEntry data) internal void WriteColorantOrderTagDataEntry(byte[] expected, IccColorantOrderTagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteColorantOrderTagDataEntry(data); writer.WriteColorantOrderTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -48,7 +49,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.ColorantTableTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.ColorantTableTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteColorantTableTagDataEntry(byte[] expected, IccColorantTableTagDataEntry data) internal void WriteColorantTableTagDataEntry(byte[] expected, IccColorantTableTagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteColorantTableTagDataEntry(data); writer.WriteColorantTableTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -60,7 +61,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.CurveTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.CurveTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteCurveTagDataEntry(byte[] expected, IccCurveTagDataEntry data) internal void WriteCurveTagDataEntry(byte[] expected, IccCurveTagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteCurveTagDataEntry(data); writer.WriteCurveTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -72,7 +73,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.DataTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.DataTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteDataTagDataEntry(byte[] expected, IccDataTagDataEntry data, uint size) internal void WriteDataTagDataEntry(byte[] expected, IccDataTagDataEntry data, uint size)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteDataTagDataEntry(data); writer.WriteDataTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -84,7 +85,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.DateTimeTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.DateTimeTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteDateTimeTagDataEntry(byte[] expected, IccDateTimeTagDataEntry data) internal void WriteDateTimeTagDataEntry(byte[] expected, IccDateTimeTagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteDateTimeTagDataEntry(data); writer.WriteDateTimeTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -96,7 +97,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.Lut16TagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.Lut16TagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteLut16TagDataEntry(byte[] expected, IccLut16TagDataEntry data) internal void WriteLut16TagDataEntry(byte[] expected, IccLut16TagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteLut16TagDataEntry(data); writer.WriteLut16TagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -108,7 +109,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.Lut8TagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.Lut8TagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteLut8TagDataEntry(byte[] expected, IccLut8TagDataEntry data) internal void WriteLut8TagDataEntry(byte[] expected, IccLut8TagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteLut8TagDataEntry(data); writer.WriteLut8TagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -120,7 +121,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.LutAToBTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.LutAToBTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteLutAToBTagDataEntry(byte[] expected, IccLutAToBTagDataEntry data) internal void WriteLutAToBTagDataEntry(byte[] expected, IccLutAToBTagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteLutAtoBTagDataEntry(data); writer.WriteLutAtoBTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -132,7 +133,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.LutBToATagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.LutBToATagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteLutBToATagDataEntry(byte[] expected, IccLutBToATagDataEntry data) internal void WriteLutBToATagDataEntry(byte[] expected, IccLutBToATagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteLutBtoATagDataEntry(data); writer.WriteLutBtoATagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -144,7 +145,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.MeasurementTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.MeasurementTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteMeasurementTagDataEntry(byte[] expected, IccMeasurementTagDataEntry data) internal void WriteMeasurementTagDataEntry(byte[] expected, IccMeasurementTagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteMeasurementTagDataEntry(data); writer.WriteMeasurementTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -156,7 +157,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.MultiLocalizedUnicodeTagDataEntryTestData_Write), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.MultiLocalizedUnicodeTagDataEntryTestData_Write), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteMultiLocalizedUnicodeTagDataEntry(byte[] expected, IccMultiLocalizedUnicodeTagDataEntry data) internal void WriteMultiLocalizedUnicodeTagDataEntry(byte[] expected, IccMultiLocalizedUnicodeTagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteMultiLocalizedUnicodeTagDataEntry(data); writer.WriteMultiLocalizedUnicodeTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -168,7 +169,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.MultiProcessElementsTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.MultiProcessElementsTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteMultiProcessElementsTagDataEntry(byte[] expected, IccMultiProcessElementsTagDataEntry data) internal void WriteMultiProcessElementsTagDataEntry(byte[] expected, IccMultiProcessElementsTagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteMultiProcessElementsTagDataEntry(data); writer.WriteMultiProcessElementsTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -180,7 +181,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.NamedColor2TagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.NamedColor2TagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteNamedColor2TagDataEntry(byte[] expected, IccNamedColor2TagDataEntry data) internal void WriteNamedColor2TagDataEntry(byte[] expected, IccNamedColor2TagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteNamedColor2TagDataEntry(data); writer.WriteNamedColor2TagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -192,7 +193,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.ParametricCurveTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.ParametricCurveTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteParametricCurveTagDataEntry(byte[] expected, IccParametricCurveTagDataEntry data) internal void WriteParametricCurveTagDataEntry(byte[] expected, IccParametricCurveTagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteParametricCurveTagDataEntry(data); writer.WriteParametricCurveTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -204,7 +205,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.ProfileSequenceDescTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.ProfileSequenceDescTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteProfileSequenceDescTagDataEntry(byte[] expected, IccProfileSequenceDescTagDataEntry data) internal void WriteProfileSequenceDescTagDataEntry(byte[] expected, IccProfileSequenceDescTagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteProfileSequenceDescTagDataEntry(data); writer.WriteProfileSequenceDescTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -216,7 +217,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.ProfileSequenceIdentifierTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.ProfileSequenceIdentifierTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteProfileSequenceIdentifierTagDataEntry(byte[] expected, IccProfileSequenceIdentifierTagDataEntry data) internal void WriteProfileSequenceIdentifierTagDataEntry(byte[] expected, IccProfileSequenceIdentifierTagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteProfileSequenceIdentifierTagDataEntry(data); writer.WriteProfileSequenceIdentifierTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -228,7 +229,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.ResponseCurveSet16TagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.ResponseCurveSet16TagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteResponseCurveSet16TagDataEntry(byte[] expected, IccResponseCurveSet16TagDataEntry data) internal void WriteResponseCurveSet16TagDataEntry(byte[] expected, IccResponseCurveSet16TagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteResponseCurveSet16TagDataEntry(data); writer.WriteResponseCurveSet16TagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -240,7 +241,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.Fix16ArrayTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.Fix16ArrayTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteFix16ArrayTagDataEntry(byte[] expected, IccFix16ArrayTagDataEntry data, uint size) internal void WriteFix16ArrayTagDataEntry(byte[] expected, IccFix16ArrayTagDataEntry data, uint size)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteFix16ArrayTagDataEntry(data); writer.WriteFix16ArrayTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -252,7 +253,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.SignatureTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.SignatureTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteSignatureTagDataEntry(byte[] expected, IccSignatureTagDataEntry data) internal void WriteSignatureTagDataEntry(byte[] expected, IccSignatureTagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteSignatureTagDataEntry(data); writer.WriteSignatureTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -264,7 +265,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.TextTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.TextTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteTextTagDataEntry(byte[] expected, IccTextTagDataEntry data, uint size) internal void WriteTextTagDataEntry(byte[] expected, IccTextTagDataEntry data, uint size)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteTextTagDataEntry(data); writer.WriteTextTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -276,7 +277,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.UFix16ArrayTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.UFix16ArrayTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteUFix16ArrayTagDataEntry(byte[] expected, IccUFix16ArrayTagDataEntry data, uint size) internal void WriteUFix16ArrayTagDataEntry(byte[] expected, IccUFix16ArrayTagDataEntry data, uint size)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteUFix16ArrayTagDataEntry(data); writer.WriteUFix16ArrayTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -288,7 +289,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.UInt16ArrayTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.UInt16ArrayTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteUInt16ArrayTagDataEntry(byte[] expected, IccUInt16ArrayTagDataEntry data, uint size) internal void WriteUInt16ArrayTagDataEntry(byte[] expected, IccUInt16ArrayTagDataEntry data, uint size)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteUInt16ArrayTagDataEntry(data); writer.WriteUInt16ArrayTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -300,7 +301,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.UInt32ArrayTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.UInt32ArrayTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteUInt32ArrayTagDataEntry(byte[] expected, IccUInt32ArrayTagDataEntry data, uint size) internal void WriteUInt32ArrayTagDataEntry(byte[] expected, IccUInt32ArrayTagDataEntry data, uint size)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteUInt32ArrayTagDataEntry(data); writer.WriteUInt32ArrayTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -312,7 +313,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.UInt64ArrayTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.UInt64ArrayTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteUInt64ArrayTagDataEntry(byte[] expected, IccUInt64ArrayTagDataEntry data, uint size) internal void WriteUInt64ArrayTagDataEntry(byte[] expected, IccUInt64ArrayTagDataEntry data, uint size)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteUInt64ArrayTagDataEntry(data); writer.WriteUInt64ArrayTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -324,7 +325,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.UInt8ArrayTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.UInt8ArrayTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteUInt8ArrayTagDataEntry(byte[] expected, IccUInt8ArrayTagDataEntry data, uint size) internal void WriteUInt8ArrayTagDataEntry(byte[] expected, IccUInt8ArrayTagDataEntry data, uint size)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteUInt8ArrayTagDataEntry(data); writer.WriteUInt8ArrayTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -336,7 +337,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.ViewingConditionsTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.ViewingConditionsTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteViewingConditionsTagDataEntry(byte[] expected, IccViewingConditionsTagDataEntry data) internal void WriteViewingConditionsTagDataEntry(byte[] expected, IccViewingConditionsTagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteViewingConditionsTagDataEntry(data); writer.WriteViewingConditionsTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -348,7 +349,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.XYZTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.XYZTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteXyzTagDataEntry(byte[] expected, IccXyzTagDataEntry data, uint size) internal void WriteXyzTagDataEntry(byte[] expected, IccXyzTagDataEntry data, uint size)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteXyzTagDataEntry(data); writer.WriteXyzTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -360,7 +361,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.TextDescriptionTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.TextDescriptionTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteTextDescriptionTagDataEntry(byte[] expected, IccTextDescriptionTagDataEntry data) internal void WriteTextDescriptionTagDataEntry(byte[] expected, IccTextDescriptionTagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteTextDescriptionTagDataEntry(data); writer.WriteTextDescriptionTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -372,7 +373,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.CrdInfoTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.CrdInfoTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteCrdInfoTagDataEntry(byte[] expected, IccCrdInfoTagDataEntry data) internal void WriteCrdInfoTagDataEntry(byte[] expected, IccCrdInfoTagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteCrdInfoTagDataEntry(data); writer.WriteCrdInfoTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -384,7 +385,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.ScreeningTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.ScreeningTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteScreeningTagDataEntry(byte[] expected, IccScreeningTagDataEntry data) internal void WriteScreeningTagDataEntry(byte[] expected, IccScreeningTagDataEntry data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteScreeningTagDataEntry(data); writer.WriteScreeningTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -396,7 +397,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataTagDataEntry.UcrBgTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))] [MemberData(nameof(IccTestDataTagDataEntry.UcrBgTagDataEntryTestData), MemberType = typeof(IccTestDataTagDataEntry))]
internal void WriteUcrBgTagDataEntry(byte[] expected, IccUcrBgTagDataEntry data, uint size) internal void WriteUcrBgTagDataEntry(byte[] expected, IccUcrBgTagDataEntry data, uint size)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteUcrBgTagDataEntry(data); writer.WriteUcrBgTagDataEntry(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -404,7 +405,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
Assert.Equal(expected, output); Assert.Equal(expected, output);
} }
private IccDataWriter CreateWriter() private static IccDataWriter CreateWriter()
{ {
return new IccDataWriter(); return new IccDataWriter();
} }

21
tests/ImageSharp.Tests/Metadata/Profiles/ICC/DataWriter/IccDataWriterTests.cs

@ -4,14 +4,15 @@
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.ICC.DataWriter
{ {
[Trait("Profile", "Icc")]
public class IccDataWriterTests public class IccDataWriterTests
{ {
[Fact] [Fact]
public void WriteEmpty() public void WriteEmpty()
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteEmpty(4); writer.WriteEmpty(4);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -24,7 +25,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[InlineData(4, 4)] [InlineData(4, 4)]
public void WritePadding(int writePosition, int expectedLength) public void WritePadding(int writePosition, int expectedLength)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteEmpty(writePosition); writer.WriteEmpty(writePosition);
writer.WritePadding(); writer.WritePadding();
@ -37,7 +38,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataArray.UInt8TestData), MemberType = typeof(IccTestDataArray))] [MemberData(nameof(IccTestDataArray.UInt8TestData), MemberType = typeof(IccTestDataArray))]
public void WriteArrayUInt8(byte[] data, byte[] expected) public void WriteArrayUInt8(byte[] data, byte[] expected)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteArray(data); writer.WriteArray(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -49,7 +50,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataArray.UInt16TestData), MemberType = typeof(IccTestDataArray))] [MemberData(nameof(IccTestDataArray.UInt16TestData), MemberType = typeof(IccTestDataArray))]
public void WriteArrayUInt16(byte[] expected, ushort[] data) public void WriteArrayUInt16(byte[] expected, ushort[] data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteArray(data); writer.WriteArray(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -61,7 +62,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataArray.Int16TestData), MemberType = typeof(IccTestDataArray))] [MemberData(nameof(IccTestDataArray.Int16TestData), MemberType = typeof(IccTestDataArray))]
public void WriteArrayInt16(byte[] expected, short[] data) public void WriteArrayInt16(byte[] expected, short[] data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteArray(data); writer.WriteArray(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -73,7 +74,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataArray.UInt32TestData), MemberType = typeof(IccTestDataArray))] [MemberData(nameof(IccTestDataArray.UInt32TestData), MemberType = typeof(IccTestDataArray))]
public void WriteArrayUInt32(byte[] expected, uint[] data) public void WriteArrayUInt32(byte[] expected, uint[] data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteArray(data); writer.WriteArray(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -85,7 +86,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataArray.Int32TestData), MemberType = typeof(IccTestDataArray))] [MemberData(nameof(IccTestDataArray.Int32TestData), MemberType = typeof(IccTestDataArray))]
public void WriteArrayInt32(byte[] expected, int[] data) public void WriteArrayInt32(byte[] expected, int[] data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteArray(data); writer.WriteArray(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -97,7 +98,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
[MemberData(nameof(IccTestDataArray.UInt64TestData), MemberType = typeof(IccTestDataArray))] [MemberData(nameof(IccTestDataArray.UInt64TestData), MemberType = typeof(IccTestDataArray))]
public void WriteArrayUInt64(byte[] expected, ulong[] data) public void WriteArrayUInt64(byte[] expected, ulong[] data)
{ {
IccDataWriter writer = this.CreateWriter(); using IccDataWriter writer = CreateWriter();
writer.WriteArray(data); writer.WriteArray(data);
byte[] output = writer.GetData(); byte[] output = writer.GetData();
@ -105,7 +106,7 @@ namespace SixLabors.ImageSharp.Tests.Icc
Assert.Equal(expected, output); Assert.Equal(expected, output);
} }
private IccDataWriter CreateWriter() private static IccDataWriter CreateWriter()
{ {
return new IccDataWriter(); return new IccDataWriter();
} }

3
tests/ImageSharp.Tests/Metadata/Profiles/ICC/IccProfileTests.cs

@ -5,8 +5,9 @@ using System;
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.Icc
{ {
[Trait("Profile", "Icc")]
public class IccProfileTests public class IccProfileTests
{ {
[Theory] [Theory]

3
tests/ImageSharp.Tests/Metadata/Profiles/ICC/IccReaderTests.cs

@ -4,8 +4,9 @@
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.Icc
{ {
[Trait("Profile", "Icc")]
public class IccReaderTests public class IccReaderTests
{ {
[Fact] [Fact]

3
tests/ImageSharp.Tests/Metadata/Profiles/ICC/IccWriterTests.cs

@ -4,8 +4,9 @@
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.Icc
{ {
[Trait("Profile", "Icc")]
public class IccWriterTests public class IccWriterTests
{ {
[Fact] [Fact]

7
tests/ImageSharp.Tests/Metadata/Profiles/ICC/Various/IccProfileIdTests.cs

@ -1,11 +1,12 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Metadata.Profiles.Icc; using SixLabors.ImageSharp.Metadata.Profiles.Icc;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Icc namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.ICC.Various
{ {
[Trait("Profile", "Icc")]
public class IccProfileIdTests public class IccProfileIdTests
{ {
[Fact] [Fact]
@ -29,4 +30,4 @@ namespace SixLabors.ImageSharp.Tests.Icc
Assert.Equal(4u, id.Part4); Assert.Equal(4u, id.Part4);
} }
} }
} }

6
tests/ImageSharp.Tests/Metadata/Profiles/IPTC/IptcProfileTests.cs

@ -34,7 +34,7 @@ namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.IPTC
// arrange // arrange
var profile = new IptcProfile(); var profile = new IptcProfile();
var value = new string('s', tag.MaxLength() + 1); var value = new string('s', tag.MaxLength() + 1);
var expectedLength = tag.MaxLength(); int expectedLength = tag.MaxLength();
// act // act
profile.SetValue(tag, value); profile.SetValue(tag, value);
@ -51,7 +51,7 @@ namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.IPTC
// arrange // arrange
var profile = new IptcProfile(); var profile = new IptcProfile();
var value = new string('s', tag.MaxLength() + 1); var value = new string('s', tag.MaxLength() + 1);
var expectedLength = value.Length; int expectedLength = value.Length;
// act // act
profile.SetValue(tag, value, false); profile.SetValue(tag, value, false);
@ -228,7 +228,7 @@ namespace SixLabors.ImageSharp.Tests.Metadata.Profiles.IPTC
image.Metadata.IptcProfile.SetValue(IptcTag.Caption, expectedCaption); image.Metadata.IptcProfile.SetValue(IptcTag.Caption, expectedCaption);
// act // act
Image<Rgba32> reloadedImage = WriteAndReadJpeg(image); using Image<Rgba32> reloadedImage = WriteAndReadJpeg(image);
// assert // assert
IptcProfile actual = reloadedImage.Metadata.IptcProfile; IptcProfile actual = reloadedImage.Metadata.IptcProfile;

2
tests/ImageSharp.Tests/PixelFormats/PixelOperations/PixelOperationsTests.cs

@ -110,7 +110,7 @@ namespace SixLabors.ImageSharp.Tests.PixelFormats.PixelOperations
[Fact] [Fact]
public void PixelTypeInfoHasCorrectBitsPerPixel() public void PixelTypeInfoHasCorrectBitsPerPixel()
{ {
var bits = this.Operations.GetPixelTypeInfo().BitsPerPixel; int bits = this.Operations.GetPixelTypeInfo().BitsPerPixel;
Assert.Equal(Unsafe.SizeOf<TPixel>() * 8, bits); Assert.Equal(Unsafe.SizeOf<TPixel>() * 8, bits);
} }

6
tests/ImageSharp.Tests/Processing/BaseImageOperationsExtensionTest.cs

@ -1,7 +1,7 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using System.ComponentModel.DataAnnotations; using System;
using SixLabors.ImageSharp.Advanced; using SixLabors.ImageSharp.Advanced;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;
@ -10,7 +10,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing namespace SixLabors.ImageSharp.Tests.Processing
{ {
public abstract class BaseImageOperationsExtensionTest public abstract class BaseImageOperationsExtensionTest : IDisposable
{ {
protected readonly IImageProcessingContext operations; protected readonly IImageProcessingContext operations;
private readonly FakeImageOperationsProvider.FakeImageOperations<Rgba32> internalOperations; private readonly FakeImageOperationsProvider.FakeImageOperations<Rgba32> internalOperations;
@ -59,5 +59,7 @@ namespace SixLabors.ImageSharp.Tests.Processing
return Assert.IsType<T>(operation.GenericProcessor); return Assert.IsType<T>(operation.GenericProcessor);
} }
public void Dispose() => this.source?.Dispose();
} }
} }

9
tests/ImageSharp.Tests/Processing/Binarization/AdaptiveThresholdTests.cs

@ -9,13 +9,14 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Binarization namespace SixLabors.ImageSharp.Tests.Processing.Binarization
{ {
[Trait("Category", "Processors")]
public class AdaptiveThresholdTests : BaseImageOperationsExtensionTest public class AdaptiveThresholdTests : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]
public void AdaptiveThreshold_UsesDefaults_Works() public void AdaptiveThreshold_UsesDefaults_Works()
{ {
// arrange // arrange
var expectedThresholdLimit = .85f; float expectedThresholdLimit = .85f;
Color expectedUpper = Color.White; Color expectedUpper = Color.White;
Color expectedLower = Color.Black; Color expectedLower = Color.Black;
@ -33,7 +34,7 @@ namespace SixLabors.ImageSharp.Tests.Processing.Binarization
public void AdaptiveThreshold_SettingThresholdLimit_Works() public void AdaptiveThreshold_SettingThresholdLimit_Works()
{ {
// arrange // arrange
var expectedThresholdLimit = .65f; float expectedThresholdLimit = .65f;
// act // act
this.operations.AdaptiveThreshold(expectedThresholdLimit); this.operations.AdaptiveThreshold(expectedThresholdLimit);
@ -65,7 +66,7 @@ namespace SixLabors.ImageSharp.Tests.Processing.Binarization
public void AdaptiveThreshold_SettingUpperLowerWithThresholdLimit_Works() public void AdaptiveThreshold_SettingUpperLowerWithThresholdLimit_Works()
{ {
// arrange // arrange
var expectedThresholdLimit = .77f; float expectedThresholdLimit = .77f;
Color expectedUpper = Color.HotPink; Color expectedUpper = Color.HotPink;
Color expectedLower = Color.Yellow; Color expectedLower = Color.Yellow;
@ -83,7 +84,7 @@ namespace SixLabors.ImageSharp.Tests.Processing.Binarization
public void AdaptiveThreshold_SettingUpperLowerWithThresholdLimit_WithRectangle_Works() public void AdaptiveThreshold_SettingUpperLowerWithThresholdLimit_WithRectangle_Works()
{ {
// arrange // arrange
var expectedThresholdLimit = .77f; float expectedThresholdLimit = .77f;
Color expectedUpper = Color.HotPink; Color expectedUpper = Color.HotPink;
Color expectedLower = Color.Yellow; Color expectedLower = Color.Yellow;

1
tests/ImageSharp.Tests/Processing/Binarization/BinaryThresholdTest.cs

@ -8,6 +8,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Binarization namespace SixLabors.ImageSharp.Tests.Processing.Binarization
{ {
[Trait("Category", "Processors")]
public class BinaryThresholdTest : BaseImageOperationsExtensionTest public class BinaryThresholdTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]

1
tests/ImageSharp.Tests/Processing/Binarization/OrderedDitherFactoryTests.cs

@ -7,6 +7,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Binarization namespace SixLabors.ImageSharp.Tests.Processing.Binarization
{ {
[Trait("Category", "Processors")]
public class OrderedDitherFactoryTests public class OrderedDitherFactoryTests
{ {
#pragma warning disable SA1025 // Code should not contain multiple whitespace in a row #pragma warning disable SA1025 // Code should not contain multiple whitespace in a row

5
tests/ImageSharp.Tests/Processing/Convolution/BoxBlurTest.cs

@ -1,4 +1,4 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;
@ -7,6 +7,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Convolution namespace SixLabors.ImageSharp.Tests.Processing.Convolution
{ {
[Trait("Category", "Processors")]
public class BoxBlurTest : BaseImageOperationsExtensionTest public class BoxBlurTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]
@ -36,4 +37,4 @@ namespace SixLabors.ImageSharp.Tests.Processing.Convolution
Assert.Equal(5, processor.Radius); Assert.Equal(5, processor.Radius);
} }
} }
} }

1
tests/ImageSharp.Tests/Processing/Convolution/DetectEdgesTest.cs

@ -8,6 +8,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Convolution namespace SixLabors.ImageSharp.Tests.Processing.Convolution
{ {
[Trait("Category", "Processors")]
[SuppressMessage("StyleCop.CSharp.NamingRules", "SA1313:Parameter names should begin with lower-case letter", Justification = "OK. Used for TheoryData compatibility.")] [SuppressMessage("StyleCop.CSharp.NamingRules", "SA1313:Parameter names should begin with lower-case letter", Justification = "OK. Used for TheoryData compatibility.")]
public class DetectEdgesTest : BaseImageOperationsExtensionTest public class DetectEdgesTest : BaseImageOperationsExtensionTest
{ {

5
tests/ImageSharp.Tests/Processing/Convolution/GaussianBlurTest.cs

@ -1,4 +1,4 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;
@ -7,6 +7,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Convolution namespace SixLabors.ImageSharp.Tests.Processing.Convolution
{ {
[Trait("Category", "Processors")]
public class GaussianBlurTest : BaseImageOperationsExtensionTest public class GaussianBlurTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]
@ -36,4 +37,4 @@ namespace SixLabors.ImageSharp.Tests.Processing.Convolution
Assert.Equal(.6f, processor.Sigma); Assert.Equal(.6f, processor.Sigma);
} }
} }
} }

3
tests/ImageSharp.Tests/Processing/Convolution/GaussianSharpenTest.cs

@ -7,6 +7,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Convolution namespace SixLabors.ImageSharp.Tests.Processing.Convolution
{ {
[Trait("Category", "Processors")]
public class GaussianSharpenTest : BaseImageOperationsExtensionTest public class GaussianSharpenTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]
@ -36,4 +37,4 @@ namespace SixLabors.ImageSharp.Tests.Processing.Convolution
Assert.Equal(.6f, processor.Sigma); Assert.Equal(.6f, processor.Sigma);
} }
} }
} }

2
tests/ImageSharp.Tests/Processing/Convolution/Processors/LaplacianKernelFactoryTests.cs

@ -5,7 +5,7 @@ using System;
using SixLabors.ImageSharp.Processing.Processors.Convolution; using SixLabors.ImageSharp.Processing.Processors.Convolution;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Convolution namespace SixLabors.ImageSharp.Tests.Processing.Convolution.Processors
{ {
public class LaplacianKernelFactoryTests public class LaplacianKernelFactoryTests
{ {

3
tests/ImageSharp.Tests/Processing/Dithering/DitherTest.cs

@ -6,8 +6,9 @@ using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Processing.Processors.Dithering; using SixLabors.ImageSharp.Processing.Processors.Dithering;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Binarization namespace SixLabors.ImageSharp.Tests.Processing.Dithering
{ {
[Trait("Category", "Processors")]
public class DitherTest : BaseImageOperationsExtensionTest public class DitherTest : BaseImageOperationsExtensionTest
{ {
private class Assert : Xunit.Assert private class Assert : Xunit.Assert

2
tests/ImageSharp.Tests/Processing/Effects/BackgroundColorTest.cs

@ -3,11 +3,11 @@
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Processing.Processors.Overlays; using SixLabors.ImageSharp.Processing.Processors.Overlays;
using SixLabors.ImageSharp.Tests.TestUtilities;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Effects namespace SixLabors.ImageSharp.Tests.Processing.Effects
{ {
[Trait("Category", "Processors")]
public class BackgroundColorTest : BaseImageOperationsExtensionTest public class BackgroundColorTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]

1
tests/ImageSharp.Tests/Processing/Effects/OilPaintTest.cs

@ -7,6 +7,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Effects namespace SixLabors.ImageSharp.Tests.Processing.Effects
{ {
[Trait("Category", "Processors")]
public class OilPaintTest : BaseImageOperationsExtensionTest public class OilPaintTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]

3
tests/ImageSharp.Tests/Processing/Effects/PixelateTest.cs

@ -7,6 +7,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Effects namespace SixLabors.ImageSharp.Tests.Processing.Effects
{ {
[Trait("Category", "Processors")]
public class PixelateTest : BaseImageOperationsExtensionTest public class PixelateTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]
@ -36,4 +37,4 @@ namespace SixLabors.ImageSharp.Tests.Processing.Effects
Assert.Equal(23, processor.Size); Assert.Equal(23, processor.Size);
} }
} }
} }

1
tests/ImageSharp.Tests/Processing/Filters/BlackWhiteTest.cs

@ -7,6 +7,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Filters namespace SixLabors.ImageSharp.Tests.Processing.Filters
{ {
[Trait("Category", "Processors")]
public class BlackWhiteTest : BaseImageOperationsExtensionTest public class BlackWhiteTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]

3
tests/ImageSharp.Tests/Processing/Filters/BrightnessTest.cs

@ -6,8 +6,9 @@ using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Processing.Processors.Filters; using SixLabors.ImageSharp.Processing.Processors.Filters;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Effects namespace SixLabors.ImageSharp.Tests.Processing.Filters
{ {
[Trait("Category", "Processors")]
public class BrightnessTest : BaseImageOperationsExtensionTest public class BrightnessTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]

1
tests/ImageSharp.Tests/Processing/Filters/ColorBlindnessTest.cs

@ -12,6 +12,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Filters namespace SixLabors.ImageSharp.Tests.Processing.Filters
{ {
[Trait("Category", "Processors")]
public class ColorBlindnessTest : BaseImageOperationsExtensionTest public class ColorBlindnessTest : BaseImageOperationsExtensionTest
{ {
public static IEnumerable<object[]> TheoryData = new[] public static IEnumerable<object[]> TheoryData = new[]

8
tests/ImageSharp.Tests/Processing/Filters/ContrastTest.cs

@ -1,13 +1,13 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Processing.Processors.Filters;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Effects namespace SixLabors.ImageSharp.Tests.Processing.Filters
{ {
using SixLabors.ImageSharp.Processing; [Trait("Category", "Processors")]
using SixLabors.ImageSharp.Processing.Processors.Filters;
public class ContrastTest : BaseImageOperationsExtensionTest public class ContrastTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]

6
tests/ImageSharp.Tests/Processing/Filters/FilterTest.cs

@ -1,13 +1,13 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Processing.Processors.Filters;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Filters namespace SixLabors.ImageSharp.Tests.Processing.Filters
{ {
using SixLabors.ImageSharp.Processing; [Trait("Category", "Processors")]
using SixLabors.ImageSharp.Processing.Processors.Filters;
public class FilterTest : BaseImageOperationsExtensionTest public class FilterTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]

1
tests/ImageSharp.Tests/Processing/Filters/GrayscaleTest.cs

@ -12,6 +12,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Filters namespace SixLabors.ImageSharp.Tests.Processing.Filters
{ {
[Trait("Category", "Processors")]
public class GrayscaleTest : BaseImageOperationsExtensionTest public class GrayscaleTest : BaseImageOperationsExtensionTest
{ {
public static IEnumerable<object[]> ModeTheoryData = new[] public static IEnumerable<object[]> ModeTheoryData = new[]

5
tests/ImageSharp.Tests/Processing/Filters/HueTest.cs

@ -1,4 +1,4 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;
@ -8,6 +8,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Filters namespace SixLabors.ImageSharp.Tests.Processing.Filters
{ {
[Trait("Category", "Processors")]
public class HueTest : BaseImageOperationsExtensionTest public class HueTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]
@ -28,4 +29,4 @@ namespace SixLabors.ImageSharp.Tests.Processing.Filters
Assert.Equal(5f, processor.Degrees); Assert.Equal(5f, processor.Degrees);
} }
} }
} }

3
tests/ImageSharp.Tests/Processing/Filters/InvertTest.cs

@ -5,8 +5,9 @@ using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Processing.Processors.Filters; using SixLabors.ImageSharp.Processing.Processors.Filters;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Effects namespace SixLabors.ImageSharp.Tests.Processing.Filters
{ {
[Trait("Category", "Processors")]
public class InvertTest : BaseImageOperationsExtensionTest public class InvertTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]

1
tests/ImageSharp.Tests/Processing/Filters/KodachromeTest.cs

@ -7,6 +7,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Filters namespace SixLabors.ImageSharp.Tests.Processing.Filters
{ {
[Trait("Category", "Processors")]
public class KodachromeTest : BaseImageOperationsExtensionTest public class KodachromeTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]

3
tests/ImageSharp.Tests/Processing/Filters/LightnessTest.cs

@ -5,8 +5,9 @@ using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Processing.Processors.Filters; using SixLabors.ImageSharp.Processing.Processors.Filters;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Effects namespace SixLabors.ImageSharp.Tests.Processing.Filters
{ {
[Trait("Category", "Processors")]
public class LightnessTest : BaseImageOperationsExtensionTest public class LightnessTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]

10
tests/ImageSharp.Tests/Processing/Filters/LomographTest.cs

@ -1,15 +1,13 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Tests.Processing; using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Processing.Processors.Filters;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests namespace SixLabors.ImageSharp.Tests.Processing.Filters
{ {
using SixLabors.ImageSharp.Processing; [Trait("Category", "Processors")]
using SixLabors.ImageSharp.Processing.Processors.Filters;
public class LomographTest : BaseImageOperationsExtensionTest public class LomographTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]

7
tests/ImageSharp.Tests/Processing/Filters/OpacityTest.cs

@ -1,12 +1,13 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Processing.Processors.Filters; using SixLabors.ImageSharp.Processing.Processors.Filters;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Effects namespace SixLabors.ImageSharp.Tests.Processing.Filters
{ {
[Trait("Category", "Processors")]
public class OpacityTest : BaseImageOperationsExtensionTest public class OpacityTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]
@ -27,4 +28,4 @@ namespace SixLabors.ImageSharp.Tests.Processing.Effects
Assert.Equal(.6f, processor.Amount); Assert.Equal(.6f, processor.Amount);
} }
} }
} }

1
tests/ImageSharp.Tests/Processing/Filters/PolaroidTest.cs

@ -8,6 +8,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Filters namespace SixLabors.ImageSharp.Tests.Processing.Filters
{ {
[Trait("Category", "Processors")]
public class PolaroidTest : BaseImageOperationsExtensionTest public class PolaroidTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]

5
tests/ImageSharp.Tests/Processing/Filters/SaturateTest.cs

@ -1,4 +1,4 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;
@ -7,6 +7,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Filters namespace SixLabors.ImageSharp.Tests.Processing.Filters
{ {
[Trait("Category", "Processors")]
public class SaturateTest : BaseImageOperationsExtensionTest public class SaturateTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]
@ -27,4 +28,4 @@ namespace SixLabors.ImageSharp.Tests.Processing.Filters
Assert.Equal(5, processor.Amount); Assert.Equal(5, processor.Amount);
} }
} }
} }

1
tests/ImageSharp.Tests/Processing/Filters/SepiaTest.cs

@ -7,6 +7,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Filters namespace SixLabors.ImageSharp.Tests.Processing.Filters
{ {
[Trait("Category", "Processors")]
public class SepiaTest : BaseImageOperationsExtensionTest public class SepiaTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]

2
tests/ImageSharp.Tests/Processing/ImageOperationTests.cs

@ -171,7 +171,7 @@ namespace SixLabors.ImageSharp.Tests.Processing
private static void CheckThrowsCorrectObjectDisposedException(Action action) private static void CheckThrowsCorrectObjectDisposedException(Action action)
{ {
var ex = Assert.Throws<ObjectDisposedException>(action); ObjectDisposedException ex = Assert.Throws<ObjectDisposedException>(action);
Assert.Equal(ExpectedExceptionMessage, ex.Message); Assert.Equal(ExpectedExceptionMessage, ex.Message);
} }
} }

5
tests/ImageSharp.Tests/Processing/ImageProcessingContextTests.cs

@ -1,6 +1,7 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using System;
using Moq; using Moq;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;
@ -12,7 +13,7 @@ namespace SixLabors.ImageSharp.Tests.Processing
/// <summary> /// <summary>
/// Contains test cases for default <see cref="IImageProcessingContext"/> implementation. /// Contains test cases for default <see cref="IImageProcessingContext"/> implementation.
/// </summary> /// </summary>
public class ImageProcessingContextTests public class ImageProcessingContextTests : IDisposable
{ {
private readonly Image image = new Image<Rgba32>(10, 10); private readonly Image image = new Image<Rgba32>(10, 10);
@ -195,5 +196,7 @@ namespace SixLabors.ImageSharp.Tests.Processing
.Setup(p => p.CreatePixelSpecificProcessor(Configuration.Default, It.IsAny<Image<Rgba32>>(), It.IsAny<Rectangle>())) .Setup(p => p.CreatePixelSpecificProcessor(Configuration.Default, It.IsAny<Image<Rgba32>>(), It.IsAny<Rectangle>()))
.Returns(this.cloningProcessorImpl.Object); .Returns(this.cloningProcessorImpl.Object);
} }
public void Dispose() => this.image?.Dispose();
} }
} }

2
tests/ImageSharp.Tests/Processing/IntegralImageTests.cs

@ -6,7 +6,7 @@ using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Transforms namespace SixLabors.ImageSharp.Tests.Processing
{ {
public class IntegralImageTests : BaseImageOperationsExtensionTest public class IntegralImageTests : BaseImageOperationsExtensionTest
{ {

21
tests/ImageSharp.Tests/Processing/Normalization/HistogramEqualizationTests.cs

@ -10,6 +10,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Normalization namespace SixLabors.ImageSharp.Tests.Processing.Normalization
{ {
// ReSharper disable InconsistentNaming // ReSharper disable InconsistentNaming
[Trait("Category", "Processors")]
public class HistogramEqualizationTests public class HistogramEqualizationTests
{ {
private static readonly ImageComparer ValidatorComparer = ImageComparer.TolerantPercentage(0.0456F); private static readonly ImageComparer ValidatorComparer = ImageComparer.TolerantPercentage(0.0456F);
@ -17,10 +18,10 @@ namespace SixLabors.ImageSharp.Tests.Processing.Normalization
[Theory] [Theory]
[InlineData(256)] [InlineData(256)]
[InlineData(65536)] [InlineData(65536)]
public void GlobalHistogramEqualization_WithDifferentLumanceLevels(int luminanceLevels) public void GlobalHistogramEqualization_WithDifferentLuminanceLevels(int luminanceLevels)
{ {
// Arrange // Arrange
var pixels = new byte[] byte[] pixels =
{ {
52, 55, 61, 59, 70, 61, 76, 61, 52, 55, 61, 59, 70, 61, 76, 61,
62, 59, 55, 104, 94, 85, 59, 71, 62, 59, 55, 104, 94, 85, 59, 71,
@ -43,7 +44,7 @@ namespace SixLabors.ImageSharp.Tests.Processing.Normalization
} }
} }
var expected = new byte[] byte[] expected =
{ {
0, 12, 53, 32, 146, 53, 174, 53, 0, 12, 53, 32, 146, 53, 174, 53,
57, 32, 12, 227, 219, 202, 32, 154, 57, 32, 12, 227, 219, 202, 32, 154,
@ -149,13 +150,13 @@ namespace SixLabors.ImageSharp.Tests.Processing.Normalization
using (Image<TPixel> image = provider.GetImage()) using (Image<TPixel> image = provider.GetImage())
{ {
var options = new HistogramEqualizationOptions() var options = new HistogramEqualizationOptions()
{ {
Method = HistogramEqualizationMethod.AdaptiveTileInterpolation, Method = HistogramEqualizationMethod.AdaptiveTileInterpolation,
LuminanceLevels = 256, LuminanceLevels = 256,
ClipHistogram = true, ClipHistogram = true,
ClipLimit = 5, ClipLimit = 5,
NumberOfTiles = 10 NumberOfTiles = 10
}; };
image.Mutate(x => x.HistogramEqualization(options)); image.Mutate(x => x.HistogramEqualization(options));
image.DebugSave(provider); image.DebugSave(provider);
image.CompareToReferenceOutput(ValidatorComparer, provider); image.CompareToReferenceOutput(ValidatorComparer, provider);

3
tests/ImageSharp.Tests/Processing/Overlays/GlowTest.cs

@ -1,14 +1,13 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Processing.Processors.Overlays; using SixLabors.ImageSharp.Processing.Processors.Overlays;
using SixLabors.ImageSharp.Tests.TestUtilities;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Overlays namespace SixLabors.ImageSharp.Tests.Processing.Overlays
{ {
[Trait("Category", "Processors")]
public class GlowTest : BaseImageOperationsExtensionTest public class GlowTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]

2
tests/ImageSharp.Tests/Processing/Overlays/VignetteTest.cs

@ -3,11 +3,11 @@
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Processing.Processors.Overlays; using SixLabors.ImageSharp.Processing.Processors.Overlays;
using SixLabors.ImageSharp.Tests.TestUtilities;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Overlays namespace SixLabors.ImageSharp.Tests.Processing.Overlays
{ {
[Trait("Category", "Processors")]
public class VignetteTest : BaseImageOperationsExtensionTest public class VignetteTest : BaseImageOperationsExtensionTest
{ {
[Fact] [Fact]

1
tests/ImageSharp.Tests/Processing/Processors/Binarization/BinaryDitherTests.cs

@ -11,6 +11,7 @@ using Xunit;
// ReSharper disable InconsistentNaming // ReSharper disable InconsistentNaming
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Binarization namespace SixLabors.ImageSharp.Tests.Processing.Processors.Binarization
{ {
[Trait("Category", "Processors")]
public class BinaryDitherTests public class BinaryDitherTests
{ {
public static readonly string[] CommonTestImages = public static readonly string[] CommonTestImages =

2
tests/ImageSharp.Tests/Processing/Processors/Binarization/BinaryThresholdTest.cs

@ -4,12 +4,12 @@
using System.Globalization; using System.Globalization;
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Processing.Processors.Binarization;
using SixLabors.ImageSharp.Tests.TestUtilities.ImageComparison; using SixLabors.ImageSharp.Tests.TestUtilities.ImageComparison;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Binarization namespace SixLabors.ImageSharp.Tests.Processing.Processors.Binarization
{ {
[Trait("Category", "Processors")]
public class BinaryThresholdTest public class BinaryThresholdTest
{ {
public static readonly TheoryData<float> BinaryThresholdValues public static readonly TheoryData<float> BinaryThresholdValues

1
tests/ImageSharp.Tests/Processing/Processors/Convolution/BokehBlurTest.cs

@ -16,6 +16,7 @@ using Xunit.Abstractions;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Convolution namespace SixLabors.ImageSharp.Tests.Processing.Processors.Convolution
{ {
[Trait("Category", "Processors")]
public class BokehBlurTest public class BokehBlurTest
{ {
private static readonly string Components10x2 = @" private static readonly string Components10x2 = @"

6
tests/ImageSharp.Tests/Processing/Processors/Convolution/BoxBlurTest.cs

@ -1,10 +1,12 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;
using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Convolution namespace SixLabors.ImageSharp.Tests.Processing.Processors.Convolution
{ {
[Trait("Category", "Processors")]
[GroupOutput("Convolution")] [GroupOutput("Convolution")]
public class BoxBlurTest : Basic1ParameterConvolutionTests public class BoxBlurTest : Basic1ParameterConvolutionTests
{ {
@ -13,4 +15,4 @@ namespace SixLabors.ImageSharp.Tests.Processing.Processors.Convolution
protected override void Apply(IImageProcessingContext ctx, int value, Rectangle bounds) => protected override void Apply(IImageProcessingContext ctx, int value, Rectangle bounds) =>
ctx.BoxBlur(value, bounds); ctx.BoxBlur(value, bounds);
} }
} }

1
tests/ImageSharp.Tests/Processing/Processors/Convolution/DetectEdgesTest.cs

@ -11,6 +11,7 @@ using Xunit;
// ReSharper disable InconsistentNaming // ReSharper disable InconsistentNaming
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Convolution namespace SixLabors.ImageSharp.Tests.Processing.Processors.Convolution
{ {
[Trait("Category", "Processors")]
[GroupOutput("Convolution")] [GroupOutput("Convolution")]
[SuppressMessage("StyleCop.CSharp.NamingRules", "SA1313:Parameter names should begin with lower-case letter", Justification = "OK. Used for TheoryData compatibility.")] [SuppressMessage("StyleCop.CSharp.NamingRules", "SA1313:Parameter names should begin with lower-case letter", Justification = "OK. Used for TheoryData compatibility.")]
public class DetectEdgesTest public class DetectEdgesTest

6
tests/ImageSharp.Tests/Processing/Processors/Convolution/GaussianBlurTest.cs

@ -1,10 +1,12 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;
using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Convolution namespace SixLabors.ImageSharp.Tests.Processing.Processors.Convolution
{ {
[Trait("Category", "Processors")]
[GroupOutput("Convolution")] [GroupOutput("Convolution")]
public class GaussianBlurTest : Basic1ParameterConvolutionTests public class GaussianBlurTest : Basic1ParameterConvolutionTests
{ {
@ -13,4 +15,4 @@ namespace SixLabors.ImageSharp.Tests.Processing.Processors.Convolution
protected override void Apply(IImageProcessingContext ctx, int value, Rectangle bounds) => protected override void Apply(IImageProcessingContext ctx, int value, Rectangle bounds) =>
ctx.GaussianBlur(value, bounds); ctx.GaussianBlur(value, bounds);
} }
} }

4
tests/ImageSharp.Tests/Processing/Processors/Convolution/GaussianSharpenTest.cs

@ -2,9 +2,11 @@
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Processing; using SixLabors.ImageSharp.Processing;
using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Convolution namespace SixLabors.ImageSharp.Tests.Processing.Processors.Convolution
{ {
[Trait("Category", "Processors")]
[GroupOutput("Convolution")] [GroupOutput("Convolution")]
public class GaussianSharpenTest : Basic1ParameterConvolutionTests public class GaussianSharpenTest : Basic1ParameterConvolutionTests
{ {
@ -13,4 +15,4 @@ namespace SixLabors.ImageSharp.Tests.Processing.Processors.Convolution
protected override void Apply(IImageProcessingContext ctx, int value, Rectangle bounds) => protected override void Apply(IImageProcessingContext ctx, int value, Rectangle bounds) =>
ctx.GaussianSharpen(value, bounds); ctx.GaussianSharpen(value, bounds);
} }
} }

3
tests/ImageSharp.Tests/Processing/Processors/Dithering/DitherTests.cs

@ -8,8 +8,9 @@ using SixLabors.ImageSharp.Tests.TestUtilities.ImageComparison;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Binarization namespace SixLabors.ImageSharp.Tests.Processing.Processors.Dithering
{ {
[Trait("Category", "Processors")]
public class DitherTests public class DitherTests
{ {
public const PixelTypes CommonNonDefaultPixelTypes = public const PixelTypes CommonNonDefaultPixelTypes =

1
tests/ImageSharp.Tests/Processing/Processors/Effects/BackgroundColorTest.cs

@ -8,6 +8,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Effects namespace SixLabors.ImageSharp.Tests.Processing.Processors.Effects
{ {
[Trait("Category", "Processors")]
[GroupOutput("Effects")] [GroupOutput("Effects")]
public class BackgroundColorTest public class BackgroundColorTest
{ {

1
tests/ImageSharp.Tests/Processing/Processors/Effects/OilPaintTest.cs

@ -8,6 +8,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Effects namespace SixLabors.ImageSharp.Tests.Processing.Processors.Effects
{ {
[Trait("Category", "Processors")]
[GroupOutput("Effects")] [GroupOutput("Effects")]
public class OilPaintTest public class OilPaintTest
{ {

1
tests/ImageSharp.Tests/Processing/Processors/Effects/PixelShaderTest.cs

@ -11,6 +11,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Effects namespace SixLabors.ImageSharp.Tests.Processing.Processors.Effects
{ {
[Trait("Category", "Processors")]
[GroupOutput("Effects")] [GroupOutput("Effects")]
public class PixelShaderTest public class PixelShaderTest
{ {

3
tests/ImageSharp.Tests/Processing/Processors/Effects/PixelateTest.cs

@ -8,6 +8,7 @@ using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Effects namespace SixLabors.ImageSharp.Tests.Processing.Processors.Effects
{ {
[Trait("Category", "Processors")]
[GroupOutput("Effects")] [GroupOutput("Effects")]
public class PixelateTest public class PixelateTest
{ {
@ -30,4 +31,4 @@ namespace SixLabors.ImageSharp.Tests.Processing.Processors.Effects
provider.RunRectangleConstrainedValidatingProcessorTest((x, rect) => x.Pixelate(value, rect), value); provider.RunRectangleConstrainedValidatingProcessorTest((x, rect) => x.Pixelate(value, rect), value);
} }
} }
} }

11
tests/ImageSharp.Tests/Processing/Processors/Filters/BlackWhiteTest.cs

@ -1,15 +1,14 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Tests.TestUtilities.ImageComparison;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters
{ {
using SixLabors.ImageSharp.Processing; [Trait("Category", "Processors")]
using SixLabors.ImageSharp.Tests.TestUtilities.ImageComparison;
[GroupOutput("Filters")] [GroupOutput("Filters")]
public class BlackWhiteTest public class BlackWhiteTest
{ {
@ -21,4 +20,4 @@ namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters
provider.RunValidatingProcessorTest(ctx => ctx.BlackWhite(), comparer: ImageComparer.TolerantPercentage(0.002f)); provider.RunValidatingProcessorTest(ctx => ctx.BlackWhite(), comparer: ImageComparer.TolerantPercentage(0.002f));
} }
} }
} }

9
tests/ImageSharp.Tests/Processing/Processors/Filters/BrightnessTest.cs

@ -2,14 +2,13 @@
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Tests.TestUtilities.ImageComparison;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Effects namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters
{ {
using SixLabors.ImageSharp.Processing; [Trait("Category", "Processors")]
using SixLabors.ImageSharp.Tests.TestUtilities.ImageComparison;
[GroupOutput("Filters")] [GroupOutput("Filters")]
public class BrightnessTest public class BrightnessTest
{ {

11
tests/ImageSharp.Tests/Processing/Processors/Filters/ColorBlindnessTest.cs

@ -1,15 +1,14 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Tests.TestUtilities.ImageComparison;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters
{ {
using SixLabors.ImageSharp.Processing; [Trait("Category", "Processors")]
using SixLabors.ImageSharp.Tests.TestUtilities.ImageComparison;
[GroupOutput("Filters")] [GroupOutput("Filters")]
public class ColorBlindnessTest public class ColorBlindnessTest
{ {
@ -33,4 +32,4 @@ namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters
public void ApplyColorBlindnessFilter<TPixel>(TestImageProvider<TPixel> provider, ColorBlindnessMode colorBlindness) public void ApplyColorBlindnessFilter<TPixel>(TestImageProvider<TPixel> provider, ColorBlindnessMode colorBlindness)
where TPixel : unmanaged, IPixel<TPixel> => provider.RunValidatingProcessorTest(x => x.ColorBlindness(colorBlindness), colorBlindness.ToString(), this.imageComparer); where TPixel : unmanaged, IPixel<TPixel> => provider.RunValidatingProcessorTest(x => x.ColorBlindness(colorBlindness), colorBlindness.ToString(), this.imageComparer);
} }
} }

7
tests/ImageSharp.Tests/Processing/Processors/Filters/ContrastTest.cs

@ -2,13 +2,12 @@
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Effects namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters
{ {
using SixLabors.ImageSharp.Processing; [Trait("Category", "Processors")]
[GroupOutput("Filters")] [GroupOutput("Filters")]
public class ContrastTest public class ContrastTest
{ {

5
tests/ImageSharp.Tests/Processing/Processors/Filters/FilterTest.cs

@ -2,14 +2,13 @@
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Tests.TestUtilities.ImageComparison; using SixLabors.ImageSharp.Tests.TestUtilities.ImageComparison;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters
{ {
using SixLabors.ImageSharp; [Trait("Category", "Processors")]
using SixLabors.ImageSharp.Processing;
[GroupOutput("Filters")] [GroupOutput("Filters")]
public class FilterTest public class FilterTest
{ {

5
tests/ImageSharp.Tests/Processing/Processors/Filters/GrayscaleTest.cs

@ -2,13 +2,12 @@
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters
{ {
using SixLabors.ImageSharp.Processing; [Trait("Category", "Processors")]
[GroupOutput("Filters")] [GroupOutput("Filters")]
public class GrayscaleTest public class GrayscaleTest
{ {

5
tests/ImageSharp.Tests/Processing/Processors/Filters/HueTest.cs

@ -2,13 +2,12 @@
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters
{ {
using SixLabors.ImageSharp.Processing; [Trait("Category", "Processors")]
[GroupOutput("Filters")] [GroupOutput("Filters")]
public class HueTest public class HueTest
{ {

11
tests/ImageSharp.Tests/Processing/Processors/Filters/InvertTest.cs

@ -1,14 +1,13 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Effects namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters
{ {
using SixLabors.ImageSharp.Processing; [Trait("Category", "Processors")]
[GroupOutput("Filters")] [GroupOutput("Filters")]
public class InvertTest public class InvertTest
{ {
@ -20,4 +19,4 @@ namespace SixLabors.ImageSharp.Tests.Processing.Processors.Effects
provider.RunValidatingProcessorTest(x => x.Invert()); provider.RunValidatingProcessorTest(x => x.Invert());
} }
} }
} }

9
tests/ImageSharp.Tests/Processing/Processors/Filters/KodachromeTest.cs

@ -1,14 +1,13 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters
{ {
using SixLabors.ImageSharp.Processing; [Trait("Category", "Processors")]
[GroupOutput("Filters")] [GroupOutput("Filters")]
public class KodachromeTest public class KodachromeTest
{ {
@ -20,4 +19,4 @@ namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters
provider.RunValidatingProcessorTest(x => x.Kodachrome()); provider.RunValidatingProcessorTest(x => x.Kodachrome());
} }
} }
} }

9
tests/ImageSharp.Tests/Processing/Processors/Filters/LightnessTest.cs

@ -2,14 +2,13 @@
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Tests.TestUtilities.ImageComparison;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Effects namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters
{ {
using SixLabors.ImageSharp.Processing; [Trait("Category", "Processors")]
using SixLabors.ImageSharp.Tests.TestUtilities.ImageComparison;
[GroupOutput("Filters")] [GroupOutput("Filters")]
public class LightnessTest public class LightnessTest
{ {

9
tests/ImageSharp.Tests/Processing/Processors/Filters/LomographTest.cs

@ -1,14 +1,13 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters
{ {
using SixLabors.ImageSharp.Processing; [Trait("Category", "Processors")]
[GroupOutput("Filters")] [GroupOutput("Filters")]
public class LomographTest public class LomographTest
{ {
@ -20,4 +19,4 @@ namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters
provider.RunValidatingProcessorTest(x => x.Lomograph()); provider.RunValidatingProcessorTest(x => x.Lomograph());
} }
} }
} }

7
tests/ImageSharp.Tests/Processing/Processors/Filters/OpacityTest.cs

@ -2,13 +2,12 @@
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Effects namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters
{ {
using SixLabors.ImageSharp.Processing; [Trait("Category", "Processors")]
[GroupOutput("Filters")] [GroupOutput("Filters")]
public class OpacityTest public class OpacityTest
{ {

9
tests/ImageSharp.Tests/Processing/Processors/Filters/PolaroidTest.cs

@ -1,14 +1,13 @@
// Copyright (c) Six Labors. // Copyright (c) Six Labors.
// Licensed under the Apache License, Version 2.0. // Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;
using Xunit; using Xunit;
namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters
{ {
using SixLabors.ImageSharp.Processing; [Trait("Category", "Processors")]
[GroupOutput("Filters")] [GroupOutput("Filters")]
public class PolaroidTest public class PolaroidTest
{ {
@ -20,4 +19,4 @@ namespace SixLabors.ImageSharp.Tests.Processing.Processors.Filters
provider.RunValidatingProcessorTest(x => x.Polaroid()); provider.RunValidatingProcessorTest(x => x.Polaroid());
} }
} }
} }

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save