diff --git a/src/Numerics/LinearAlgebra/Double/DenseVector.cs b/src/Numerics/LinearAlgebra/Double/DenseVector.cs index 1936c557..a7a801c2 100644 --- a/src/Numerics/LinearAlgebra/Double/DenseVector.cs +++ b/src/Numerics/LinearAlgebra/Double/DenseVector.cs @@ -289,7 +289,7 @@ namespace MathNet.Numerics.LinearAlgebra.Double CommonParallel.For( 0, this.Data.Length, - index => this[index] = this.Data[index]); + index => target[index] = this.Data[index]); } else { diff --git a/src/UnitTests/LinearAlgebraTests/Double/DenseVectorTests.cs b/src/UnitTests/LinearAlgebraTests/Double/DenseVectorTests.cs index 7a71be16..5095d79b 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/DenseVectorTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/DenseVectorTests.cs @@ -252,5 +252,24 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double Assert.AreEqual(_data[i] / 2.0, vector[i]); } } + + [Test] + [MultipleAsserts] + public void CanCopyToNonDenseVector() + { + var vector = new DenseVector(_data); + var other = new UserDefinedVector(_data.Length); + vector.CopyTo(other, 1,1,2); + + Assert.AreEqual(vector[1], other[1]); + Assert.AreEqual(vector[2], other[2]); + vector.CopyTo(other); + + for(var i = 0; i < vector.Count; i++) + { + Assert.AreEqual(vector[i], other[i]); + } + + } } }