public virtual void TestNewEmptyClone(ConcatVectorTest.DenseTestVector d1) { ConcatVector empty = new ConcatVector(d1.vector.GetNumberOfComponents()); ConcatVector emptyClone = d1.vector.NewEmptyClone(); NUnit.Framework.Assert.IsTrue(empty.ValueEquals(emptyClone, 1.0e-5)); }
public virtual void TestValueEquals(ConcatVectorTest.DenseTestVector d1) { ConcatVector clone = d1.vector.DeepClone(); NUnit.Framework.Assert.IsTrue(clone.ValueEquals(d1.vector, 1.0e-5)); NUnit.Framework.Assert.IsTrue(d1.vector.ValueEquals(clone, 1.0e-5)); NUnit.Framework.Assert.IsTrue(d1.vector.ValueEquals(d1.vector, 1.0e-5)); NUnit.Framework.Assert.IsTrue(clone.ValueEquals(clone, 1.0e-5)); Random r = new Random(); int size = clone.GetNumberOfComponents(); if (size > 0) { clone.AddVectorInPlace(d1.vector, 1.0); // If the clone is a 0 vector bool isZero = true; foreach (double[] arr in d1.values) { foreach (double d in arr) { if (d != 0) { isZero = false; } } } if (isZero) { NUnit.Framework.Assert.IsTrue(clone.ValueEquals(d1.vector, 1.0e-5)); NUnit.Framework.Assert.IsTrue(d1.vector.ValueEquals(clone, 1.0e-5)); } else { NUnit.Framework.Assert.IsFalse(clone.ValueEquals(d1.vector, 1.0e-5)); NUnit.Framework.Assert.IsFalse(d1.vector.ValueEquals(clone, 1.0e-5)); } NUnit.Framework.Assert.IsTrue(d1.vector.ValueEquals(d1.vector, 1.0e-5)); NUnit.Framework.Assert.IsTrue(clone.ValueEquals(clone, 1.0e-5)); // refresh the clone clone = d1.vector.DeepClone(); int tinker = r.NextInt(size); d1.vector.SetDenseComponent(tinker, new double[] { 0, 0, 1 }); clone.SetSparseComponent(tinker, 2, 1); NUnit.Framework.Assert.IsTrue(d1.vector.ValueEquals(clone, 1.0e-5)); NUnit.Framework.Assert.IsTrue(clone.ValueEquals(d1.vector, 1.0e-5)); } }