From c7240fbe86c8ccfd6666d048e9d9df8815d66d09 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Thu, 26 May 2022 12:00:09 +0000 Subject: [PATCH] [bug-66093] add tests git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1901284 13f79535-47bb-0310-9956-ffa450edef68 --- .../ss/formula/functions/TestSubtotal.java | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) diff --git a/poi/src/test/java/org/apache/poi/ss/formula/functions/TestSubtotal.java b/poi/src/test/java/org/apache/poi/ss/formula/functions/TestSubtotal.java index 3d4bd2264e..5dc993bdaa 100644 --- a/poi/src/test/java/org/apache/poi/ss/formula/functions/TestSubtotal.java +++ b/poi/src/test/java/org/apache/poi/ss/formula/functions/TestSubtotal.java @@ -322,6 +322,105 @@ final class TestSubtotal { wb.close(); } + @Test + void testStdevp() throws IOException { + + try (Workbook wb = new HSSFWorkbook()) { + FormulaEvaluator fe = wb.getCreationHelper().createFormulaEvaluator(); + + Sheet sh = wb.createSheet(); + Cell a1 = sh.createRow(1).createCell(1); + a1.setCellValue(1); + Cell a2 = sh.createRow(2).createCell(1); + a2.setCellValue(3); + Cell a3 = sh.createRow(3).createCell(1); + a3.setCellFormula("SUBTOTAL(8,B2:B3)"); + Cell a4 = sh.createRow(4).createCell(1); + a4.setCellValue(1); + Cell a5 = sh.createRow(5).createCell(1); + a5.setCellValue(7); + Cell a6 = sh.createRow(6).createCell(1); + a6.setCellFormula("SUBTOTAL(8,B2:B6)*2 + 2"); + Cell a7 = sh.createRow(7).createCell(1); + a7.setCellFormula("SUBTOTAL(8,B2:B7)"); + Cell a8 = sh.createRow(8).createCell(1); + a8.setCellFormula("SUBTOTAL(8,B2,B3,B4,B5,B6,B7,B8)"); + + fe.evaluateAll(); + + assertEquals(1.0, a3.getNumericCellValue(), 0.00001); + assertEquals(6.898979, a6.getNumericCellValue(), 0.00001); + assertEquals(2.44949, a7.getNumericCellValue(), 0.00001); + assertEquals(2.44949, a8.getNumericCellValue(), 0.00001); + } + } + + @Test + void testVar() throws IOException { + + try (Workbook wb = new HSSFWorkbook()) { + FormulaEvaluator fe = wb.getCreationHelper().createFormulaEvaluator(); + + Sheet sh = wb.createSheet(); + Cell a1 = sh.createRow(1).createCell(1); + a1.setCellValue(1); + Cell a2 = sh.createRow(2).createCell(1); + a2.setCellValue(3); + Cell a3 = sh.createRow(3).createCell(1); + a3.setCellFormula("SUBTOTAL(10,B2:B3)"); + Cell a4 = sh.createRow(4).createCell(1); + a4.setCellValue(1); + Cell a5 = sh.createRow(5).createCell(1); + a5.setCellValue(7); + Cell a6 = sh.createRow(6).createCell(1); + a6.setCellFormula("SUBTOTAL(10,B2:B6)*2 + 2"); + Cell a7 = sh.createRow(7).createCell(1); + a7.setCellFormula("SUBTOTAL(10,B2:B7)"); + Cell a8 = sh.createRow(8).createCell(1); + a8.setCellFormula("SUBTOTAL(10,B2,B3,B4,B5,B6,B7,B8)"); + + fe.evaluateAll(); + + assertEquals(2.0, a3.getNumericCellValue()); + assertEquals(18.0, a6.getNumericCellValue()); + assertEquals(8.0, a7.getNumericCellValue()); + assertEquals(8.0, a8.getNumericCellValue()); + } + } + + @Test + void testVarp() throws IOException { + + try (Workbook wb = new HSSFWorkbook()) { + FormulaEvaluator fe = wb.getCreationHelper().createFormulaEvaluator(); + + Sheet sh = wb.createSheet(); + Cell a1 = sh.createRow(1).createCell(1); + a1.setCellValue(1); + Cell a2 = sh.createRow(2).createCell(1); + a2.setCellValue(3); + Cell a3 = sh.createRow(3).createCell(1); + a3.setCellFormula("SUBTOTAL(11,B2:B3)"); + Cell a4 = sh.createRow(4).createCell(1); + a4.setCellValue(1); + Cell a5 = sh.createRow(5).createCell(1); + a5.setCellValue(7); + Cell a6 = sh.createRow(6).createCell(1); + a6.setCellFormula("SUBTOTAL(11,B2:B6)*2 + 2"); + Cell a7 = sh.createRow(7).createCell(1); + a7.setCellFormula("SUBTOTAL(11,B2:B7)"); + Cell a8 = sh.createRow(8).createCell(1); + a8.setCellFormula("SUBTOTAL(11,B2,B3,B4,B5,B6,B7,B8)"); + + fe.evaluateAll(); + + assertEquals(1.0, a3.getNumericCellValue()); + assertEquals(14.0, a6.getNumericCellValue()); + assertEquals(6.0, a7.getNumericCellValue()); + assertEquals(6.0, a8.getNumericCellValue()); + } + } + @Test void test50209() throws IOException { Workbook wb = new HSSFWorkbook(); -- 2.39.5