Ejemplo n.º 1
0
        public void CloneIsDeep()
        {
            // arrange
            Vector2[]    controlPoints = { new(1.0f), new(2.0f) };
            bool[]       onCurves      = { true, false };
            ushort[]     endPoints     = { 1, 2, 3 };
            var          bounds        = new Bounds(1.0f, 2.0f, 3.0f, 4.0f);
            var          glyphVector   = new GlyphVector(controlPoints, onCurves, endPoints, bounds, Array.Empty <byte>());
            GlyphOutline outline       = glyphVector.GetOutline();

            // act
            GlyphOutline clone = GlyphVector.DeepClone(glyphVector).GetOutline();

            // assert
            Assert.False(outline.ControlPoints.Equals(clone.ControlPoints));
            Assert.True(outline.ControlPoints.Span.SequenceEqual(clone.ControlPoints.Span));
            Assert.False(outline.OnCurves.Equals(clone.OnCurves));
            Assert.True(outline.OnCurves.Span.SequenceEqual(clone.OnCurves.Span));
            Assert.False(outline.EndPoints.Equals(clone.EndPoints));
            Assert.True(outline.EndPoints.Span.SequenceEqual(clone.EndPoints.Span));
        }