/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ package fvt.uno.sc.data; import static org.junit.Assert.*; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.openoffice.test.uno.UnoApp; import testlib.uno.SCUtil; import com.sun.star.lang.XComponent; import com.sun.star.sheet.GeneralFunction; import com.sun.star.sheet.SubTotalColumn; import com.sun.star.sheet.XCellRangeData; import com.sun.star.sheet.XSpreadsheet; import com.sun.star.sheet.XSpreadsheetDocument; import com.sun.star.sheet.XSubTotalCalculatable; import com.sun.star.sheet.XSubTotalDescriptor; import com.sun.star.table.XCellRange; import com.sun.star.text.XTextDocument; import com.sun.star.uno.UnoRuntime; public class SubtotalsForGroup { private static final UnoApp app = new UnoApp(); UnoApp unoApp = new UnoApp(); XSpreadsheetDocument scDocument = null; XComponent scComponent = null; @Before public void setUpDocument() throws Exception { unoApp.start(); scComponent = unoApp.newDocument("scalc"); } @After public void tearDownDocument() { unoApp.close(); unoApp.closeDocument(scComponent); } @BeforeClass public static void setUpConnection() throws Exception { } @AfterClass public static void tearDownConnection() throws InterruptedException, Exception { } @Test public void testForSecondGroup() throws Exception { scComponent = unoApp.newDocument("scalc"); scDocument = SCUtil.getSCDocument(scComponent); XSpreadsheet currentsheet = SCUtil.getCurrentSheet(scDocument); XCellRange xdataRange = (XCellRange) UnoRuntime.queryInterface( XCellRange.class, currentsheet); XCellRange sourceRange = currentsheet.getCellRangeByName("A1:E8"); XCellRangeData sourceData = (XCellRangeData) UnoRuntime.queryInterface( XCellRangeData.class, sourceRange); Object[][] Source = { { "Level", "Code", "No.", "Team", "Name" }, { "BS", 20, 4, "B", "Elle" }, { "BS", 20, 6, "C", "Sweet" }, { "BS", 20, 2, "A", "Chcomic" }, { "CS", 30, 5, "A", "Ally" }, { "MS", 10, 1, "A", "Joker" }, { "MS", 10, 3, "B", "Kevin" }, { "CS", 30, 7, "C", "Tom" } }; sourceData.setDataArray(Source); // Create SubTotals XSubTotalCalculatable xSub = (XSubTotalCalculatable) UnoRuntime .queryInterface(XSubTotalCalculatable.class, sourceRange); XSubTotalDescriptor xSubDesc = xSub.createSubTotalDescriptor(true); SubTotalColumn[] aColumns = new SubTotalColumn[1]; SubTotalColumn[] bColumns = new SubTotalColumn[1]; // calculate sum of Second column aColumns[0] = new SubTotalColumn(); aColumns[0].Column = 1; aColumns[0].Function = GeneralFunction.SUM; // group by 4th column xSubDesc.addNew(aColumns, 3); // calculate sum of third column bColumns[0] = new SubTotalColumn(); bColumns[0].Column = 2; bColumns[0].Function = GeneralFunction.SUM; // group by second column xSubDesc.addNew(bColumns, 1); xSub.applySubTotals(xSubDesc, true); // Verify the result on line 3 assertEquals("10 Sum", SCUtil.getTextFromCell(currentsheet, 1, 2)); assertEquals("=SUBTOTAL(9;$C$2:$C$2)", SCUtil.getFormulaFromCell(currentsheet, 2, 2)); assertEquals(1, SCUtil.getValueFromCell(currentsheet, 2, 2), 0.000000001); // Verify the result on line 5 assertEquals("20 Sum", SCUtil.getTextFromCell(currentsheet, 1, 4)); assertEquals("=SUBTOTAL(9;$C$4:$C$4)", SCUtil.getFormulaFromCell(currentsheet, 2, 4)); assertEquals(2, SCUtil.getValueFromCell(currentsheet, 2, 4), 0.000000001); // Verify the result on line 7 assertEquals("30 Sum", SCUtil.getTextFromCell(currentsheet, 1, 6)); assertEquals("=SUBTOTAL(9;$C$6:$C$6)", SCUtil.getFormulaFromCell(currentsheet, 2, 6)); assertEquals(5, SCUtil.getValueFromCell(currentsheet, 2, 6), 0.000000001); // Verify the result on line 8 assertEquals("A Sum", SCUtil.getTextFromCell(currentsheet, 3, 7)); assertEquals("=SUBTOTAL(9;$B$2:$B$7)", SCUtil.getFormulaFromCell(currentsheet, 1, 7)); assertEquals(60, SCUtil.getValueFromCell(currentsheet, 1, 7), 0.000000001); // Verify the result on line 10 assertEquals("10 Sum", SCUtil.getTextFromCell(currentsheet, 1, 9)); assertEquals("=SUBTOTAL(9;$C$9:$C$9)", SCUtil.getFormulaFromCell(currentsheet, 2, 9)); assertEquals(3, SCUtil.getValueFromCell(currentsheet, 2, 9), 0.000000001); // Verify the result on line 12 assertEquals("20 Sum", SCUtil.getTextFromCell(currentsheet, 1, 11)); assertEquals("=SUBTOTAL(9;$C$11:$C$11)", SCUtil.getFormulaFromCell(currentsheet, 2, 11)); assertEquals(4, SCUtil.getValueFromCell(currentsheet, 2, 11), 0.000000001); // Verify the result on line 13 assertEquals("B Sum", SCUtil.getTextFromCell(currentsheet, 3, 12)); assertEquals("=SUBTOTAL(9;$B$9:$B$12)", SCUtil.getFormulaFromCell(currentsheet, 1, 12)); assertEquals(30, SCUtil.getValueFromCell(currentsheet, 1, 12), 0.000000001); // Verify the result on line 15 assertEquals("20 Sum", SCUtil.getTextFromCell(currentsheet, 1, 14)); assertEquals("=SUBTOTAL(9;$C$14:$C$14)", SCUtil.getFormulaFromCell(currentsheet, 2, 14)); assertEquals(6, SCUtil.getValueFromCell(currentsheet, 2, 14), 0.000000001); // Verify the result on line 17 assertEquals("30 Sum", SCUtil.getTextFromCell(currentsheet, 1, 16)); assertEquals("=SUBTOTAL(9;$C$16:$C$16)", SCUtil.getFormulaFromCell(currentsheet, 2, 16)); assertEquals(7, SCUtil.getValueFromCell(currentsheet, 2, 16), 0.000000001); // Verify the result on line 18 assertEquals("C Sum", SCUtil.getTextFromCell(currentsheet, 3, 17)); assertEquals("=SUBTOTAL(9;$B$14:$B$17)", SCUtil.getFormulaFromCell(currentsheet, 1, 17)); assertEquals(50, SCUtil.getValueFromCell(currentsheet, 1, 17), 0.000000001); // Verify the result on line 19 assertEquals("Grand Total", SCUtil.getTextFromCell(currentsheet, 3, 18)); assertEquals("=SUBTOTAL(9;$B$2:$B$18)", SCUtil.getFormulaFromCell(currentsheet, 1, 18)); assertEquals(140, SCUtil.getValueFromCell(currentsheet, 1, 18), 0.000000001); // Save the file and reload it SCUtil.saveFileAs(scComponent, "SubTotalsForGroup", "ods"); XSpreadsheetDocument scDocumentTemp = SCUtil.reloadFile(unoApp, scDocument, "SubTotalsForGroup.ods"); scDocument = scDocumentTemp; currentsheet = SCUtil.getCurrentSheet(scDocument); // verify it again // Verify the result on line 3 assertEquals("10 Sum", SCUtil.getTextFromCell(currentsheet, 1, 2)); assertEquals("=SUBTOTAL(9;$C$2:$C$2)", SCUtil.getFormulaFromCell(currentsheet, 2, 2)); assertEquals(1, SCUtil.getValueFromCell(currentsheet, 2, 2), 0.000000001); // Verify the result on line 5 assertEquals("20 Sum", SCUtil.getTextFromCell(currentsheet, 1, 4)); assertEquals("=SUBTOTAL(9;$C$4:$C$4)", SCUtil.getFormulaFromCell(currentsheet, 2, 4)); assertEquals(2, SCUtil.getValueFromCell(currentsheet, 2, 4), 0.000000001); // Verify the result on line 7 assertEquals("30 Sum", SCUtil.getTextFromCell(currentsheet, 1, 6)); assertEquals("=SUBTOTAL(9;$C$6:$C$6)", SCUtil.getFormulaFromCell(currentsheet, 2, 6)); assertEquals(5, SCUtil.getValueFromCell(currentsheet, 2, 6), 0.000000001); // Verify the result on line 8 assertEquals("A Sum", SCUtil.getTextFromCell(currentsheet, 3, 7)); assertEquals("=SUBTOTAL(9;$B$2:$B$7)", SCUtil.getFormulaFromCell(currentsheet, 1, 7)); assertEquals(60, SCUtil.getValueFromCell(currentsheet, 1, 7), 0.000000001); // Verify the result on line 10 assertEquals("10 Sum", SCUtil.getTextFromCell(currentsheet, 1, 9)); assertEquals("=SUBTOTAL(9;$C$9:$C$9)", SCUtil.getFormulaFromCell(currentsheet, 2, 9)); assertEquals(3, SCUtil.getValueFromCell(currentsheet, 2, 9), 0.000000001); // Verify the result on line 12 assertEquals("20 Sum", SCUtil.getTextFromCell(currentsheet, 1, 11)); assertEquals("=SUBTOTAL(9;$C$11:$C$11)", SCUtil.getFormulaFromCell(currentsheet, 2, 11)); assertEquals(4, SCUtil.getValueFromCell(currentsheet, 2, 11), 0.000000001); // Verify the result on line 13 assertEquals("B Sum", SCUtil.getTextFromCell(currentsheet, 3, 12)); assertEquals("=SUBTOTAL(9;$B$9:$B$12)", SCUtil.getFormulaFromCell(currentsheet, 1, 12)); assertEquals(30, SCUtil.getValueFromCell(currentsheet, 1, 12), 0.000000001); // Verify the result on line 15 assertEquals("20 Sum", SCUtil.getTextFromCell(currentsheet, 1, 14)); assertEquals("=SUBTOTAL(9;$C$14:$C$14)", SCUtil.getFormulaFromCell(currentsheet, 2, 14)); assertEquals(6, SCUtil.getValueFromCell(currentsheet, 2, 14), 0.000000001); // Verify the result on line 17 assertEquals("30 Sum", SCUtil.getTextFromCell(currentsheet, 1, 16)); assertEquals("=SUBTOTAL(9;$C$16:$C$16)", SCUtil.getFormulaFromCell(currentsheet, 2, 16)); assertEquals(7, SCUtil.getValueFromCell(currentsheet, 2, 16), 0.000000001); // Verify the result on line 18 assertEquals("C Sum", SCUtil.getTextFromCell(currentsheet, 3, 17)); assertEquals("=SUBTOTAL(9;$B$14:$B$17)", SCUtil.getFormulaFromCell(currentsheet, 1, 17)); assertEquals(50, SCUtil.getValueFromCell(currentsheet, 1, 17), 0.000000001); // Verify the result on line 19 assertEquals("Grand Total", SCUtil.getTextFromCell(currentsheet, 3, 18)); assertEquals("=SUBTOTAL(9;$B$2:$B$18)", SCUtil.getFormulaFromCell(currentsheet, 1, 18)); assertEquals(140, SCUtil.getValueFromCell(currentsheet, 1, 18), 0.000000001); } @Test public void testForThirdGroup() throws Exception { scComponent = unoApp.newDocument("scalc"); scDocument = SCUtil.getSCDocument(scComponent); XSpreadsheet currentsheet = SCUtil.getCurrentSheet(scDocument); XCellRange xdataRange = (XCellRange) UnoRuntime.queryInterface( XCellRange.class, currentsheet); XCellRange sourceRange = currentsheet.getCellRangeByName("A1:E8"); XCellRangeData sourceData = (XCellRangeData) UnoRuntime.queryInterface( XCellRangeData.class, sourceRange); Object[][] Source = { { "Level", "Code", "No.", "Team", "Name" }, { "BS", 20, 4, "B", "Elle" }, { "BS", 20, 6, "C", "Sweet" }, { "BS", 20, 2, "A", "Chcomic" }, { "CS", 30, 5, "A", "Ally" }, { "MS", 10, 1, "A", "Joker" }, { "MS", 10, 3, "B", "Kevin" }, { "CS", 30, 7, "C", "Tom" } }; sourceData.setDataArray(Source); // Create SubTotals XSubTotalCalculatable xSub = (XSubTotalCalculatable) UnoRuntime .queryInterface(XSubTotalCalculatable.class, sourceRange); XSubTotalDescriptor xSubDesc = xSub.createSubTotalDescriptor(true); SubTotalColumn[] aColumns = new SubTotalColumn[1]; SubTotalColumn[] bColumns = new SubTotalColumn[1]; SubTotalColumn[] cColumns = new SubTotalColumn[1]; // calculate sum of Second column aColumns[0] = new SubTotalColumn(); aColumns[0].Column = 1; aColumns[0].Function = GeneralFunction.SUM; // group by 4th column xSubDesc.addNew(aColumns, 3); // calculate sum of third column bColumns[0] = new SubTotalColumn(); bColumns[0].Column = 2; bColumns[0].Function = GeneralFunction.SUM; // group by second column xSubDesc.addNew(bColumns, 1); // calculate sum of third column cColumns[0] = new SubTotalColumn(); cColumns[0].Column = 4; cColumns[0].Function = GeneralFunction.COUNT; // group by first column xSubDesc.addNew(cColumns, 0); xSub.applySubTotals(xSubDesc, true); // Verify the result on line 3 assertEquals("MS Count", SCUtil.getTextFromCell(currentsheet, 0, 2)); assertEquals("=SUBTOTAL(3;$E$2:$E$2)", SCUtil.getFormulaFromCell(currentsheet, 4, 2)); assertEquals(1, SCUtil.getValueFromCell(currentsheet, 4, 2), 0.000000001); // Verify the result on line 4 assertEquals("10 Sum", SCUtil.getTextFromCell(currentsheet, 1, 3)); assertEquals("=SUBTOTAL(9;$C$2:$C$3)", SCUtil.getFormulaFromCell(currentsheet, 2, 3)); assertEquals(1, SCUtil.getValueFromCell(currentsheet, 2, 3), 0.000000001); // Verify the result on line 6 assertEquals("BS Count", SCUtil.getTextFromCell(currentsheet, 0, 5)); assertEquals("=SUBTOTAL(3;$E$5:$E$5)", SCUtil.getFormulaFromCell(currentsheet, 4, 5)); assertEquals(1, SCUtil.getValueFromCell(currentsheet, 4, 5), 0.000000001); // Verify the result on line7 assertEquals("20 Sum", SCUtil.getTextFromCell(currentsheet, 1, 6)); assertEquals("=SUBTOTAL(9;$C$5:$C$6)", SCUtil.getFormulaFromCell(currentsheet, 2, 6)); assertEquals(2, SCUtil.getValueFromCell(currentsheet, 2, 6), 0.000000001); // Verify the result on line 9 assertEquals("CS Count", SCUtil.getTextFromCell(currentsheet, 0, 8)); assertEquals("=SUBTOTAL(3;$E$8:$E$8)", SCUtil.getFormulaFromCell(currentsheet, 4, 8)); assertEquals(1, SCUtil.getValueFromCell(currentsheet, 4, 8), 0.000000001); // Verify the result on line 10 assertEquals("30 Sum", SCUtil.getTextFromCell(currentsheet, 1, 9)); assertEquals("=SUBTOTAL(9;$C$8:$C$9)", SCUtil.getFormulaFromCell(currentsheet, 2, 9)); assertEquals(5, SCUtil.getValueFromCell(currentsheet, 2, 9), 0.000000001); // Verify the result on line 11 assertEquals("A Sum", SCUtil.getTextFromCell(currentsheet, 3, 10)); assertEquals("=SUBTOTAL(9;$B$2:$B$10)", SCUtil.getFormulaFromCell(currentsheet, 1, 10)); assertEquals(60, SCUtil.getValueFromCell(currentsheet, 1, 10), 0.000000001); // Verify the result on line 13 assertEquals("MS Count", SCUtil.getTextFromCell(currentsheet, 0, 12)); assertEquals("=SUBTOTAL(3;$E$12:$E$12)", SCUtil.getFormulaFromCell(currentsheet, 4, 12)); assertEquals(1, SCUtil.getValueFromCell(currentsheet, 4, 12), 0.000000001); // Verify the result on line 14 assertEquals("10 Sum", SCUtil.getTextFromCell(currentsheet, 1, 13)); assertEquals("=SUBTOTAL(9;$C$12:$C$13)", SCUtil.getFormulaFromCell(currentsheet, 2, 13)); assertEquals(3, SCUtil.getValueFromCell(currentsheet, 2, 13), 0.000000001); // Verify the result on line 16 assertEquals("BS Count", SCUtil.getTextFromCell(currentsheet, 0, 15)); assertEquals("=SUBTOTAL(3;$E$15:$E$15)", SCUtil.getFormulaFromCell(currentsheet, 4, 15)); assertEquals(1, SCUtil.getValueFromCell(currentsheet, 4, 15), 0.000000001); // Verify the result on line 17 assertEquals("20 Sum", SCUtil.getTextFromCell(currentsheet, 1, 16)); assertEquals("=SUBTOTAL(9;$C$15:$C$16)", SCUtil.getFormulaFromCell(currentsheet, 2, 16)); assertEquals(4, SCUtil.getValueFromCell(currentsheet, 2, 16), 0.000000001); // Verify the result on line 18 assertEquals("B Sum", SCUtil.getTextFromCell(currentsheet, 3, 17)); assertEquals("=SUBTOTAL(9;$B$12:$B$17)", SCUtil.getFormulaFromCell(currentsheet, 1, 17)); assertEquals(30, SCUtil.getValueFromCell(currentsheet, 1, 17), 0.000000001); // Verify the result on line 20 assertEquals("BS Count", SCUtil.getTextFromCell(currentsheet, 0, 19)); assertEquals("=SUBTOTAL(3;$E$19:$E$19)", SCUtil.getFormulaFromCell(currentsheet, 4, 19)); assertEquals(1, SCUtil.getValueFromCell(currentsheet, 4, 19), 0.000000001); // Verify the result on line 21 assertEquals("20 Sum", SCUtil.getTextFromCell(currentsheet, 1, 20)); assertEquals("=SUBTOTAL(9;$C$19:$C$20)", SCUtil.getFormulaFromCell(currentsheet, 2, 20)); assertEquals(6, SCUtil.getValueFromCell(currentsheet, 2, 20), 0.000000001); // Verify the result on line 23 assertEquals("CS Count", SCUtil.getTextFromCell(currentsheet, 0, 22)); assertEquals("=SUBTOTAL(3;$E$22:$E$22)", SCUtil.getFormulaFromCell(currentsheet, 4, 22)); assertEquals(1, SCUtil.getValueFromCell(currentsheet, 4, 22), 0.000000001); // Verify the result on line 24 assertEquals("30 Sum", SCUtil.getTextFromCell(currentsheet, 1, 23)); assertEquals("=SUBTOTAL(9;$C$22:$C$23)", SCUtil.getFormulaFromCell(currentsheet, 2, 23)); assertEquals(7, SCUtil.getValueFromCell(currentsheet, 2, 23), 0.000000001); // Verify the result on line 25 assertEquals("C Sum", SCUtil.getTextFromCell(currentsheet, 3, 24)); assertEquals("=SUBTOTAL(9;$B$19:$B$24)", SCUtil.getFormulaFromCell(currentsheet, 1, 24)); assertEquals(50, SCUtil.getValueFromCell(currentsheet, 1, 24), 0.000000001); // Verify the result on line 26 assertEquals("Grand Total", SCUtil.getTextFromCell(currentsheet, 3, 25)); assertEquals("=SUBTOTAL(9;$B$2:$B$25)", SCUtil.getFormulaFromCell(currentsheet, 1, 25)); assertEquals(140, SCUtil.getValueFromCell(currentsheet, 1, 25), 0.000000001); // Save the file and reload it SCUtil.saveFileAs(scComponent, "SubTotalsForGroup", "ods"); XSpreadsheetDocument scDocumentTemp = SCUtil.reloadFile(unoApp, scDocument, "SubTotalsForGroup.ods"); scDocument = scDocumentTemp; currentsheet = SCUtil.getCurrentSheet(scDocument); // verify it again // Verify the result on line 3 assertEquals("MS Count", SCUtil.getTextFromCell(currentsheet, 0, 2)); assertEquals("=SUBTOTAL(3;$E$2:$E$2)", SCUtil.getFormulaFromCell(currentsheet, 4, 2)); assertEquals(1, SCUtil.getValueFromCell(currentsheet, 4, 2), 0.000000001); // Verify the result on line 4 assertEquals("10 Sum", SCUtil.getTextFromCell(currentsheet, 1, 3)); assertEquals("=SUBTOTAL(9;$C$2:$C$3)", SCUtil.getFormulaFromCell(currentsheet, 2, 3)); assertEquals(1, SCUtil.getValueFromCell(currentsheet, 2, 3), 0.000000001); // Verify the result on line 6 assertEquals("BS Count", SCUtil.getTextFromCell(currentsheet, 0, 5)); assertEquals("=SUBTOTAL(3;$E$5:$E$5)", SCUtil.getFormulaFromCell(currentsheet, 4, 5)); assertEquals(1, SCUtil.getValueFromCell(currentsheet, 4, 5), 0.000000001); // Verify the result on line7 assertEquals("20 Sum", SCUtil.getTextFromCell(currentsheet, 1, 6)); assertEquals("=SUBTOTAL(9;$C$5:$C$6)", SCUtil.getFormulaFromCell(currentsheet, 2, 6)); assertEquals(2, SCUtil.getValueFromCell(currentsheet, 2, 6), 0.000000001); // Verify the result on line 9 assertEquals("CS Count", SCUtil.getTextFromCell(currentsheet, 0, 8)); assertEquals("=SUBTOTAL(3;$E$8:$E$8)", SCUtil.getFormulaFromCell(currentsheet, 4, 8)); assertEquals(1, SCUtil.getValueFromCell(currentsheet, 4, 8), 0.000000001); // Verify the result on line 10 assertEquals("30 Sum", SCUtil.getTextFromCell(currentsheet, 1, 9)); assertEquals("=SUBTOTAL(9;$C$8:$C$9)", SCUtil.getFormulaFromCell(currentsheet, 2, 9)); assertEquals(5, SCUtil.getValueFromCell(currentsheet, 2, 9), 0.000000001); // Verify the result on line 11 assertEquals("A Sum", SCUtil.getTextFromCell(currentsheet, 3, 10)); assertEquals("=SUBTOTAL(9;$B$2:$B$10)", SCUtil.getFormulaFromCell(currentsheet, 1, 10)); assertEquals(60, SCUtil.getValueFromCell(currentsheet, 1, 10), 0.000000001); // Verify the result on line 13 assertEquals("MS Count", SCUtil.getTextFromCell(currentsheet, 0, 12)); assertEquals("=SUBTOTAL(3;$E$12:$E$12)", SCUtil.getFormulaFromCell(currentsheet, 4, 12)); assertEquals(1, SCUtil.getValueFromCell(currentsheet, 4, 12), 0.000000001); // Verify the result on line 14 assertEquals("10 Sum", SCUtil.getTextFromCell(currentsheet, 1, 13)); assertEquals("=SUBTOTAL(9;$C$12:$C$13)", SCUtil.getFormulaFromCell(currentsheet, 2, 13)); assertEquals(3, SCUtil.getValueFromCell(currentsheet, 2, 13), 0.000000001); // Verify the result on line 16 assertEquals("BS Count", SCUtil.getTextFromCell(currentsheet, 0, 15)); assertEquals("=SUBTOTAL(3;$E$15:$E$15)", SCUtil.getFormulaFromCell(currentsheet, 4, 15)); assertEquals(1, SCUtil.getValueFromCell(currentsheet, 4, 15), 0.000000001); // Verify the result on line 17 assertEquals("20 Sum", SCUtil.getTextFromCell(currentsheet, 1, 16)); assertEquals("=SUBTOTAL(9;$C$15:$C$16)", SCUtil.getFormulaFromCell(currentsheet, 2, 16)); assertEquals(4, SCUtil.getValueFromCell(currentsheet, 2, 16), 0.000000001); // Verify the result on line 18 assertEquals("B Sum", SCUtil.getTextFromCell(currentsheet, 3, 17)); assertEquals("=SUBTOTAL(9;$B$12:$B$17)", SCUtil.getFormulaFromCell(currentsheet, 1, 17)); assertEquals(30, SCUtil.getValueFromCell(currentsheet, 1, 17), 0.000000001); // Verify the result on line 20 assertEquals("BS Count", SCUtil.getTextFromCell(currentsheet, 0, 19)); assertEquals("=SUBTOTAL(3;$E$19:$E$19)", SCUtil.getFormulaFromCell(currentsheet, 4, 19)); assertEquals(1, SCUtil.getValueFromCell(currentsheet, 4, 19), 0.000000001); // Verify the result on line 21 assertEquals("20 Sum", SCUtil.getTextFromCell(currentsheet, 1, 20)); assertEquals("=SUBTOTAL(9;$C$19:$C$20)", SCUtil.getFormulaFromCell(currentsheet, 2, 20)); assertEquals(6, SCUtil.getValueFromCell(currentsheet, 2, 20), 0.000000001); // Verify the result on line 23 assertEquals("CS Count", SCUtil.getTextFromCell(currentsheet, 0, 22)); assertEquals("=SUBTOTAL(3;$E$22:$E$22)", SCUtil.getFormulaFromCell(currentsheet, 4, 22)); assertEquals(1, SCUtil.getValueFromCell(currentsheet, 4, 22), 0.000000001); // Verify the result on line 24 assertEquals("30 Sum", SCUtil.getTextFromCell(currentsheet, 1, 23)); assertEquals("=SUBTOTAL(9;$C$22:$C$23)", SCUtil.getFormulaFromCell(currentsheet, 2, 23)); assertEquals(7, SCUtil.getValueFromCell(currentsheet, 2, 23), 0.000000001); // Verify the result on line 25 assertEquals("C Sum", SCUtil.getTextFromCell(currentsheet, 3, 24)); assertEquals("=SUBTOTAL(9;$B$19:$B$24)", SCUtil.getFormulaFromCell(currentsheet, 1, 24)); assertEquals(50, SCUtil.getValueFromCell(currentsheet, 1, 24), 0.000000001); // Verify the result on line 26 assertEquals("Grand Total", SCUtil.getTextFromCell(currentsheet, 3, 25)); assertEquals("=SUBTOTAL(9;$B$2:$B$25)", SCUtil.getFormulaFromCell(currentsheet, 1, 25)); assertEquals(140, SCUtil.getValueFromCell(currentsheet, 1, 25), 0.000000001); } }