コード例 #1
0
    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")
                    );
    }