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 + -
显示快捷键?