cellB1.setCellValue(1.0); // range will be C1:D1
HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
CellValue cv;
try {
cv = fe.evaluate(cellA1);
} catch (IllegalArgumentException e) {
if (e.getMessage().equals("Unexpected ref arg class (org.apache.poi.ss.formula.LazyAreaEval)")) {
throw new AssertionFailedError("Identified bug 46948");
}
throw e;
}
assertEquals(12.0, cv.getNumberValue(), 0.0);
cellB1.setCellValue(2.0); // range will be C1:E1
fe.notifyUpdateCell(cellB1);
cv = fe.evaluate(cellA1);
assertEquals(21.0, cv.getNumberValue(), 0.0);
cellB1.setCellValue(0.0); // range will be C1:C1
fe.notifyUpdateCell(cellB1);
cv = fe.evaluate(cellA1);
assertEquals(5.0, cv.getNumberValue(), 0.0);
}