aboutsummaryrefslogtreecommitdiffstats
path: root/src/testcases
diff options
context:
space:
mode:
authorJosh Micich <josh@apache.org>2009-11-23 01:22:56 +0000
committerJosh Micich <josh@apache.org>2009-11-23 01:22:56 +0000
commit08cf98cb4ee6263ebb122d85794120362a059db6 (patch)
tree387c7a5960995501ef7fa4c37e40fe1c83d70d5b /src/testcases
parent7d7e5d1515f0659e58bf5f252f872d01c666b43c (diff)
downloadpoi-08cf98cb4ee6263ebb122d85794120362a059db6.tar.gz
poi-08cf98cb4ee6263ebb122d85794120362a059db6.zip
Removed Ptg[] parameter from method IEvaluationListener.onStartEvaluate()
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@883208 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases')
-rw-r--r--src/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorBugs.java2
-rw-r--r--src/testcases/org/apache/poi/hssf/usermodel/TestHSSFFormulaEvaluator.java3
-rw-r--r--src/testcases/org/apache/poi/ss/formula/EvaluationListener.java25
-rw-r--r--src/testcases/org/apache/poi/ss/formula/TestEvaluationCache.java59
4 files changed, 44 insertions, 45 deletions
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorBugs.java b/src/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorBugs.java
index 939634b629..811eef0913 100644
--- a/src/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorBugs.java
+++ b/src/testcases/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorBugs.java
@@ -311,7 +311,7 @@ public final class TestFormulaEvaluatorBugs extends TestCase {
public void onCacheHit(int sheetIndex, int srcRowNum, int srcColNum, ValueEval result) {
_countCacheHits++;
}
- public void onStartEvaluate(EvaluationCell cell, ICacheEntry entry, Ptg[] ptgs) {
+ public void onStartEvaluate(EvaluationCell cell, ICacheEntry entry) {
_countCacheMisses++;
}
}
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFFormulaEvaluator.java b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFFormulaEvaluator.java
index 02e383f33a..b75fb441fc 100644
--- a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFFormulaEvaluator.java
+++ b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFFormulaEvaluator.java
@@ -22,7 +22,6 @@ import junit.framework.TestCase;
import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.hssf.record.NameRecord;
-import org.apache.poi.hssf.record.formula.Ptg;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
import org.apache.poi.hssf.record.formula.eval.ValueEval;
import org.apache.poi.ss.formula.EvaluationCell;
@@ -179,7 +178,7 @@ public final class TestHSSFFormulaEvaluator extends TestCase {
public EvalCountListener() {
_evalCount = 0;
}
- public void onStartEvaluate(EvaluationCell cell, ICacheEntry entry, Ptg[] ptgs) {
+ public void onStartEvaluate(EvaluationCell cell, ICacheEntry entry) {
_evalCount++;
}
public int getEvalCount() {
diff --git a/src/testcases/org/apache/poi/ss/formula/EvaluationListener.java b/src/testcases/org/apache/poi/ss/formula/EvaluationListener.java
index 1158c73b22..a9ea163cdf 100644
--- a/src/testcases/org/apache/poi/ss/formula/EvaluationListener.java
+++ b/src/testcases/org/apache/poi/ss/formula/EvaluationListener.java
@@ -17,43 +17,42 @@
package org.apache.poi.ss.formula;
-import org.apache.poi.hssf.record.formula.Ptg;
import org.apache.poi.hssf.record.formula.eval.ValueEval;
/**
* Tests should extend this class if they need to track the internal working of the {@link WorkbookEvaluator}.<br/>
- *
+ *
* Default method implementations all do nothing
- *
+ *
* @author Josh Micich
*/
public abstract class EvaluationListener implements IEvaluationListener {
public void onCacheHit(int sheetIndex, int rowIndex, int columnIndex, ValueEval result) {
- // do nothing
+ // do nothing
}
public void onReadPlainValue(int sheetIndex, int rowIndex, int columnIndex, ICacheEntry entry) {
- // do nothing
+ // do nothing
}
- public void onStartEvaluate(EvaluationCell cell, ICacheEntry entry, Ptg[] ptgs) {
- // do nothing
+ public void onStartEvaluate(EvaluationCell cell, ICacheEntry entry) {
+ // do nothing
}
public void onEndEvaluate(ICacheEntry entry, ValueEval result) {
- // do nothing
+ // do nothing
}
public void onClearWholeCache() {
- // do nothing
+ // do nothing
}
public void onClearCachedValue(ICacheEntry entry) {
- // do nothing
+ // do nothing
}
public void onChangeFromBlankValue(int sheetIndex, int rowIndex, int columnIndex,
EvaluationCell cell, ICacheEntry entry) {
- // do nothing
+ // do nothing
}
public void sortDependentCachedValues(ICacheEntry[] entries) {
- // do nothing
+ // do nothing
}
public void onClearDependentCachedValue(ICacheEntry entry, int depth) {
- // do nothing
+ // do nothing
}
}
diff --git a/src/testcases/org/apache/poi/ss/formula/TestEvaluationCache.java b/src/testcases/org/apache/poi/ss/formula/TestEvaluationCache.java
index 311367b0a7..f5a89a00ce 100644
--- a/src/testcases/org/apache/poi/ss/formula/TestEvaluationCache.java
+++ b/src/testcases/org/apache/poi/ss/formula/TestEvaluationCache.java
@@ -36,6 +36,7 @@ import org.apache.poi.hssf.record.formula.eval.ErrorEval;
import org.apache.poi.hssf.record.formula.eval.NumberEval;
import org.apache.poi.hssf.record.formula.eval.StringEval;
import org.apache.poi.hssf.record.formula.eval.ValueEval;
+import org.apache.poi.hssf.usermodel.FormulaExtractor;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFEvaluationTestHelper;
import org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator;
@@ -43,30 +44,30 @@ import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.CellReference;
+import org.apache.poi.ss.formula.IEvaluationListener.ICacheEntry;
import org.apache.poi.ss.formula.PlainCellCache.Loc;
import org.apache.poi.ss.usermodel.CellValue;
/**
- * Tests {@link org.apache.poi.ss.formula.EvaluationCache}. Makes sure that where possible (previously calculated) cached
+ * Tests {@link org.apache.poi.ss.formula.EvaluationCache}. Makes sure that where possible (previously calculated) cached
* values are used. Also checks that changing cell values causes the correct (minimal) set of
* dependent cached values to be cleared.
*
* @author Josh Micich
*/
public class TestEvaluationCache extends TestCase {
-
- private static final class FormulaCellCacheEntryComparer implements Comparator {
- private final Map _formulaCellsByCacheEntry;
+ private static final class FormulaCellCacheEntryComparer implements Comparator<ICacheEntry> {
- public FormulaCellCacheEntryComparer(Map formulaCellsByCacheEntry) {
+ private final Map<ICacheEntry,EvaluationCell> _formulaCellsByCacheEntry;
+
+ public FormulaCellCacheEntryComparer(Map<ICacheEntry,EvaluationCell> formulaCellsByCacheEntry) {
_formulaCellsByCacheEntry = formulaCellsByCacheEntry;
}
- private EvaluationCell getCell(Object a) {
- return (EvaluationCell)_formulaCellsByCacheEntry.get(a);
+ private EvaluationCell getCell(ICacheEntry a) {
+ return _formulaCellsByCacheEntry.get(a);
}
-
- public int compare(Object oa, Object ob) {
+ public int compare(ICacheEntry oa, ICacheEntry ob) {
EvaluationCell a = getCell(oa);
EvaluationCell b = getCell(ob);
int cmp;
@@ -84,19 +85,19 @@ public class TestEvaluationCache extends TestCase {
throw new RuntimeException("Incomplete code - don't know how to order sheets");
}
}
-
+
private static final class EvalListener extends EvaluationListener {
- private final List _logList;
+ private final List<String> _logList;
private final HSSFWorkbook _book;
- private Map _formulaCellsByCacheEntry;
- private Map _plainCellLocsByCacheEntry;
+ private Map<ICacheEntry,EvaluationCell> _formulaCellsByCacheEntry;
+ private Map<ICacheEntry,Loc> _plainCellLocsByCacheEntry;
public EvalListener(HSSFWorkbook wb) {
_book = wb;
- _logList = new ArrayList();
- _formulaCellsByCacheEntry = new HashMap();
- _plainCellLocsByCacheEntry = new HashMap();
+ _logList = new ArrayList<String>();
+ _formulaCellsByCacheEntry = new HashMap<ICacheEntry,EvaluationCell>();
+ _plainCellLocsByCacheEntry = new HashMap<ICacheEntry, Loc>();
}
public void onCacheHit(int sheetIndex, int rowIndex, int columnIndex, ValueEval result) {
log("hit", rowIndex, columnIndex, result);
@@ -106,20 +107,21 @@ public class TestEvaluationCache extends TestCase {
_plainCellLocsByCacheEntry.put(entry, loc);
log("value", rowIndex, columnIndex, entry.getValue());
}
- public void onStartEvaluate(EvaluationCell cell, ICacheEntry entry, Ptg[] ptgs) {
+ public void onStartEvaluate(EvaluationCell cell, ICacheEntry entry) {
_formulaCellsByCacheEntry.put(entry, cell);
- log("start", cell.getRowIndex(), cell.getColumnIndex(), ptgs);
+ HSSFCell hc = _book.getSheetAt(0).getRow(cell.getRowIndex()).getCell(cell.getColumnIndex());
+ log("start", cell.getRowIndex(), cell.getColumnIndex(), FormulaExtractor.getPtgs(hc));
}
public void onEndEvaluate(ICacheEntry entry, ValueEval result) {
- EvaluationCell cell = (EvaluationCell) _formulaCellsByCacheEntry.get(entry);
+ EvaluationCell cell = _formulaCellsByCacheEntry.get(entry);
log("end", cell.getRowIndex(), cell.getColumnIndex(), result);
}
public void onClearCachedValue(ICacheEntry entry) {
int rowIndex;
int columnIndex;
- EvaluationCell cell = (EvaluationCell) _formulaCellsByCacheEntry.get(entry);
+ EvaluationCell cell = _formulaCellsByCacheEntry.get(entry);
if (cell == null) {
- Loc loc = (Loc)_plainCellLocsByCacheEntry.get(entry);
+ Loc loc = _plainCellLocsByCacheEntry.get(entry);
if (loc == null) {
throw new IllegalStateException("can't find cell or location");
}
@@ -135,7 +137,7 @@ public class TestEvaluationCache extends TestCase {
Arrays.sort(entries, new FormulaCellCacheEntryComparer(_formulaCellsByCacheEntry));
}
public void onClearDependentCachedValue(ICacheEntry entry, int depth) {
- EvaluationCell cell = (EvaluationCell) _formulaCellsByCacheEntry.get(entry);
+ EvaluationCell cell = _formulaCellsByCacheEntry.get(entry);
log("clear" + depth, cell.getRowIndex(), cell.getColumnIndex(), entry.getValue());
}
@@ -395,7 +397,7 @@ public class TestEvaluationCache extends TestCase {
"hit B3 2",
"hit C2 62",
"start C3 SUM(D3:E4)",
- "hit D3 16", "hit E3 17",
+ "hit D3 16", "hit E3 17",
// "value D4 #BLANK#", "value E4 #BLANK#",
"end C3 33",
"end B2 91",
@@ -560,7 +562,7 @@ public class TestEvaluationCache extends TestCase {
confirmLog(ms, new String[] {
"hit A1 14",
});
-
+
ms.setCellValue("D1", 1);
ms.getAndClearLog();
@@ -573,7 +575,7 @@ public class TestEvaluationCache extends TestCase {
"end A1 15",
});
}
-
+
/**
* Make sure that when blank cells are changed to value/formula cells, any dependent formulas
* have their cached results cleared.
@@ -601,7 +603,7 @@ public class TestEvaluationCache extends TestCase {
cv = fe.evaluate(cellA1); // B1 was used to evaluate A1
assertEquals(2.2, cv.getNumberValue(), 0.0);
- cellB1.setCellValue(0.4); // changing B1, so A1 cached result should be cleared
+ cellB1.setCellValue(0.4); // changing B1, so A1 cached result should be cleared
fe.notifyUpdateCell(cellB1);
cv = fe.evaluate(cellA1);
if (cv.getNumberValue() == 2.2) {
@@ -610,7 +612,7 @@ public class TestEvaluationCache extends TestCase {
}
assertEquals(2.6, cv.getNumberValue(), 0.0);
}
-
+
/**
* same use-case as the test for bug 46053, but checking trace values too
*/
@@ -642,7 +644,7 @@ public class TestEvaluationCache extends TestCase {
"end A1 2.6",
});
}
-
+
private static void confirmEvaluate(MySheet ms, String cellRefText, double expectedValue) {
ValueEval v = ms.evaluateCell(cellRefText);
assertEquals(NumberEval.class, v.getClass());
@@ -692,7 +694,6 @@ public class TestEvaluationCache extends TestCase {
private static void debugPrint(PrintStream ps, String[] log) {
for (int i = 0; i < log.length; i++) {
ps.println('"' + log[i] + "\",");
-
}
}
}