From 3420d739952b2cd8ad052f74287eeeab1109d5c0 Mon Sep 17 00:00:00 2001 From: Marcus Cuda Date: Tue, 1 Jun 2010 20:02:05 +0300 Subject: [PATCH] Fixed bug pointed out by Andriy Bratiychuk --- .../LinearAlgebra/Double/DenseVector.cs | 2 +- .../Double/DenseVectorTests.cs | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) 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]); + } + + } } }