| /************************************************************** | |
| * | |
| * 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); | |
| } | |
| } |