testmathx.java

来自「EXCEL read and write」· Java 代码 · 共 912 行 · 第 1/2 页

JAVA
912
字号
        assertEquals("Sum ", -212, s);            }    public void testSumproduct() {        double d = 0;        double[][] darr = new double[][]               {{0   ,0.11   ,23.23},                {1  ,0.22   ,46.46},                {2  ,0.33   ,69.69},                {3  ,0.44   ,92.92},                {4  ,0.55   ,116.15},                {5  ,0.66   ,139.38},                {6  ,0.77   ,162.61},                {7  ,0.88   ,185.84},                {8  ,0.99   ,209.07},                {9  ,1.1    ,232.3},                {10 ,1.21   ,255.53}};        d = MathX.sumproduct(darr);        assertEquals("Sumproduct ", 4.243234425E+22, d);        darr = new double[][]               {{0  ,0.11   ,23.23},                {0  ,0.22   ,46.46},                {0  ,0.33   ,69.69},                {0  ,0.44   ,92.92},                {0  ,0.55   ,116.15},                {0  ,0.66   ,139.38},                {0  ,0.77   ,162.61},                {0  ,0.88   ,185.84},                {0  ,0.99   ,209.07},                {0  ,1.1    ,232.3},                {0  ,1.21   ,255.53}};        d = MathX.sumproduct(darr);        assertEquals("Sumproduct ", 4.243234425E+22, d);                darr = new double[][]               {{0, 0, 0, 0, 0, 0, 0, 0},                {0.11, 0.22, 0.33, 0.44, 0.55, 0.66, 0.77, 0.88},                {23.23, 46.46, 69.69, 92.92, 116.15, 139.38, 162.61, 185.84}};        d = MathX.sumproduct(darr);        assertEquals("Sumproduct ", 0, d);        darr = new double[][]               {{0, 1, 2, 3, 4, 5, 6, 7},                {0.11, 0.22, 0.33, 0.44, 0.55, 0.66, 0.77, 0.88},                {23.23, 46.46, 69.69, 92.92, 116.15, 139.38, 162.61, 185.84}};        d = MathX.sumproduct(darr);        assertEquals("Sumproduct ", 2790.3876, d);            }    public void testSumsq() {        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 s = MathX.sumsq(d);        assertEquals("Sumsq ", 2912.2, s);                d = new double[1000];        s = MathX.sumsq(d);        assertEquals("Sumsq ", 0, s);                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;         s = MathX.sumsq(d);        assertEquals("Sumsq ", 2912.2, s);                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;         s = MathX.sumsq(d);        assertEquals("Sumsq ", 2912.2, s);    }    public void testFactorial() {        int n = 0;        double s = 0;                n = 0;        s = MathX.factorial(n);        assertEquals("Factorial ", 1, s);                n = 1;        s = MathX.factorial(n);        assertEquals("Factorial ", 1, s);                n = 10;        s = MathX.factorial(n);        assertEquals("Factorial ", 3628800, s);                n = 99;        s = MathX.factorial(n);        assertEquals("Factorial ", 9.33262154439E+155, s);                n = -1;        s = MathX.factorial(n);        assertEquals("Factorial ", Double.NaN, s);                n = Integer.MAX_VALUE;        s = MathX.factorial(n);        assertEquals("Factorial ", Double.POSITIVE_INFINITY, s);    }    public void testSumx2my2() {        double[] xarr = null;        double[] yarr = null;                xarr = new double[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};        yarr = new double[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};        confirmSumx2my2(xarr, yarr, 100);                xarr = new double[]{-1, -2, -3, -4, -5, -6, -7, -8, -9, -10};        yarr = new double[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};        confirmSumx2my2(xarr, yarr, 100);                xarr = new double[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};        yarr = new double[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};        confirmSumx2my2(xarr, yarr, -100);                xarr = new double[]{10};        yarr = new double[]{9};        confirmSumx2my2(xarr, yarr, 19);                xarr = new double[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};        yarr = new double[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};        confirmSumx2my2(xarr, yarr, 0);    }    public void testSumx2py2() {        double[] xarr = null;        double[] yarr = null;                xarr = new double[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};        yarr = new double[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};        confirmSumx2py2(xarr, yarr, 670);                xarr = new double[]{-1, -2, -3, -4, -5, -6, -7, -8, -9, -10};        yarr = new double[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};        confirmSumx2py2(xarr, yarr, 670);                xarr = new double[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};        yarr = new double[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};        confirmSumx2py2(xarr, yarr, 670);                xarr = new double[]{10};        yarr = new double[]{9};        confirmSumx2py2(xarr, yarr, 181);                xarr = new double[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};        yarr = new double[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};        confirmSumx2py2(xarr, yarr, 770);    }    public void testSumxmy2() {        double[] xarr = null;        double[] yarr = null;                xarr = new double[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};        yarr = new double[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};        confirmSumxmy2(xarr, yarr, 10);                xarr = new double[]{-1, -2, -3, -4, -5, -6, -7, -8, -9, -10};        yarr = new double[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};        confirmSumxmy2(xarr, yarr, 1330);                xarr = new double[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};        yarr = new double[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};        confirmSumxmy2(xarr, yarr, 10);                xarr = new double[]{10};        yarr = new double[]{9};        confirmSumxmy2(xarr, yarr, 1);                xarr = new double[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};        yarr = new double[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};        confirmSumxmy2(xarr, yarr, 0);    }    private static void confirmSumx2my2(double[] xarr, double[] yarr, double expectedResult) {        confirmXY(new Sumx2my2().createAccumulator(), xarr, yarr, expectedResult);    }    private static void confirmSumx2py2(double[] xarr, double[] yarr, double expectedResult) {        confirmXY(new Sumx2py2().createAccumulator(), xarr, yarr, expectedResult);    }    private static void confirmSumxmy2(double[] xarr, double[] yarr, double expectedResult) {        confirmXY(new Sumxmy2().createAccumulator(), xarr, yarr, expectedResult);    }    private static void confirmXY(Accumulator acc, double[] xarr, double[] yarr,            double expectedResult) {        double result = 0.0;        for (int i = 0; i < xarr.length; i++) {            result += acc.accumulate(xarr[i], yarr[i]);        }        assertEquals(expectedResult, result, 0.0);    }        public void testRound() {        double d = 0;        int p = 0;                d = 0; p = 0;        assertEquals("round ", 0, MathX.round(d, p));                d = 10; p = 0;        assertEquals("round ", 10, MathX.round(d, p));                d = 123.23; p = 0;        assertEquals("round ", 123, MathX.round(d, p));                d = -123.23; p = 0;        assertEquals("round ", -123, MathX.round(d, p));                d = 123.12; p = 2;        assertEquals("round ", 123.12, MathX.round(d, p));                d = 88.123459; p = 5;        assertEquals("round ", 88.12346, MathX.round(d, p));                d = 0; p = 2;        assertEquals("round ", 0, MathX.round(d, p));                d = 0; p = -1;        assertEquals("round ", 0, MathX.round(d, p));                d = 0.01; p = -1;        assertEquals("round ", 0, MathX.round(d, p));        d = 123.12; p = -2;        assertEquals("round ", 100, MathX.round(d, p));                d = 88.123459; p = -3;        assertEquals("round ", 0, MathX.round(d, p));                d = 49.00000001; p = -1;        assertEquals("round ", 50, MathX.round(d, p));                d = 149.999999; p = -2;        assertEquals("round ", 100, MathX.round(d, p));                d = 150.0; p = -2;        assertEquals("round ", 200, MathX.round(d, p));    }    public void testRoundDown() {        double d = 0;        int p = 0;                d = 0; p = 0;        assertEquals("roundDown ", 0, MathX.roundDown(d, p));                d = 10; p = 0;        assertEquals("roundDown ", 10, MathX.roundDown(d, p));                d = 123.99; p = 0;        assertEquals("roundDown ", 123, MathX.roundDown(d, p));                d = -123.99; p = 0;        assertEquals("roundDown ", -123, MathX.roundDown(d, p));                d = 123.99; p = 2;        assertEquals("roundDown ", 123.99, MathX.roundDown(d, p));                d = 88.123459; p = 5;        assertEquals("roundDown ", 88.12345, MathX.roundDown(d, p));                d = 0; p = 2;        assertEquals("roundDown ", 0, MathX.roundDown(d, p));                d = 0; p = -1;        assertEquals("roundDown ", 0, MathX.roundDown(d, p));                d = 0.01; p = -1;        assertEquals("roundDown ", 0, MathX.roundDown(d, p));        d = 199.12; p = -2;        assertEquals("roundDown ", 100, MathX.roundDown(d, p));                d = 88.123459; p = -3;        assertEquals("roundDown ", 0, MathX.roundDown(d, p));                d = 99.00000001; p = -1;        assertEquals("roundDown ", 90, MathX.roundDown(d, p));                d = 100.00001; p = -2;        assertEquals("roundDown ", 100, MathX.roundDown(d, p));                d = 150.0; p = -2;        assertEquals("roundDown ", 100, MathX.roundDown(d, p));    }    public void testRoundUp() {        double d = 0;        int p = 0;                d = 0; p = 0;        assertEquals("roundUp ", 0, MathX.roundUp(d, p));                d = 10; p = 0;        assertEquals("roundUp ", 10, MathX.roundUp(d, p));                d = 123.23; p = 0;        assertEquals("roundUp ", 124, MathX.roundUp(d, p));                d = -123.23; p = 0;        assertEquals("roundUp ", -124, MathX.roundUp(d, p));                d = 123.12; p = 2;        assertEquals("roundUp ", 123.12, MathX.roundUp(d, p));                d = 88.123459; p = 5;        assertEquals("roundUp ", 88.12346, MathX.roundUp(d, p));                d = 0; p = 2;        assertEquals("roundUp ", 0, MathX.roundUp(d, p));                d = 0; p = -1;        assertEquals("roundUp ", 0, MathX.roundUp(d, p));                d = 0.01; p = -1;        assertEquals("roundUp ", 10, MathX.roundUp(d, p));        d = 123.12; p = -2;        assertEquals("roundUp ", 200, MathX.roundUp(d, p));                d = 88.123459; p = -3;        assertEquals("roundUp ", 1000, MathX.roundUp(d, p));                d = 49.00000001; p = -1;        assertEquals("roundUp ", 50, MathX.roundUp(d, p));                d = 149.999999; p = -2;        assertEquals("roundUp ", 200, MathX.roundUp(d, p));                d = 150.0; p = -2;        assertEquals("roundUp ", 200, MathX.roundUp(d, p));    }    public void testCeiling() {        double d = 0;        double s = 0;                d = 0; s = 0;        assertEquals("ceiling ", 0, MathX.ceiling(d, s));                d = 1; s = 0;        assertEquals("ceiling ", 0, MathX.ceiling(d, s));                d = 0; s = 1;        assertEquals("ceiling ", 0, MathX.ceiling(d, s));                d = -1; s = 0;        assertEquals("ceiling ", 0, MathX.ceiling(d, s));                d = 0; s = -1;        assertEquals("ceiling ", 0, MathX.ceiling(d, s));                d = 10; s = 1.11;        assertEquals("ceiling ", 11.1, MathX.ceiling(d, s));                d = 11.12333; s = 0.03499;        assertEquals("ceiling ", 11.12682, MathX.ceiling(d, s));                d = -11.12333; s = 0.03499;        assertEquals("ceiling ", Double.NaN, MathX.ceiling(d, s));                d = 11.12333; s = -0.03499;        assertEquals("ceiling ", Double.NaN, MathX.ceiling(d, s));                d = -11.12333; s = -0.03499;        assertEquals("ceiling ", -11.12682, MathX.ceiling(d, s));                d = 100; s = 0.001;        assertEquals("ceiling ", 100, MathX.ceiling(d, s));                d = -0.001; s = -9.99;        assertEquals("ceiling ", -9.99, MathX.ceiling(d, s));                d = 4.42; s = 0.05;        assertEquals("ceiling ", 4.45, MathX.ceiling(d, s));                d = 0.05; s = 4.42;        assertEquals("ceiling ", 4.42, MathX.ceiling(d, s));                d = 0.6666; s = 3.33;        assertEquals("ceiling ", 3.33, MathX.ceiling(d, s));                d = 2d/3; s = 3.33;        assertEquals("ceiling ", 3.33, MathX.ceiling(d, s));    }    public void testFloor() {        double d = 0;        double s = 0;                d = 0; s = 0;        assertEquals("floor ", 0, MathX.floor(d, s));                d = 1; s = 0;        assertEquals("floor ", Double.NaN, MathX.floor(d, s));                d = 0; s = 1;        assertEquals("floor ", 0, MathX.floor(d, s));                d = -1; s = 0;        assertEquals("floor ", Double.NaN, MathX.floor(d, s));                d = 0; s = -1;        assertEquals("floor ", 0, MathX.floor(d, s));                d = 10; s = 1.11;        assertEquals("floor ", 9.99, MathX.floor(d, s));                d = 11.12333; s = 0.03499;        assertEquals("floor ", 11.09183, MathX.floor(d, s));                d = -11.12333; s = 0.03499;        assertEquals("floor ", Double.NaN, MathX.floor(d, s));                d = 11.12333; s = -0.03499;        assertEquals("floor ", Double.NaN, MathX.floor(d, s));                d = -11.12333; s = -0.03499;        assertEquals("floor ", -11.09183, MathX.floor(d, s));                d = 100; s = 0.001;        assertEquals("floor ", 100, MathX.floor(d, s));                d = -0.001; s = -9.99;        assertEquals("floor ", 0, MathX.floor(d, s));                d = 4.42; s = 0.05;        assertEquals("floor ", 4.4, MathX.floor(d, s));                d = 0.05; s = 4.42;        assertEquals("floor ", 0, MathX.floor(d, s));                d = 0.6666; s = 3.33;        assertEquals("floor ", 0, MathX.floor(d, s));                d = 2d/3; s = 3.33;        assertEquals("floor ", 0, MathX.floor(d, s));    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?