tests
This commit is contained in:
75
QWERTYkez.Mensura.Tests/CollectionsRootOfSquareExtensions.cs
Normal file
75
QWERTYkez.Mensura.Tests/CollectionsRootOfSquareExtensions.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
namespace QWERTYkez.Mensura.Tests;
|
||||
|
||||
public class CollectionsRootOfSquareExtensions
|
||||
{
|
||||
[Fact]
|
||||
public void Sqrt_Array_ShouldCalculateCorrectly()
|
||||
{
|
||||
// Arrange
|
||||
Length[] source = [new(4), new(9), new(16)];
|
||||
|
||||
// Act
|
||||
Length[] result = source.Sqrt<Length, Length>();
|
||||
|
||||
// Assert
|
||||
Assert.Equal(2, result[0]._Value);
|
||||
Assert.Equal(3, result[1]._Value);
|
||||
Assert.Equal(4, result[2]._Value);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Sqrt_NullableArray_ShouldHandleNulls()
|
||||
{
|
||||
// Arrange
|
||||
Length?[] source = [new(25), null, new(100)];
|
||||
|
||||
// Act
|
||||
Length?[] result = source.Sqrt<Length, Length>();
|
||||
|
||||
// Assert
|
||||
Assert.Equal(5, result[0]?._Value);
|
||||
Assert.Null(result[1]);
|
||||
Assert.Equal(10, result[2]?._Value);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Sqrt_List_ShouldReturnCorrectList()
|
||||
{
|
||||
// Arrange
|
||||
var source = new List<Length> { new(1), new(4), new(9) };
|
||||
|
||||
// Act
|
||||
var result = source.Sqrt<Length, Length>();
|
||||
|
||||
// Assert
|
||||
Assert.Equal(3, result.Count);
|
||||
Assert.Equal(1, result[0]._Value);
|
||||
Assert.Equal(2, result[1]._Value);
|
||||
Assert.Equal(3, result[2]._Value);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Sqrt_DestinationTooShort_ShouldThrowArgumentException()
|
||||
{
|
||||
// Arrange
|
||||
Length[] source = [new(4), new(9)];
|
||||
Length[] dest = new Length[1]; // Слишком мало
|
||||
|
||||
// Act & Assert
|
||||
Assert.Throws<ArgumentException>(() => source.AsSpan().Sqrt(dest.AsSpan()));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Sqrt_IEnumerable_ShouldWorkWithGenericCollection()
|
||||
{
|
||||
// Arrange
|
||||
IEnumerable<Length> source = new HashSet<Length> { new(16), new(64) };
|
||||
|
||||
// Act
|
||||
var result = source.Sqrt<Length, Length>().ToList();
|
||||
|
||||
// Assert
|
||||
Assert.Contains(result, x => x._Value == 4);
|
||||
Assert.Contains(result, x => x._Value == 8);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user