]> source.dussan.org Git - poi.git/commitdiff
added extra RVA test case (for bug 45206)
authorJosh Micich <josh@apache.org>
Sun, 15 Jun 2008 22:26:06 +0000 (22:26 +0000)
committerJosh Micich <josh@apache.org>
Sun, 15 Jun 2008 22:26:06 +0000 (22:26 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@668014 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/record/formula/Ref3DPtg.java
src/testcases/org/apache/poi/hssf/data/testRVA.xls
src/testcases/org/apache/poi/hssf/model/TestRVA.java

index 87e455ba8cb66051a1a63eb8c8370c5271787667..9306516596b351cd7270f1e02ae2fd4ed3eada68 100644 (file)
    limitations under the License.
 ==================================================================== */
 
-
 package org.apache.poi.hssf.record.formula;
 
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.hssf.record.RecordInputStream;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.hssf.util.CellReference;
 import org.apache.poi.hssf.util.RangeAddress;
 import org.apache.poi.hssf.util.SheetReferences;
@@ -69,16 +68,15 @@ public class Ref3DPtg extends OperandPtg {
     }
 
     public String toString() {
-        StringBuffer buffer = new StringBuffer();
-
-        buffer.append("Ref3dPtg\n");
-        buffer.append("Index to Extern Sheet = " + getExternSheetIndex()).append("\n");
-        buffer.append("Row = " + getRow()).append("\n");
-        buffer.append("Col  = " + getColumn()).append("\n");
-        buffer.append("ColRowRel= "
-        + isRowRelative()).append("\n");
-        buffer.append("ColRel   = " + isColRelative()).append("\n");
-        return buffer.toString();
+        CellReference cr = new CellReference(getRow(), getColumn(), !isRowRelative(),!isColRelative());
+        StringBuffer sb = new StringBuffer();
+        sb.append(getClass().getName());
+        sb.append(" [");
+        sb.append("sheetIx=").append(getExternSheetIndex());
+        sb.append(" ! ");
+        sb.append(cr.formatAsString());
+        sb.append("]");
+        return sb.toString();
     }
 
     public void writeBytes(byte [] array, int offset) {
index 327edbb4cbf11e7ed0a2e6bf2cafdaa54a041198..f23821117e96c2c5e9649a8c5227748bb519ae5a 100644 (file)
Binary files a/src/testcases/org/apache/poi/hssf/data/testRVA.xls and b/src/testcases/org/apache/poi/hssf/data/testRVA.xls differ
index f8c70eb7b836df346d539b8fd6cfffeb07122969..ca74c6e2dbaf279d28a2db2aba8f947597273e01 100644 (file)
@@ -23,7 +23,6 @@ import junit.framework.TestCase;
 import org.apache.poi.hssf.HSSFTestDataSamples;
 import org.apache.poi.hssf.record.formula.AttrPtg;
 import org.apache.poi.hssf.record.formula.Ptg;
-import org.apache.poi.hssf.record.formula.RefPtgBase;
 import org.apache.poi.hssf.usermodel.FormulaExtractor;
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFRow;
@@ -60,7 +59,7 @@ public final class TestRVA extends TestCase {
                        }
                        String formula = cell.getCellFormula();
                        try {
-                               confirmCell(cell, formula);
+                               confirmCell(cell, formula, wb);
                        } catch (AssertionFailedError e) {
                                System.err.println("Problem with row[" + rowIx + "] formula '" + formula + "'");
                                System.err.println(e.getMessage());
@@ -79,9 +78,9 @@ public final class TestRVA extends TestCase {
                }
        }
 
-       private void confirmCell(HSSFCell formulaCell, String formula) {
+       private void confirmCell(HSSFCell formulaCell, String formula, HSSFWorkbook wb) {
                Ptg[] excelPtgs = FormulaExtractor.getPtgs(formulaCell);
-               Ptg[] poiPtgs = FormulaParser.parse(formula, null);
+               Ptg[] poiPtgs = FormulaParser.parse(formula, wb);
                int nExcelTokens = excelPtgs.length;
                int nPoiTokens = poiPtgs.length;
                if (nExcelTokens != nPoiTokens) {
@@ -122,6 +121,10 @@ public final class TestRVA extends TestCase {
                        }
                        sb.append(NEW_LINE);
                }
+               if (false) { // set 'true' to see trace of RVA values
+                       System.out.println(formula);
+                       System.out.println(sb.toString());
+               }
                if (hasMismatch) {
                        throw new AssertionFailedError(sb.toString());
                }