Esempio n. 1
0
        public void TestProduct()
        {
            Assert.AreEqual(0, MathX.Product(null), "Product ");
            Assert.AreEqual(0, MathX.Product(new double[] { }), "Product ");
            Assert.AreEqual(0, MathX.Product(new double[] { 1, 0 }), "Product ");

            Assert.AreEqual(1, MathX.Product(new double[] { 1 }), "Product ");
            Assert.AreEqual(1, MathX.Product(new double[] { 1, 1 }), "Product ");
            Assert.AreEqual(10, MathX.Product(new double[] { 10, 1 }), "Product ");
            Assert.AreEqual(-2, MathX.Product(new double[] { 2, -1 }), "Product ");
            Assert.AreEqual(99988000209999d, MathX.Product(new double[] { 99999, 99999, 9999 }), "Product ");


            double[] d = new double[100];
            d[0]  = 1.1; d[1] = 2.1; d[2] = 3.1; d[3] = 4.1;
            d[4]  = 5.1; d[5] = 6.1; d[6] = 7.1; d[7] = 8.1;
            d[8]  = 9.1; d[9] = 10.1; d[10] = 11.1; d[11] = 12.1;
            d[12] = 13.1; d[13] = 14.1; d[14] = 15.1; d[15] = 16.1;
            d[16] = 17.1; d[17] = 18.1; d[18] = 19.1; d[19] = 20.1;

            double m = MathX.Product(d);

            AssertEquals("Product", 0, m);

            d     = new double[20];
            d[0]  = 1.1; d[1] = 2.1; d[2] = 3.1; d[3] = 4.1;
            d[4]  = 5.1; d[5] = 6.1; d[6] = 7.1; d[7] = 8.1;
            d[8]  = 9.1; d[9] = 10.1; d[10] = 11.1; d[11] = 12.1;
            d[12] = 13.1; d[13] = 14.1; d[14] = 15.1; d[15] = 16.1;
            d[16] = 17.1; d[17] = 18.1; d[18] = 19.1; d[19] = 20.1;

            m = MathX.Product(d);
            AssertEquals("Product ", 3459946360003355534d, m);

            d = new double[1000];
            m = MathX.Product(d);
            AssertEquals("Product ", 0, m);

            d     = new double[20];
            d[0]  = -1.1; d[1] = -2.1; d[2] = -3.1; d[3] = -4.1;
            d[4]  = -5.1; d[5] = -6.1; d[6] = -7.1; d[7] = -8.1;
            d[8]  = -9.1; d[9] = -10.1; d[10] = -11.1; d[11] = -12.1;
            d[12] = -13.1; d[13] = -14.1; d[14] = -15.1; d[15] = -16.1;
            d[16] = -17.1; d[17] = -18.1; d[18] = -19.1; d[19] = -20.1;
            m     = MathX.Product(d);
            AssertEquals("Product ", 3459946360003355534d, m);
        }