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)); }