Exemple #1
0
        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));
        }
Exemple #2
0
        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));
            }
        }