public void Constructor_CorrectlyInstantiates_Instance()
        {
            var element = new VertexElement(
                0,
                VertexElementUsage.Position,
                VertexAttribPointerType.Float,
                2,
                false
            );

            element.ShouldSatisfyAllConditions(
                () => element.Offset.ShouldBe(0),
                () => element.Usage.ShouldBe(VertexElementUsage.Position),
                () => element.PointerType.ShouldBe(VertexAttribPointerType.Float),
                () => element.NumberOfComponents.ShouldBe(2),
                () => element.Normalised.ShouldBe(false)
            );
        }
 private void AssertVertexAttribPointerInvocation(VertexElement element, int location)
 {
     adapter.Verify(a => a.VertexAttribPointer(
         location,
         element.NumberOfComponents,
         element.PointerType,
         element.Normalised,
         vertexDeclaration.Stride,
         element.Offset
     ));
 }
 private void AssertVertexElementProperties(
     VertexElement element,
     int offset,
     VertexAttribPointerType type,
     int numberOfComponents,
     bool normalised)
 {
     element.ShouldSatisfyAllConditions(
         () => element.Offset.ShouldBe(offset),
         () => element.PointerType.ShouldBe(type),
         () => element.NumberOfComponents.ShouldBe(numberOfComponents),
         () => element.Normalised.ShouldBe(normalised)
     );
 }
 public VertexDeclaration(int stride, VertexElement[] elements)
 {
     Stride = stride;
     this.elements = elements;
 }