public void Basic() { Foo[] array = Foo.CreateArray(3); // Act: BufferSpan <Foo> span = new BufferSpan <Foo>(array); // Assert: Assert.Equal(array, span.Array); Assert.Equal(3, span.Length); Assert.SameRefs(ref array[0], ref span.DangerousGetPinnableReference()); }
public void WithStartAndLength() { Foo[] array = Foo.CreateArray(10); int start = 2; int length = 3; // Act: BufferSpan <Foo> span = new BufferSpan <Foo>(array, start, length); // Assert: Assert.Equal(array, span.Array); Assert.Equal(start, span.Start); Assert.SameRefs(ref array[start], ref span.DangerousGetPinnableReference()); Assert.Equal(length, span.Length); }
public void StartOnly() { Foo[] array = Foo.CreateArray(5); int start0 = 2; int start1 = 2; int totalOffset = start0 + start1; BufferSpan <Foo> span = new BufferSpan <Foo>(array, start0); // Act: span = span.Slice(start1); // Assert: Assert.Equal(array, span.Array); Assert.Equal(totalOffset, span.Start); Assert.SameRefs(ref array[totalOffset], ref span.DangerousGetPinnableReference()); Assert.Equal(array.Length - totalOffset, span.Length); }