Browse Source

Remove not-needed validate method and tests

pull/3113/head
James Jackson-South 3 months ago
parent
commit
656f53d052
  1. 35
      src/ImageSharp/Advanced/ParallelRowIterator.cs
  2. 36
      tests/ImageSharp.Tests/Helpers/ParallelRowIteratorTests.cs

35
src/ImageSharp/Advanced/ParallelRowIterator.cs

@ -44,7 +44,6 @@ public static partial class ParallelRowIterator
where T : struct, IRowOperation
{
ValidateRectangle(rectangle);
ValidateSettings(parallelSettings);
int top = rectangle.Top;
int bottom = rectangle.Bottom;
@ -109,7 +108,6 @@ public static partial class ParallelRowIterator
where TBuffer : unmanaged
{
ValidateRectangle(rectangle);
ValidateSettings(parallelSettings);
int top = rectangle.Top;
int bottom = rectangle.Bottom;
@ -174,7 +172,6 @@ public static partial class ParallelRowIterator
where T : struct, IRowIntervalOperation
{
ValidateRectangle(rectangle);
ValidateSettings(parallelSettings);
int top = rectangle.Top;
int bottom = rectangle.Bottom;
@ -236,7 +233,6 @@ public static partial class ParallelRowIterator
where TBuffer : unmanaged
{
ValidateRectangle(rectangle);
ValidateSettings(parallelSettings);
int top = rectangle.Top;
int bottom = rectangle.Bottom;
@ -315,35 +311,4 @@ public static partial class ParallelRowIterator
0,
$"{nameof(rectangle)}.{nameof(rectangle.Height)}");
}
/// <summary>
/// Validates the supplied <see cref="ParallelExecutionSettings"/>.
/// </summary>
/// <param name="parallelSettings">The execution settings.</param>
/// <exception cref="ArgumentOutOfRangeException">
/// Thrown when <see cref="ParallelExecutionSettings.MaxDegreeOfParallelism"/> or
/// <see cref="ParallelExecutionSettings.MinimumPixelsProcessedPerTask"/> is invalid.
/// </exception>
/// <exception cref="ArgumentNullException">
/// Thrown when <see cref="ParallelExecutionSettings.MemoryAllocator"/> is null.
/// This also guards the public <see cref="ParallelExecutionSettings"/> default value, which bypasses constructor validation.
/// </exception>
private static void ValidateSettings(in ParallelExecutionSettings parallelSettings)
{
// ParallelExecutionSettings is a public struct, so callers can pass default and bypass constructor validation.
if (parallelSettings.MaxDegreeOfParallelism is 0 or < -1)
{
throw new ArgumentOutOfRangeException(
$"{nameof(parallelSettings)}.{nameof(ParallelExecutionSettings.MaxDegreeOfParallelism)}");
}
Guard.MustBeGreaterThan(
parallelSettings.MinimumPixelsProcessedPerTask,
0,
$"{nameof(parallelSettings)}.{nameof(ParallelExecutionSettings.MinimumPixelsProcessedPerTask)}");
Guard.NotNull(
parallelSettings.MemoryAllocator,
$"{nameof(parallelSettings)}.{nameof(ParallelExecutionSettings.MemoryAllocator)}");
}
}

36
tests/ImageSharp.Tests/Helpers/ParallelRowIteratorTests.cs

@ -224,24 +224,6 @@ public class ParallelRowIteratorTests
Assert.Equal(Enumerable.Repeat(1, rectangle.Height), actualData);
}
[Fact]
public void IterateRowsWithTempBuffer_DefaultSettingsRequireInitialization()
{
ParallelExecutionSettings parallelSettings = default;
Rectangle rect = new(0, 0, 10, 10);
void RowAction(int y, Span<Rgba32> memory)
{
}
TestRowOperation<Rgba32> operation = new(RowAction);
ArgumentOutOfRangeException ex = Assert.Throws<ArgumentOutOfRangeException>(
() => ParallelRowIterator.IterateRows<TestRowOperation<Rgba32>, Rgba32>(rect, in parallelSettings, in operation));
Assert.Contains(nameof(ParallelExecutionSettings.MaxDegreeOfParallelism), ex.Message);
}
public static TheoryData<int, int, int, int, int, int, int> IterateRows_WithEffectiveMinimumPixelsLimit_Data =
new()
{
@ -367,24 +349,6 @@ public class ParallelRowIteratorTests
Assert.Equal(Enumerable.Repeat(1, rectangle.Height), actualData);
}
[Fact]
public void IterateRows_DefaultSettingsRequireInitialization()
{
ParallelExecutionSettings parallelSettings = default;
Rectangle rect = new(0, 0, 10, 10);
void RowAction(int y)
{
}
TestRowActionOperation operation = new(RowAction);
ArgumentOutOfRangeException ex = Assert.Throws<ArgumentOutOfRangeException>(
() => ParallelRowIterator.IterateRows(rect, in parallelSettings, in operation));
Assert.Contains(nameof(ParallelExecutionSettings.MaxDegreeOfParallelism), ex.Message);
}
public static readonly TheoryData<int, int, int, int, int, int, int> IterateRectangularBuffer_Data =
new()
{

Loading…
Cancel
Save