This commit is contained in:
2026-06-12 23:34:00 +07:00
parent 790a5f8e10
commit d7e9bb7b5b
27 changed files with 1167 additions and 1020 deletions

View File

@@ -0,0 +1,59 @@
namespace QWERTYkez.Mensura.Tests;
public class CollectionsPow3ExtensionsTest
{
[Fact]
public void Pow3_Array_CalculatesCorrectly()
{
// Arrange: 2^3=8, 3^3=27, 4^3=64
Length[] source = [new(2), new(3), new(4)];
// Act
Length[] result = source.Pow3<Length, Length>();
// Assert
Assert.Equal(8, result[0]._Value);
Assert.Equal(27, result[1]._Value);
Assert.Equal(64, result[2]._Value);
}
[Fact]
public void Pow3_NullableArray_HandlesNulls()
{
// Arrange
Length?[] source = [new(5), null, new(10)];
// Act
Length?[] result = source.Pow3<Length, Length>();
// Assert
Assert.Equal(125, result[0]?._Value);
Assert.Null(result[1]);
Assert.Equal(1000, result[2]?._Value);
}
[Fact]
public void Pow3_List_ReturnsCorrectResult()
{
// Arrange
var source = new List<Length> { new(2), new(5) };
// Act
var result = source.Pow3<Length, Length>();
// Assert
Assert.Equal(8, result[0]._Value);
Assert.Equal(125, result[1]._Value);
}
[Fact]
public void Pow3_DestinationTooShort_ThrowsArgumentException()
{
// Arrange
Length[] source = [new(2), new(3)];
Length[] dest = new Length[1];
// Act & Assert
Assert.Throws<ArgumentException>(() => source.Pow3(dest));
}
}