blob: cf7e231ef79d08e638c69ff6066f73ce17cc917e [file] [log] [blame]
/**************************************************************
*
* 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);
}
}