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(); // 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(); // 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 { new(2), new(5) }; // Act var result = source.Pow3(); // 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(() => source.Pow3(dest)); } }