Author: centic
Date: Sun Apr  3 13:25:27 2022
New Revision: 1899534

URL: http://svn.apache.org/viewvc?rev=1899534&view=rev
Log:
Various smaller changes

Improve exception messages
Add more JavaDoc
Provide more information on test-failures

Modified:
    poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/FormulaParser.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/LazyAreaEval.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/util/AreaReference.java
    
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/eval/TestFormulasFromSpreadsheet.java
    
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestConcat.java

Modified: 
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/FormulaParser.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/FormulaParser.java?rev=1899534&r1=1899533&r2=1899534&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/FormulaParser.java 
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/FormulaParser.java 
Sun Apr  3 13:25:27 2022
@@ -1107,7 +1107,7 @@ public final class FormulaParser {
 
         public CellReference getCellReference() {
             if (_type != Type.CELL) {
-                throw new IllegalStateException("Not applicable to this type");
+                throw new IllegalStateException("Not applicable to this 
reference-type, expected CELL, but had " + _type);
             }
             return new CellReference(_rep);
         }

Modified: 
poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/LazyAreaEval.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/LazyAreaEval.java?rev=1899534&r1=1899533&r2=1899534&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/LazyAreaEval.java 
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/LazyAreaEval.java Sun 
Apr  3 13:25:27 2022
@@ -45,6 +45,7 @@ final class LazyAreaEval extends AreaEva
     public ValueEval getRelativeValue(int relativeRowIndex, int 
relativeColumnIndex) {
         return getRelativeValue(getFirstSheetIndex(), relativeRowIndex, 
relativeColumnIndex);
     }
+
     @Override
     public ValueEval getRelativeValue(int sheetIndex, int relativeRowIndex, 
int relativeColumnIndex) {
         int rowIx = (relativeRowIndex + getFirstRow() ) ;
@@ -60,6 +61,7 @@ final class LazyAreaEval extends AreaEva
 
         return new LazyAreaEval(area, _evaluator);
     }
+
     @Override
     public LazyAreaEval getRow(int rowIndex) {
         if (rowIndex >= getHeight()) {
@@ -69,6 +71,7 @@ final class LazyAreaEval extends AreaEva
         int absRowIx = getFirstRow() + rowIndex;
         return new LazyAreaEval(absRowIx, getFirstColumn(), absRowIx, 
getLastColumn(), _evaluator);
     }
+
     @Override
     public LazyAreaEval getColumn(int columnIndex) {
         if (columnIndex >= getWidth()) {

Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/util/AreaReference.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/util/AreaReference.java?rev=1899534&r1=1899533&r2=1899534&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/util/AreaReference.java 
(original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/util/AreaReference.java Sun 
Apr  3 13:25:27 2022
@@ -170,6 +170,14 @@ public class AreaReference {
         return splitAreaReferences(reference).length == 1;
     }
 
+    /**
+     * Construct an AreaReference which spans one more rows
+     *
+     * @param version Is the spreadsheet in format Excel97 or newer Excel 
versions
+     * @param start The 1-based start-index of the rows
+     * @param end The 1-based end-index of the rows
+     * @return An AreaReference that spans the given rows
+     */
     public static AreaReference getWholeRow(SpreadsheetVersion version, String 
start, String end) {
         if (null == version) {
             version = DEFAULT_SPREADSHEET_VERSION;
@@ -177,6 +185,17 @@ public class AreaReference {
         return new AreaReference("$A" + start + ":$" + 
version.getLastColumnName() + end, version);
     }
 
+    /**
+     * Construct an AreaReference which spans one more columns.
+     *
+     * Columns are specified in the Excel format, i.e. "A" is the first column
+     * "B" the seconds, ... "AA", ..
+     *
+     * @param version Is the spreadsheet in format Excel97 or newer Excel 
versions
+     * @param start The ABC-based start-index of the columns
+     * @param end The ABC-based end-index of the columns
+     * @return An AreaReference that spans the given columns
+     */
     public static AreaReference getWholeColumn(SpreadsheetVersion version, 
String start, String end) {
         if (null == version) {
             version = DEFAULT_SPREADSHEET_VERSION;

Modified: 
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/eval/TestFormulasFromSpreadsheet.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/eval/TestFormulasFromSpreadsheet.java?rev=1899534&r1=1899533&r2=1899534&view=diff
==============================================================================
--- 
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/eval/TestFormulasFromSpreadsheet.java
 (original)
+++ 
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/eval/TestFormulasFromSpreadsheet.java
 Sun Apr  3 13:25:27 2022
@@ -37,6 +37,7 @@ import org.apache.poi.ss.usermodel.CellT
 import org.apache.poi.ss.usermodel.CellValue;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.util.CellReference;
 import org.apache.poi.util.LocaleUtil;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.params.ParameterizedTest;
@@ -171,13 +172,16 @@ public final class TestFormulasFromSprea
            CellValue actValue = evaluator.evaluate(c);
            Cell expValue = (expectedValuesRow == null) ? null : 
expectedValuesRow.getCell(colnum);
 
-           String msg = String.format(Locale.ROOT, "Function '%s': Formula: %s 
@ %d:%d"
-                   , targetFunctionName, c.getCellFormula(), 
formulasRow.getRowNum(), colnum);
+           String msg = String.format(Locale.ROOT, "Function '%s': Formula: %s 
@ %d:%d (%s)"
+                   , targetFunctionName, c.getCellFormula(), 
formulasRow.getRowNum(), colnum,
+                   new CellReference(formulasRow.getRowNum(), 
colnum).formatAsString());
 
            assertNotNull(expValue, msg + " - Bad setup data expected value is 
null");
            assertNotNull(actValue, msg + " - actual value was null");
 
            final CellType cellType = expValue.getCellType();
+           msg += ", cellType: " + cellType + ", actCellType: " + 
actValue.getCellType() + ": " + actValue.formatAsString();
+
            switch (cellType) {
                case BLANK:
                    assertEquals(CellType.BLANK, actValue.getCellType(), msg);

Modified: 
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestConcat.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestConcat.java?rev=1899534&r1=1899533&r2=1899534&view=diff
==============================================================================
--- 
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestConcat.java 
(original)
+++ 
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestConcat.java 
Sun Apr  3 13:25:27 2022
@@ -18,8 +18,11 @@
 package org.apache.poi.ss.formula.functions;
 
 import org.apache.poi.hssf.usermodel.*;
+import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.CellType;
 import org.apache.poi.ss.usermodel.CellValue;
+import org.apache.poi.ss.usermodel.FormulaEvaluator;
+import org.apache.poi.ss.usermodel.Sheet;
 import org.junit.jupiter.api.Test;
 
 import java.io.IOException;
@@ -35,8 +38,8 @@ final class TestConcat {
     @Test
     void testConcatWithStrings() throws IOException {
         try (HSSFWorkbook wb = initWorkbook1()) {
-            HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
-            HSSFCell cell = wb.getSheetAt(0).getRow(0).createCell(0);
+            FormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
+            Cell cell = wb.getSheetAt(0).getRow(0).createCell(0);
             confirmResult(fe, cell, "CONCAT(\"The\",\" \",\"sun\",\" 
\",\"will\",\" \",\"come\",\" \",\"up\",\" \",\"tomorrow.\")",
                     "The sun will come up tomorrow.");
         }
@@ -45,8 +48,8 @@ final class TestConcat {
     @Test
     void testConcatWithColumns() throws IOException {
         try (HSSFWorkbook wb = initWorkbook1()) {
-            HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
-            HSSFCell cell = wb.getSheetAt(0).getRow(0).createCell(0);
+            FormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
+            Cell cell = wb.getSheetAt(0).getRow(0).createCell(0);
             confirmResult(fe, cell, "CONCAT(B:B, C:C)", 
"A’sa1a2a4a5a6a7B’sb1b2b4b5b6b7");
         }
     }
@@ -54,8 +57,8 @@ final class TestConcat {
     @Test
     void testConcatWithCellRanges() throws IOException {
         try (HSSFWorkbook wb = initWorkbook1()) {
-            HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
-            HSSFCell cell = wb.getSheetAt(0).getRow(0).createCell(0);
+            FormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
+            Cell cell = wb.getSheetAt(0).getRow(0).createCell(0);
             confirmResult(fe, cell, "CONCAT(B2:C8)", 
"a1b1a2b2a4b4a5b5a6b6a7b7");
         }
     }
@@ -63,8 +66,8 @@ final class TestConcat {
     @Test
     void testConcatWithCellRefs() throws IOException {
         try (HSSFWorkbook wb = initWorkbook2()) {
-            HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
-            HSSFCell cell = wb.getSheetAt(0).createRow(5).createCell(0);
+            FormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
+            Cell cell = wb.getSheetAt(0).createRow(5).createCell(0);
             confirmResult(fe, cell, "CONCAT(\"Stream population for \", A2,\" 
\", A3, \" is \", A4, \"/mile.\")",
                     "Stream population for brook trout species is 32/mile.");
             confirmResult(fe, cell, "CONCAT(B2,\" \", C2)", "Andreas Hauser");
@@ -76,7 +79,7 @@ final class TestConcat {
 
     private HSSFWorkbook initWorkbook1() {
         HSSFWorkbook wb = new HSSFWorkbook();
-        HSSFSheet sheet = wb.createSheet();
+        Sheet sheet = wb.createSheet();
         addRow(sheet, 0, null, "A’s", "B’s");
         for (int i = 1; i <= 7; i++) {
             if (i != 3) {
@@ -88,7 +91,7 @@ final class TestConcat {
 
     private HSSFWorkbook initWorkbook2() {
         HSSFWorkbook wb = new HSSFWorkbook();
-        HSSFSheet sheet = wb.createSheet();
+        Sheet sheet = wb.createSheet();
         addRow(sheet, 0, "Data", "First Name", "Last name");
         addRow(sheet, 1, "brook trout", "Andreas", "Hauser");
         addRow(sheet, 2, "species", "Fourth", "Pine");
@@ -96,7 +99,7 @@ final class TestConcat {
         return wb;
     }
 
-    private static void confirmResult(HSSFFormulaEvaluator fe, HSSFCell cell, 
String formulaText, String expectedResult) {
+    private static void confirmResult(FormulaEvaluator fe, Cell cell, String 
formulaText, String expectedResult) {
         cell.setCellFormula(formulaText);
         fe.notifyUpdateCell(cell);
         CellValue result = fe.evaluate(cell);



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to