public static void CtorUnmanagedReadOnlySpanNUIntTest() { using var array = new UnmanagedArray <int>(3); array[0] = 1; array[1] = 2; array[2] = 3; using (var valueList = new UnmanagedValueList <int>(array.AsSpan())) { Assert.That(() => valueList, Has.Property("Capacity").EqualTo((nuint)3) .And.Count.EqualTo((nuint)3) ); } using (var valueList = new UnmanagedValueList <int>(array.AsSpan(), 2)) { Assert.That(() => valueList, Has.Property("Capacity").EqualTo((nuint)3) .And.Count.EqualTo((nuint)3) ); } Assert.That(() => new UnmanagedValueList <int>(array.AsSpan(), 3), Throws.InstanceOf <ArgumentOutOfRangeException>() .And.Property("ActualValue").EqualTo((nuint)3) .And.Property("ParamName").EqualTo("alignment") ); using (var valueList = new UnmanagedValueList <int>(UnmanagedArray <int> .Empty.AsSpan())) { Assert.That(() => valueList, Has.Property("Capacity").EqualTo((nuint)0) .And.Count.EqualTo((nuint)0) ); } using (var valueList = new UnmanagedValueList <int>(UnmanagedArray <int> .Empty.AsSpan(), 2)) { Assert.That(() => valueList, Has.Property("Capacity").EqualTo((nuint)0) .And.Count.EqualTo((nuint)0) ); } Assert.That(() => new UnmanagedValueList <int>(UnmanagedArray <int> .Empty.AsSpan(), 3), Throws.InstanceOf <ArgumentOutOfRangeException>() .And.Property("ActualValue").EqualTo((nuint)3) .And.Property("ParamName").EqualTo("alignment") ); using (var valueList = new UnmanagedValueList <int>(new UnmanagedArray <int>().AsSpan())) { Assert.That(() => valueList, Has.Property("Capacity").EqualTo((nuint)0) .And.Count.EqualTo((nuint)0) ); } using (var valueList = new UnmanagedValueList <int>(new UnmanagedArray <int>().AsSpan(), 2)) { Assert.That(() => valueList, Has.Property("Capacity").EqualTo((nuint)0) .And.Count.EqualTo((nuint)0) ); } Assert.That(() => new UnmanagedValueList <int>(new UnmanagedArray <int>().AsSpan(), 3), Throws.InstanceOf <ArgumentOutOfRangeException>() .And.Property("ActualValue").EqualTo((nuint)3) .And.Property("ParamName").EqualTo("alignment") ); }