tests
This commit is contained in:
59
QWERTYkez.Mensura.Tests/CollectionsRootOfCubeExtensions.cs
Normal file
59
QWERTYkez.Mensura.Tests/CollectionsRootOfCubeExtensions.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
namespace QWERTYkez.Mensura.Tests;
|
||||
|
||||
public class CollectionsRootOfCubeExtensions
|
||||
{
|
||||
[Fact]
|
||||
public void Cbrt_Array_CalculatesCorrectly()
|
||||
{
|
||||
Length[] source = [new(4), new(9), new(16), new(25)];
|
||||
// Ожидаем корень, но важно: Math.Sqrt(4) = 2.
|
||||
// Если ваш код делает специфичные преобразования, адаптируйте Assert.
|
||||
var result = source.Cbrt<Length, Length>();
|
||||
|
||||
Assert.Equal(2, result[0]._Value);
|
||||
Assert.Equal(3, result[1]._Value);
|
||||
Assert.Equal(4, result[2]._Value);
|
||||
Assert.Equal(5, result[3]._Value);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Cbrt_NullableArray_HandlesNulls()
|
||||
{
|
||||
Length?[] source = [new(16), null, new(36)];
|
||||
var result = source.Cbrt<Length, Length>();
|
||||
|
||||
Assert.Equal(4, result[0]?._Value);
|
||||
Assert.Null(result[1]);
|
||||
Assert.Equal(6, result[2]?._Value);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Cbrt_DestinationTooShort_ThrowsArgumentException()
|
||||
{
|
||||
Length[] source = [new(1), new(4)];
|
||||
Length[] dest = new Length[1];
|
||||
|
||||
Assert.Throws<ArgumentException>(() => source.Cbrt(dest));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Cbrt_List_WorksCorrectly()
|
||||
{
|
||||
var list = new List<Length> { new(1), new(4) };
|
||||
var result = list.Cbrt<Length, Length>();
|
||||
|
||||
Assert.Equal(2, result.Count);
|
||||
Assert.Equal(1, result[0]._Value);
|
||||
Assert.Equal(2, result[1]._Value);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Cbrt_IEnumerable_NoExtraAllocations()
|
||||
{
|
||||
IEnumerable<Length> source = new HashSet<Length> { new(9), new(81) };
|
||||
var result = source.Cbrt<Length, Length>().ToList();
|
||||
|
||||
Assert.Contains(result, x => x._Value == 3);
|
||||
Assert.Contains(result, x => x._Value == 9);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user