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