@Test public void testSum_double_array() { logger.info("\ntesting sum(double[] input, int...endPoints)"); double[] input = null; assertEquals(0.0, MathUtil.sum(input), 0.0); assertEquals(0.0, MathUtil.sum(input, 0), 0.0); assertEquals(0.0, MathUtil.sum(input, 0, 57, 3), 0.0); input = new double[] {1.0, 2.0, 3.0, 4.0}; assertEquals(10.0, MathUtil.sum(input), 0.0); assertEquals(3.0, MathUtil.sum(input, 0, 1), 0.0); assertEquals(6.0, MathUtil.sum(input, 0, 2), 0.0); assertEquals(10.0, MathUtil.sum(input, 0, 3), 0.0); assertEquals(10.0, MathUtil.sum(input, 0, 4), 0.0); assertEquals(2.0, MathUtil.sum(input, 1, 1), 0.0); assertEquals(5.0, MathUtil.sum(input, 1, 2), 0.0); assertEquals(9.0, MathUtil.sum(input, 1, 3), 0.0); // with indeces out of bounds assertEquals(9.0, MathUtil.sum(input, 1, 4), 0.0); assertEquals(9.0, MathUtil.sum(input, 4, 1), 0.0); input = new double[] { 1.3310000000000004, 1.3310000000000004, 1.3310000000000004, 1.3310000000000004 }; double[] cumBins = MathUtil.cumProd(input, true); logger.debug(ListArrayUtil.arrayToString(cumBins)); int regularContribution = 1; logger.debug(cumBins[0] + regularContribution * MathUtil.sum(cumBins, 1, cumBins.length - 1)); }
@Test public void testCumprod_double_array() { logger.info("\n testing cumProd(double[] array, boolean...reverse)"); double[] input = null; double[] result = null; result = MathUtil.cumProd(input); assertEquals(0, result.length); input = new double[] {}; assertEquals(0, MathUtil.cumProd(input).length); input = new double[] {1.0, 2.0, 3.0, 1.0, 2.0, -1.0, -1.0}; result = MathUtil.cumProd(input); assertEquals(7, result.length); assertEquals(1.0, result[0], 1.0); assertEquals(2.0, result[1], 1.0); assertEquals(6.0, result[2], 1.0); assertEquals(6.0, result[3], 1.0); assertEquals(12.0, result[4], 1.0); assertEquals(-12.0, result[5], 1.0); assertEquals(12.0, result[6], 1.0); result = MathUtil.cumProd(input, true); assertEquals(7, result.length); assertEquals(-1.0, result[6], 1.0); assertEquals(1.0, result[5], 1.0); assertEquals(2.0, result[4], 1.0); assertEquals(2.0, result[3], 1.0); assertEquals(6.0, result[2], 1.0); assertEquals(12.0, result[1], 1.0); assertEquals(12.0, result[0], 1.0); input = new double[] { 1.3310000000000004, 1.3310000000000004, 1.3310000000000004, 1.3310000000000004 }; logger.debug(ListArrayUtil.arrayToString(MathUtil.cumProd(input, true))); }