public void CopyToWorks()
 {
     var arr = Enumerable.Range(0, 10).ToArray();
     var c = new FastCollection<int>();
     c.CopyTo(arr, 0);
     Assert.True(arr.SequenceEqual(Enumerable.Range(0, 10)));
     c.Add(5);
     c.CopyTo(arr, 0);
     Assert.Equal(5, arr[0]);
     Assert.True(arr.Skip(1).SequenceEqual(Enumerable.Range(1, 9)));
     c.CopyTo(arr, 1);
     Assert.Equal(5, arr[0]);
     Assert.Equal(5, arr[1]);
     Assert.True(arr.Skip(2).SequenceEqual(Enumerable.Range(2, 8)));
     c.Add(6);
     c.CopyTo(arr, 0);
     Assert.Equal(5, arr[0]);
     Assert.Equal(6, arr[1]);
     Assert.True(arr.Skip(2).SequenceEqual(Enumerable.Range(2, 8)));
     c.CopyTo(arr, 1);
     Assert.Equal(5, arr[0]);
     Assert.Equal(5, arr[1]);
     Assert.Equal(6, arr[2]);
     Assert.True(arr.Skip(3).SequenceEqual(Enumerable.Range(3, 7)));
 }