59 lines
1.4 KiB
C#
59 lines
1.4 KiB
C#
|
|
namespace QWERTYkez.Mensura.Tests;
|
|||
|
|
|
|||
|
|
public class Pow3ExtensionsTests
|
|||
|
|
{
|
|||
|
|
[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));
|
|||
|
|
}
|
|||
|
|
}
|