diff --git a/src/SixLabors.Core/Helpers/DebugGuard.cs b/src/SixLabors.Core/Helpers/DebugGuard.cs
index e836a1bba4..4a2ed9473b 100644
--- a/src/SixLabors.Core/Helpers/DebugGuard.cs
+++ b/src/SixLabors.Core/Helpers/DebugGuard.cs
@@ -174,7 +174,7 @@ namespace SixLabors
{
if (target.Length != other.Length)
{
- throw new ArgumentException("Span-s must be the same size!", parameterName);
+ throw new ArgumentException("Span-s must be the same size.", parameterName);
}
}
@@ -194,7 +194,7 @@ namespace SixLabors
{
if (target.Length != other.Length)
{
- throw new ArgumentException("Span-s must be the same size!", parameterName);
+ throw new ArgumentException("Span-s must be the same size.", parameterName);
}
}
@@ -214,7 +214,7 @@ namespace SixLabors
{
if (target.Length < minSpan.Length)
{
- throw new ArgumentException($"Span-s must be at least of length {minSpan.Length}!", parameterName);
+ throw new ArgumentException($"Span-s must be at least of length {minSpan.Length}.", parameterName);
}
}
@@ -234,7 +234,7 @@ namespace SixLabors
{
if (target.Length < minSpan.Length)
{
- throw new ArgumentException($"Span-s must be at least of length {minSpan.Length}!", parameterName);
+ throw new ArgumentException($"Span-s must be at least of length {minSpan.Length}.", parameterName);
}
}
diff --git a/src/SixLabors.Core/Helpers/Guard.cs b/src/SixLabors.Core/Helpers/Guard.cs
index 4a738d8b36..ea92a85c02 100644
--- a/src/SixLabors.Core/Helpers/Guard.cs
+++ b/src/SixLabors.Core/Helpers/Guard.cs
@@ -227,6 +227,24 @@ namespace SixLabors
}
}
+ ///
+ /// Verifies, that the `target` span has the length of 'minLength', or longer.
+ ///
+ /// The element type of the spans
+ /// The target span.
+ /// The minimum length.
+ /// The name of the parameter that is to be checked.
+ ///
+ /// The length of is less than .
+ ///
+ public static void MustBeSizedAtLeast(T[] value, int minLength, string parameterName)
+ {
+ if (value.Length < minLength)
+ {
+ throw new ArgumentException($"The size must be at least {minLength}.", parameterName);
+ }
+ }
+
///
/// Verifies, that the `target` span has the length of 'minLength', or longer.
///
diff --git a/tests/SixLabors.Core.Tests/Helpers/DebugGuardTests.cs b/tests/SixLabors.Core.Tests/Helpers/DebugGuardTests.cs
index f8b15f3fd5..e1d8b1f220 100644
--- a/tests/SixLabors.Core.Tests/Helpers/DebugGuardTests.cs
+++ b/tests/SixLabors.Core.Tests/Helpers/DebugGuardTests.cs
@@ -43,7 +43,6 @@ namespace SixLabors.Helpers.Tests
});
}
-
[Fact]
public void MustBeLessThan_IsLess_ThrowsNoException()
{
@@ -163,13 +162,13 @@ namespace SixLabors.Helpers.Tests
[Theory]
[InlineData(new int[] { 1, 2 }, 1)]
[InlineData(new int[] { 1, 2 }, 2)]
- public void MustBeSizedAtLeast_LengthIsGreaterOrEqual_ThrowsNoException(int[] value, int minLength)
+ public void MustBeSizedAtLeast_Array_LengthIsGreaterOrEqual_ThrowsNoException(int[] value, int minLength)
{
DebugGuard.MustBeSizedAtLeast(value, minLength, "myParamName");
}
[Fact]
- public void MustBeSizedAtLeast_LengthIsLess_ThrowsException()
+ public void MustBeSizedAtLeast_Array_LengthIsLess_ThrowsException()
{
var exception = Assert.Throws(() =>
{
@@ -181,7 +180,7 @@ namespace SixLabors.Helpers.Tests
}
[Fact]
- public void ReadOnlySpan_MustBeSizedAtLeast_LengthIsLess_ThrowsException()
+ public void MustBeSizedAtLeast_ReadOnlySpan_LengthIsLess_ThrowsException()
{
var exception = Assert.Throws(() =>
{
@@ -189,11 +188,11 @@ namespace SixLabors.Helpers.Tests
});
Assert.Equal("myParamName", exception.ParamName);
- Assert.Contains($"Span-s must be at least of length 3!", exception.Message);
+ Assert.Contains($"Span-s must be at least of length 3.", exception.Message);
}
[Fact]
- public void Span_MustBeSizedAtLeast_LengthIsLess_ThrowsException()
+ public void MustBeSizedAtLeast_Span_LengthIsLess_ThrowsException()
{
var exception = Assert.Throws(() =>
{
@@ -201,12 +200,11 @@ namespace SixLabors.Helpers.Tests
});
Assert.Equal("myParamName", exception.ParamName);
- Assert.Contains($"Span-s must be at least of length 3!", exception.Message);
+ Assert.Contains($"Span-s must be at least of length 3.", exception.Message);
}
-
[Fact]
- public void ReadOnlySpan_MustBeSameSized_LengthIsLess_ThrowsException()
+ public void MustBeSameSized_ReadOnlySpan_LengthIsLess_ThrowsException()
{
var exception = Assert.Throws(() =>
{
@@ -214,11 +212,11 @@ namespace SixLabors.Helpers.Tests
});
Assert.Equal("myParamName", exception.ParamName);
- Assert.Contains($"Span-s must be the same size!", exception.Message);
+ Assert.Contains($"Span-s must be the same size.", exception.Message);
}
[Fact]
- public void Span_MustBeSameSized_LengthIsLess_ThrowsException()
+ public void MustBeSameSized_Span_LengthIsLess_ThrowsException()
{
var exception = Assert.Throws(() =>
{
@@ -226,13 +224,13 @@ namespace SixLabors.Helpers.Tests
});
Assert.Equal("myParamName", exception.ParamName);
- Assert.Contains($"Span-s must be the same size!", exception.Message);
+ Assert.Contains($"Span-s must be the same size.", exception.Message);
}
[Theory]
[InlineData(2, 2)]
[InlineData(4, 3)]
- public void ReadOnlySpan_MustBeSizedAtLeast_DoesNotThowException(int leftSize, int rightSize)
+ public void MustBeSizedAtLeast_ReadOnlySpan_DoesNotThowException(int leftSize, int rightSize)
{
DebugGuard.MustBeSizedAtLeast(new ReadOnlySpan(new int[leftSize]), new ReadOnlySpan(new int[rightSize]), "myParamName");
}
@@ -240,19 +238,19 @@ namespace SixLabors.Helpers.Tests
[Theory]
[InlineData(2, 2)]
[InlineData(4, 3)]
- public void Span_MustBeSizedAtLeast_DoesNotThowException(int leftSize, int rightSize)
+ public void MustBeSizedAtLeast_Span_DoesNotThowException(int leftSize, int rightSize)
{
DebugGuard.MustBeSizedAtLeast(new Span(new int[leftSize]), new Span(new int[rightSize]), "myParamName");
}
[Fact]
- public void ReadOnlySpan_MustBeSameSized_LengthIsEqual_DoesNotThrowException()
+ public void MustBeSameSized_ReadOnlySpan_LengthIsEqual_DoesNotThrowException()
{
DebugGuard.MustBeSameSized(new ReadOnlySpan(new int[2]), new ReadOnlySpan(new int[2]), "myParamName");
}
[Fact]
- public void Span_MustBeSameSized_LengthIsEqual_DoesNotThrowException()
+ public void MustBeSameSized_Span_LengthIsEqual_DoesNotThrowException()
{
DebugGuard.MustBeSameSized(new Span(new int[2]), new Span(new int[2]), "myParamName");
}
diff --git a/tests/SixLabors.Core.Tests/Helpers/GuardTests.cs b/tests/SixLabors.Core.Tests/Helpers/GuardTests.cs
index c91ebbcd6f..b7f859f358 100644
--- a/tests/SixLabors.Core.Tests/Helpers/GuardTests.cs
+++ b/tests/SixLabors.Core.Tests/Helpers/GuardTests.cs
@@ -264,15 +264,31 @@ namespace SixLabors.Helpers.Tests
}
[Theory]
- [InlineData(new int[] { 1, 2 }, 1)]
- [InlineData(new int[] { 1, 2 }, 2)]
- public void MustBeSizedAtLeast_LengthIsGreaterOrEqual_ThrowsNoException(int[] value, int minLength)
+ [InlineData(2, 1)]
+ [InlineData(2, 2)]
+ public void MustBeSizedAtLeast_Array_LengthIsGreaterOrEqual_ThrowsNoException(int valueLength, int minLength)
+ {
+ Guard.MustBeSizedAtLeast(new int[valueLength], minLength, "myParamName");
+ }
+
+ [Theory]
+ [InlineData(2, 1)]
+ [InlineData(2, 2)]
+ public void MustBeSizedAtLeast_Span_LengthIsGreaterOrEqual_ThrowsNoException(int valueLength, int minLength)
+ {
+ Guard.MustBeSizedAtLeast(new Span(new int[valueLength]), minLength, "myParamName");
+ }
+
+ [Theory]
+ [InlineData(2, 1)]
+ [InlineData(2, 2)]
+ public void MustBeSizedAtLeast_ReadOnlySpan_LengthIsGreaterOrEqual_ThrowsNoException(int valueLength, int minLength)
{
- Guard.MustBeSizedAtLeast(value, minLength, "myParamName");
+ Guard.MustBeSizedAtLeast(new ReadOnlySpan(new int[valueLength]), minLength, "myParamName");
}
[Fact]
- public void MustBeSizedAtLeast_LengthIsLess_ThrowsException()
+ public void MustBeSizedAtLeast_Array_LengthIsLess_ThrowsException()
{
var exception = Assert.Throws(() =>
{
@@ -282,5 +298,29 @@ namespace SixLabors.Helpers.Tests
Assert.Equal("myParamName", exception.ParamName);
Assert.True(exception.Message.Contains($"The size must be at least 3."));
}
+
+ [Fact]
+ public void MustBeSizedAtLeast_Span_LengthIsLess_ThrowsException()
+ {
+ var exception = Assert.Throws(() =>
+ {
+ Guard.MustBeSizedAtLeast(new Span(new int[2]), 3, "myParamName");
+ });
+
+ Assert.Equal("myParamName", exception.ParamName);
+ Assert.True(exception.Message.Contains($"The size must be at least 3."));
+ }
+
+ [Fact]
+ public void MustBeSizedAtLeast_ReadOnlySpan_LengthIsLess_ThrowsException()
+ {
+ var exception = Assert.Throws(() =>
+ {
+ Guard.MustBeSizedAtLeast(new ReadOnlySpan(new int[2]), 3, "myParamName");
+ });
+
+ Assert.Equal("myParamName", exception.ParamName);
+ Assert.True(exception.Message.Contains($"The size must be at least 3."));
+ }
}
}