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