You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by fa...@apache.org on 2021/05/22 20:56:49 UTC

svn commit: r1890120 [34/43] - in /poi/trunk/poi/src: main/java/org/apache/poi/ main/java/org/apache/poi/ddf/ main/java/org/apache/poi/extractor/ main/java/org/apache/poi/hpsf/ main/java/org/apache/poi/hssf/ main/java/org/apache/poi/hssf/dev/ main/java...

Modified: poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestEscherGraphics2d.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestEscherGraphics2d.java?rev=1890120&r1=1890119&r2=1890120&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestEscherGraphics2d.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestEscherGraphics2d.java Sat May 22 20:56:44 2021
@@ -35,109 +35,109 @@ import org.junit.jupiter.api.Test;
  */
 final class TestEscherGraphics2d {
     private HSSFWorkbook workbook;
-	private HSSFShapeGroup escherGroup;
-	private EscherGraphics2d graphics;
+    private HSSFShapeGroup escherGroup;
+    private EscherGraphics2d graphics;
 
-	@BeforeEach
+    @BeforeEach
     void setUp() {
-		workbook = new HSSFWorkbook();
-		HSSFSheet sheet = workbook.createSheet("test");
-		escherGroup = sheet.createDrawingPatriarch().createGroup(new HSSFClientAnchor(0,0,1023,255,(short)0,0,(short) 0,0));
-		escherGroup = new HSSFShapeGroup(null, new HSSFChildAnchor());
-		EscherGraphics g = new EscherGraphics(escherGroup, workbook, Color.black, 1.0f);
-		graphics = new EscherGraphics2d(g);
-	}
-
-	@AfterEach
-	void closeResources() throws IOException {
-	    workbook.close();
-	}
-
-	@Test
-	void testDrawString() {
-		graphics.drawString("This is a test", 10, 10);
-		HSSFTextbox t = (HSSFTextbox) escherGroup.getChildren().get(0);
-		assertEquals("This is a test", t.getString().getString());
-
-		// Check that with a valid font, it's still ok
-		Font font = new Font("Forte", Font.PLAIN, 12);
-		graphics.setFont(font);
-		graphics.drawString("This is another test", 10, 10);
-
-		// And test with ones that need the style appending
-		font = new Font("dialog", Font.PLAIN, 12);
-		graphics.setFont(font);
-		graphics.drawString("This is another test", 10, 10);
-
-		font = new Font("dialog", Font.BOLD, 12);
-		graphics.setFont(font);
-		graphics.drawString("This is another test", 10, 10);
-
-		// But with an invalid font, we get an exception
-		font = new Font("IamAmadeUPfont", Font.PLAIN, 22);
-		graphics.setFont(font);
-		assertThrows(IllegalArgumentException.class, () -> graphics.drawString("This is another test", 10, 10));
-	}
+        workbook = new HSSFWorkbook();
+        HSSFSheet sheet = workbook.createSheet("test");
+        escherGroup = sheet.createDrawingPatriarch().createGroup(new HSSFClientAnchor(0,0,1023,255,(short)0,0,(short) 0,0));
+        escherGroup = new HSSFShapeGroup(null, new HSSFChildAnchor());
+        EscherGraphics g = new EscherGraphics(escherGroup, workbook, Color.black, 1.0f);
+        graphics = new EscherGraphics2d(g);
+    }
+
+    @AfterEach
+    void closeResources() throws IOException {
+        workbook.close();
+    }
+
+    @Test
+    void testDrawString() {
+        graphics.drawString("This is a test", 10, 10);
+        HSSFTextbox t = (HSSFTextbox) escherGroup.getChildren().get(0);
+        assertEquals("This is a test", t.getString().getString());
+
+        // Check that with a valid font, it's still ok
+        Font font = new Font("Forte", Font.PLAIN, 12);
+        graphics.setFont(font);
+        graphics.drawString("This is another test", 10, 10);
+
+        // And test with ones that need the style appending
+        font = new Font("dialog", Font.PLAIN, 12);
+        graphics.setFont(font);
+        graphics.drawString("This is another test", 10, 10);
+
+        font = new Font("dialog", Font.BOLD, 12);
+        graphics.setFont(font);
+        graphics.drawString("This is another test", 10, 10);
+
+        // But with an invalid font, we get an exception
+        font = new Font("IamAmadeUPfont", Font.PLAIN, 22);
+        graphics.setFont(font);
+        assertThrows(IllegalArgumentException.class, () -> graphics.drawString("This is another test", 10, 10));
+    }
 
-	@Test
+    @Test
     void testFillRect() {
-		graphics.fillRect( 10, 10, 20, 20 );
-		HSSFSimpleShape s = (HSSFSimpleShape) escherGroup.getChildren().get(0);
-		assertEquals(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE, s.getShapeType());
-		assertEquals(10, s.getAnchor().getDx1());
-		assertEquals(10, s.getAnchor().getDy1());
-		assertEquals(30, s.getAnchor().getDy2());
-		assertEquals(30, s.getAnchor().getDx2());
-	}
+        graphics.fillRect( 10, 10, 20, 20 );
+        HSSFSimpleShape s = (HSSFSimpleShape) escherGroup.getChildren().get(0);
+        assertEquals(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE, s.getShapeType());
+        assertEquals(10, s.getAnchor().getDx1());
+        assertEquals(10, s.getAnchor().getDy1());
+        assertEquals(30, s.getAnchor().getDy2());
+        assertEquals(30, s.getAnchor().getDx2());
+    }
 
-	@Test
+    @Test
     void testGetFontMetrics() {
-		FontMetrics fontMetrics = graphics.getFontMetrics(graphics.getFont());
-		if (isDialogPresent()) {
-		    // if dialog is returned we can't run the test properly.
-			return;
-		}
-		assertEquals(7, fontMetrics.charWidth('X'));
-		assertEquals("java.awt.Font[family=Arial,name=Arial,style=plain,size=10]", fontMetrics.getFont().toString());
-	}
+        FontMetrics fontMetrics = graphics.getFontMetrics(graphics.getFont());
+        if (isDialogPresent()) {
+            // if dialog is returned we can't run the test properly.
+            return;
+        }
+        assertEquals(7, fontMetrics.charWidth('X'));
+        assertEquals("java.awt.Font[family=Arial,name=Arial,style=plain,size=10]", fontMetrics.getFont().toString());
+    }
 
-	@Test
+    @Test
     void testSetFont() {
-		Font f = new Font("Helvetica", Font.PLAIN, 12);
-		graphics.setFont(f);
-		assertEquals(f, graphics.getFont());
-	}
+        Font f = new Font("Helvetica", Font.PLAIN, 12);
+        graphics.setFont(f);
+        assertEquals(f, graphics.getFont());
+    }
 
-	@Test
+    @Test
     void testSetColor() {
-		graphics.setColor(Color.red);
-		assertEquals(Color.red, graphics.getColor());
-	}
+        graphics.setColor(Color.red);
+        assertEquals(Color.red, graphics.getColor());
+    }
 
-	@Test
+    @Test
     void testGetFont() {
-		Font f = graphics.getFont();
-		if (isDialogPresent()) {
-		    // if dialog is returned we can't run the test properly.
-			return;
+        Font f = graphics.getFont();
+        if (isDialogPresent()) {
+            // if dialog is returned we can't run the test properly.
+            return;
         }
 
-		assertEquals("java.awt.Font[family=Arial,name=Arial,style=plain,size=10]", f.toString());
-	}
+        assertEquals("java.awt.Font[family=Arial,name=Arial,style=plain,size=10]", f.toString());
+    }
 
-	private boolean isDialogPresent() {
-		String fontDebugStr = graphics.getFont().toString();
-		return fontDebugStr.contains("dialog") || fontDebugStr.contains("Dialog");
-	}
+    private boolean isDialogPresent() {
+        String fontDebugStr = graphics.getFont().toString();
+        return fontDebugStr.contains("dialog") || fontDebugStr.contains("Dialog");
+    }
 
-	@Test
+    @Test
     void testDraw() {
-		graphics.draw(new Line2D.Double(10,10,20,20));
-		HSSFSimpleShape s = (HSSFSimpleShape) escherGroup.getChildren().get(0);
+        graphics.draw(new Line2D.Double(10,10,20,20));
+        HSSFSimpleShape s = (HSSFSimpleShape) escherGroup.getChildren().get(0);
         assertEquals(s.getShapeType(), HSSFSimpleShape.OBJECT_TYPE_LINE);
-		assertEquals(10, s.getAnchor().getDx1());
-		assertEquals(10, s.getAnchor().getDy1());
-		assertEquals(20, s.getAnchor().getDx2());
-		assertEquals(20, s.getAnchor().getDy2());
-	}
+        assertEquals(10, s.getAnchor().getDx1());
+        assertEquals(10, s.getAnchor().getDy1());
+        assertEquals(20, s.getAnchor().getDx2());
+        assertEquals(20, s.getAnchor().getDy2());
+    }
 }

Modified: poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestExternalReferenceChange.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestExternalReferenceChange.java?rev=1890120&r1=1890119&r2=1890120&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestExternalReferenceChange.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestExternalReferenceChange.java Sat May 22 20:56:44 2021
@@ -29,39 +29,39 @@ import org.junit.jupiter.api.Test;
 
 class TestExternalReferenceChange {
 
-	private static final String MAIN_WORKBOOK_FILENAME = "52575_main.xls";
-	private static final String SOURCE_DUMMY_WORKBOOK_FILENAME = "source_dummy.xls";
-	private static final String SOURCE_WORKBOOK_FILENAME = "52575_source.xls";
+    private static final String MAIN_WORKBOOK_FILENAME = "52575_main.xls";
+    private static final String SOURCE_DUMMY_WORKBOOK_FILENAME = "source_dummy.xls";
+    private static final String SOURCE_WORKBOOK_FILENAME = "52575_source.xls";
 
-	@Test
-	void testDummyToSource() throws IOException {
-		try (HSSFWorkbook mainWorkbook = HSSFTestDataSamples.openSampleWorkbook(MAIN_WORKBOOK_FILENAME);
-			 HSSFWorkbook sourceWorkbook = HSSFTestDataSamples.openSampleWorkbook(SOURCE_WORKBOOK_FILENAME)) {
+    @Test
+    void testDummyToSource() throws IOException {
+        try (HSSFWorkbook mainWorkbook = HSSFTestDataSamples.openSampleWorkbook(MAIN_WORKBOOK_FILENAME);
+             HSSFWorkbook sourceWorkbook = HSSFTestDataSamples.openSampleWorkbook(SOURCE_WORKBOOK_FILENAME)) {
 
-			assertNotNull(mainWorkbook);
-			assertNotNull(sourceWorkbook);
+            assertNotNull(mainWorkbook);
+            assertNotNull(sourceWorkbook);
 
-			boolean changed = mainWorkbook.changeExternalReference("DOESNOTEXIST", SOURCE_WORKBOOK_FILENAME);
-			assertFalse(changed);
+            boolean changed = mainWorkbook.changeExternalReference("DOESNOTEXIST", SOURCE_WORKBOOK_FILENAME);
+            assertFalse(changed);
 
-			changed = mainWorkbook.changeExternalReference(SOURCE_DUMMY_WORKBOOK_FILENAME, SOURCE_WORKBOOK_FILENAME);
-			assertTrue(changed);
+            changed = mainWorkbook.changeExternalReference(SOURCE_DUMMY_WORKBOOK_FILENAME, SOURCE_WORKBOOK_FILENAME);
+            assertTrue(changed);
 
-			HSSFSheet lSheet = mainWorkbook.getSheetAt(0);
-			HSSFCell lA1Cell = lSheet.getRow(0).getCell(0);
+            HSSFSheet lSheet = mainWorkbook.getSheetAt(0);
+            HSSFCell lA1Cell = lSheet.getRow(0).getCell(0);
 
-			assertEquals(CellType.FORMULA, lA1Cell.getCellType());
+            assertEquals(CellType.FORMULA, lA1Cell.getCellType());
 
-			HSSFFormulaEvaluator lMainWorkbookEvaluator = new HSSFFormulaEvaluator(mainWorkbook);
-			HSSFFormulaEvaluator lSourceEvaluator = new HSSFFormulaEvaluator(sourceWorkbook);
-			HSSFFormulaEvaluator.setupEnvironment(
-					new String[]{MAIN_WORKBOOK_FILENAME, SOURCE_WORKBOOK_FILENAME},
-					new HSSFFormulaEvaluator[]{lMainWorkbookEvaluator, lSourceEvaluator});
+            HSSFFormulaEvaluator lMainWorkbookEvaluator = new HSSFFormulaEvaluator(mainWorkbook);
+            HSSFFormulaEvaluator lSourceEvaluator = new HSSFFormulaEvaluator(sourceWorkbook);
+            HSSFFormulaEvaluator.setupEnvironment(
+                    new String[]{MAIN_WORKBOOK_FILENAME, SOURCE_WORKBOOK_FILENAME},
+                    new HSSFFormulaEvaluator[]{lMainWorkbookEvaluator, lSourceEvaluator});
 
-			assertEquals(CellType.NUMERIC, lMainWorkbookEvaluator.evaluateFormulaCell(lA1Cell));
+            assertEquals(CellType.NUMERIC, lMainWorkbookEvaluator.evaluateFormulaCell(lA1Cell));
 
-			assertEquals(20.0d, lA1Cell.getNumericCellValue(), 0.00001d);
-		}
-	}
+            assertEquals(20.0d, lA1Cell.getNumericCellValue(), 0.00001d);
+        }
+    }
 
 }

Modified: poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorDocs.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorDocs.java?rev=1890120&r1=1890119&r2=1890120&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorDocs.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestFormulaEvaluatorDocs.java Sat May 22 20:56:44 2021
@@ -34,95 +34,95 @@ import org.junit.jupiter.api.Test;
  */
 final class TestFormulaEvaluatorDocs {
 
-	/**
-	 * https://poi.apache.org/hssf/eval.html#EvaluateAll
-	 */
-	@Test
-	void testEvaluateAll() throws IOException {
-		try (HSSFWorkbook wb = new HSSFWorkbook()) {
-			HSSFSheet s1 = wb.createSheet();
-			HSSFSheet s2 = wb.createSheet();
-			wb.setSheetName(0, "S1");
-			wb.setSheetName(1, "S2");
-
-			HSSFRow s1r1 = s1.createRow(0);
-			HSSFRow s1r2 = s1.createRow(1);
-			HSSFRow s2r1 = s2.createRow(0);
-
-			HSSFCell s1r1c1 = s1r1.createCell(0);
-			HSSFCell s1r1c2 = s1r1.createCell(1);
-			HSSFCell s1r1c3 = s1r1.createCell(2);
-			s1r1c1.setCellValue(22.3);
-			s1r1c2.setCellValue(33.4);
-			s1r1c3.setCellFormula("SUM(A1:B1)");
-
-			HSSFCell s1r2c1 = s1r2.createCell(0);
-			HSSFCell s1r2c2 = s1r2.createCell(1);
-			HSSFCell s1r2c3 = s1r2.createCell(2);
-			s1r2c1.setCellValue(-1.2);
-			s1r2c2.setCellValue(-3.4);
-			s1r2c3.setCellFormula("SUM(A2:B2)");
-
-			HSSFCell s2r1c1 = s2r1.createCell(0);
-			s2r1c1.setCellFormula("S1!A1");
-
-			// Not evaluated yet
-			assertEquals(0.0, s1r1c3.getNumericCellValue(), 0);
-			assertEquals(0.0, s1r2c3.getNumericCellValue(), 0);
-			assertEquals(0.0, s2r1c1.getNumericCellValue(), 0);
-
-			// Do a full evaluate, as per our docs
-			// uses evaluateFormulaCell()
-			for (Sheet sheet : wb) {
-				HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(wb);
-				for (Row r : sheet) {
-					for (Cell c : r) {
-						if (c.getCellType() == CellType.FORMULA) {
-							evaluator.evaluateFormulaCell(c);
-
-							// For testing - all should be numeric
-							assertEquals(CellType.NUMERIC, evaluator.evaluateFormulaCell(c));
-						}
-					}
-				}
-			}
-
-			// Check now as expected
-			assertEquals(55.7, wb.getSheetAt(0).getRow(0).getCell(2).getNumericCellValue(), 0);
-			assertEquals("SUM(A1:B1)", wb.getSheetAt(0).getRow(0).getCell(2).getCellFormula());
-			assertEquals(CellType.FORMULA, wb.getSheetAt(0).getRow(0).getCell(2).getCellType());
-
-			assertEquals(-4.6, wb.getSheetAt(0).getRow(1).getCell(2).getNumericCellValue(), 0);
-			assertEquals("SUM(A2:B2)", wb.getSheetAt(0).getRow(1).getCell(2).getCellFormula());
-			assertEquals(CellType.FORMULA, wb.getSheetAt(0).getRow(1).getCell(2).getCellType());
-
-			assertEquals(22.3, wb.getSheetAt(1).getRow(0).getCell(0).getNumericCellValue(), 0);
-			assertEquals("'S1'!A1", wb.getSheetAt(1).getRow(0).getCell(0).getCellFormula());
-			assertEquals(CellType.FORMULA, wb.getSheetAt(1).getRow(0).getCell(0).getCellType());
-
-
-			// Now do the alternate call, which zaps the formulas
-			// uses evaluateInCell()
-			for (Sheet sheet : wb) {
-				HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(wb);
-
-				for (Row r : sheet) {
-					for (Cell c : r) {
-						if (c.getCellType() == CellType.FORMULA) {
-							evaluator.evaluateInCell(c);
-						}
-					}
-				}
-			}
-
-			assertEquals(55.7, wb.getSheetAt(0).getRow(0).getCell(2).getNumericCellValue(), 0);
-			assertEquals(CellType.NUMERIC, wb.getSheetAt(0).getRow(0).getCell(2).getCellType());
-
-			assertEquals(-4.6, wb.getSheetAt(0).getRow(1).getCell(2).getNumericCellValue(), 0);
-			assertEquals(CellType.NUMERIC, wb.getSheetAt(0).getRow(1).getCell(2).getCellType());
-
-			assertEquals(22.3, wb.getSheetAt(1).getRow(0).getCell(0).getNumericCellValue(), 0);
-			assertEquals(CellType.NUMERIC, wb.getSheetAt(1).getRow(0).getCell(0).getCellType());
-		}
-	}
+    /**
+     * https://poi.apache.org/hssf/eval.html#EvaluateAll
+     */
+    @Test
+    void testEvaluateAll() throws IOException {
+        try (HSSFWorkbook wb = new HSSFWorkbook()) {
+            HSSFSheet s1 = wb.createSheet();
+            HSSFSheet s2 = wb.createSheet();
+            wb.setSheetName(0, "S1");
+            wb.setSheetName(1, "S2");
+
+            HSSFRow s1r1 = s1.createRow(0);
+            HSSFRow s1r2 = s1.createRow(1);
+            HSSFRow s2r1 = s2.createRow(0);
+
+            HSSFCell s1r1c1 = s1r1.createCell(0);
+            HSSFCell s1r1c2 = s1r1.createCell(1);
+            HSSFCell s1r1c3 = s1r1.createCell(2);
+            s1r1c1.setCellValue(22.3);
+            s1r1c2.setCellValue(33.4);
+            s1r1c3.setCellFormula("SUM(A1:B1)");
+
+            HSSFCell s1r2c1 = s1r2.createCell(0);
+            HSSFCell s1r2c2 = s1r2.createCell(1);
+            HSSFCell s1r2c3 = s1r2.createCell(2);
+            s1r2c1.setCellValue(-1.2);
+            s1r2c2.setCellValue(-3.4);
+            s1r2c3.setCellFormula("SUM(A2:B2)");
+
+            HSSFCell s2r1c1 = s2r1.createCell(0);
+            s2r1c1.setCellFormula("S1!A1");
+
+            // Not evaluated yet
+            assertEquals(0.0, s1r1c3.getNumericCellValue(), 0);
+            assertEquals(0.0, s1r2c3.getNumericCellValue(), 0);
+            assertEquals(0.0, s2r1c1.getNumericCellValue(), 0);
+
+            // Do a full evaluate, as per our docs
+            // uses evaluateFormulaCell()
+            for (Sheet sheet : wb) {
+                HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(wb);
+                for (Row r : sheet) {
+                    for (Cell c : r) {
+                        if (c.getCellType() == CellType.FORMULA) {
+                            evaluator.evaluateFormulaCell(c);
+
+                            // For testing - all should be numeric
+                            assertEquals(CellType.NUMERIC, evaluator.evaluateFormulaCell(c));
+                        }
+                    }
+                }
+            }
+
+            // Check now as expected
+            assertEquals(55.7, wb.getSheetAt(0).getRow(0).getCell(2).getNumericCellValue(), 0);
+            assertEquals("SUM(A1:B1)", wb.getSheetAt(0).getRow(0).getCell(2).getCellFormula());
+            assertEquals(CellType.FORMULA, wb.getSheetAt(0).getRow(0).getCell(2).getCellType());
+
+            assertEquals(-4.6, wb.getSheetAt(0).getRow(1).getCell(2).getNumericCellValue(), 0);
+            assertEquals("SUM(A2:B2)", wb.getSheetAt(0).getRow(1).getCell(2).getCellFormula());
+            assertEquals(CellType.FORMULA, wb.getSheetAt(0).getRow(1).getCell(2).getCellType());
+
+            assertEquals(22.3, wb.getSheetAt(1).getRow(0).getCell(0).getNumericCellValue(), 0);
+            assertEquals("'S1'!A1", wb.getSheetAt(1).getRow(0).getCell(0).getCellFormula());
+            assertEquals(CellType.FORMULA, wb.getSheetAt(1).getRow(0).getCell(0).getCellType());
+
+
+            // Now do the alternate call, which zaps the formulas
+            // uses evaluateInCell()
+            for (Sheet sheet : wb) {
+                HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(wb);
+
+                for (Row r : sheet) {
+                    for (Cell c : r) {
+                        if (c.getCellType() == CellType.FORMULA) {
+                            evaluator.evaluateInCell(c);
+                        }
+                    }
+                }
+            }
+
+            assertEquals(55.7, wb.getSheetAt(0).getRow(0).getCell(2).getNumericCellValue(), 0);
+            assertEquals(CellType.NUMERIC, wb.getSheetAt(0).getRow(0).getCell(2).getCellType());
+
+            assertEquals(-4.6, wb.getSheetAt(0).getRow(1).getCell(2).getNumericCellValue(), 0);
+            assertEquals(CellType.NUMERIC, wb.getSheetAt(0).getRow(1).getCell(2).getCellType());
+
+            assertEquals(22.3, wb.getSheetAt(1).getRow(0).getCell(0).getNumericCellValue(), 0);
+            assertEquals(CellType.NUMERIC, wb.getSheetAt(1).getRow(0).getCell(0).getCellType());
+        }
+    }
 }

Modified: poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFCell.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFCell.java?rev=1890120&r1=1890119&r2=1890120&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFCell.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFCell.java Sat May 22 20:56:44 2021
@@ -53,366 +53,366 @@ import org.junit.jupiter.api.Test;
  */
 final class TestHSSFCell extends BaseTestCell {
 
-	public TestHSSFCell() {
-		super(HSSFITestDataProvider.instance);
-	}
-
-	/**
-	 * Checks that the recognition of files using 1904 date windowing
-	 *  is working properly. Conversion of the date is also an issue,
-	 *  but there's a separate unit test for that.
-	 */
-	@Test
-	void testDateWindowingRead() throws IOException {
-	    Calendar cal = LocaleUtil.getLocaleCalendar(2000, 0, 1, 0, 0, 0);// Jan. 1, 2000
-		Date date = cal.getTime();
-
-		// first check a file with 1900 Date Windowing
-		try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("1900DateWindowing.xls")) {
-			HSSFSheet sheet = wb.getSheetAt(0);
-
-			assertEquals(date.getTime(),
-						 sheet.getRow(0).getCell(0).getDateCellValue().getTime(),
-						 "Date from file using 1900 Date Windowing");
-		}
-
-		// now check a file with 1904 Date Windowing
-		try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("1904DateWindowing.xls")) {
-			HSSFSheet sheet = wb.getSheetAt(0);
-
-			assertEquals(date.getTime(),
-						 sheet.getRow(0).getCell(0).getDateCellValue().getTime(),
-						 "Date from file using 1904 Date Windowing");
-		}
-	}
-
-
-
-	/**
-	 * Checks that dates are properly written to both types of files:
-	 * those with 1900 and 1904 date windowing.  Note that if the
-	 * previous test ({@link #testDateWindowingRead}) fails, the
-	 * results of this test are meaningless.
-	 */
-	@Test
-	void testDateWindowingWrite() throws IOException {
-	    Calendar cal = LocaleUtil.getLocaleCalendar(2000,0,1,0,0,0); // Jan. 1, 2000
-		Date date = cal.getTime();
-
-		// first check a file with 1900 Date Windowing
-		try (HSSFWorkbook wb1 = HSSFTestDataSamples.openSampleWorkbook("1900DateWindowing.xls")) {
-
-			setCell(wb1, 0, 1, date);
-			try (HSSFWorkbook wb2 = HSSFTestDataSamples.writeOutAndReadBack(wb1)) {
-
-				assertEquals(date.getTime(),
-							 readCell(wb2, 0, 1).getTime(),
-							 "Date from file using 1900 Date Windowing");
-			}
-		}
-
-		// now check a file with 1904 Date Windowing
-		try (HSSFWorkbook wb1 = HSSFTestDataSamples.openSampleWorkbook("1904DateWindowing.xls")) {
-			setCell(wb1, 0, 1, date);
-			try (HSSFWorkbook wb2 = HSSFTestDataSamples.writeOutAndReadBack(wb1)) {
-				assertEquals(date.getTime(),
-							 readCell(wb2, 0, 1).getTime(),
-							 "Date from file using 1900 Date Windowing");
-			}
-		}
-	}
-
-	private static void setCell(HSSFWorkbook workbook, int rowIdx, int colIdx, Date date) {
-		HSSFSheet sheet = workbook.getSheetAt(0);
-		HSSFRow row = sheet.getRow(rowIdx);
-		HSSFCell cell = row.getCell(colIdx);
-
-		if (cell == null) {
-			cell = row.createCell(colIdx);
-		}
-		cell.setCellValue(date);
-	}
-
-	private static Date readCell(HSSFWorkbook workbook, int rowIdx, int colIdx) {
-		HSSFSheet sheet = workbook.getSheetAt(0);
-		HSSFRow row = sheet.getRow(rowIdx);
-		HSSFCell cell = row.getCell(colIdx);
-		return cell.getDateCellValue();
-	}
-
-	/**
-	 * Tests that the active cell can be correctly read and set
-	 */
-	@Test
-	void testActiveCell() throws IOException {
-		//read in sample
-		try (HSSFWorkbook wb1 = HSSFTestDataSamples.openSampleWorkbook("Simple.xls")) {
-
-			//check initial position
-			HSSFSheet umSheet = wb1.getSheetAt(0);
-			InternalSheet s = umSheet.getSheet();
-			assertEquals((short) 0, s.getActiveCellCol(), "Initial active cell should be in col 0");
-			assertEquals(1, s.getActiveCellRow(), "Initial active cell should be on row 1");
-
-			//modify position through HSSFCell
-			HSSFCell cell = umSheet.createRow(3).createCell(2);
-			cell.setAsActiveCell();
-			assertEquals((short) 2, s.getActiveCellCol(), "After modify, active cell should be in col 2");
-			assertEquals(3, s.getActiveCellRow(), "After modify, active cell should be on row 3");
-
-			//write book to temp file; read and verify that position is serialized
-			try (HSSFWorkbook wb2 = HSSFTestDataSamples.writeOutAndReadBack(wb1)) {
-				umSheet = wb2.getSheetAt(0);
-				s = umSheet.getSheet();
-
-				assertEquals((short) 2, s.getActiveCellCol(), "After serialize, active cell should be in col 2");
-				assertEquals(3, s.getActiveCellRow(), "After serialize, active cell should be on row 3");
-			}
-		}
-	}
-
-
-	@Test
-	void testActiveCellBug56114() throws IOException {
-	    try (Workbook wb = new HSSFWorkbook()) {
-			Sheet sh = wb.createSheet();
-
-			sh.createRow(0);
-			sh.createRow(1);
-			sh.createRow(2);
-			sh.createRow(3);
-
-			Cell cell = sh.getRow(1).createCell(3);
-			sh.getRow(3).createCell(3);
-
-			assertEquals(0, ((HSSFSheet) wb.getSheetAt(0)).getSheet().getActiveCellRow());
-			assertEquals(0, ((HSSFSheet) wb.getSheetAt(0)).getSheet().getActiveCellCol());
-
-			cell.setAsActiveCell();
-			cell.setCellValue("this should be active");
-
-			assertEquals(1, ((HSSFSheet) wb.getSheetAt(0)).getSheet().getActiveCellRow());
-			assertEquals(3, ((HSSFSheet) wb.getSheetAt(0)).getSheet().getActiveCellCol());
-
-			try (Workbook wbBack = _testDataProvider.writeOutAndReadBack(wb)) {
-				assertEquals(1, ((HSSFSheet) wbBack.getSheetAt(0)).getSheet().getActiveCellRow());
-				assertEquals(3, ((HSSFSheet) wbBack.getSheetAt(0)).getSheet().getActiveCellCol());
-
-				wbBack.getSheetAt(0).getRow(3).getCell(3).setAsActiveCell();
-
-				assertEquals(3, ((HSSFSheet) wbBack.getSheetAt(0)).getSheet().getActiveCellRow());
-				assertEquals(3, ((HSSFSheet) wbBack.getSheetAt(0)).getSheet().getActiveCellCol());
-
-				try (Workbook wbBack2 = _testDataProvider.writeOutAndReadBack(wbBack)) {
-					assertEquals(3, ((HSSFSheet) wbBack2.getSheetAt(0)).getSheet().getActiveCellRow());
-					assertEquals(3, ((HSSFSheet) wbBack2.getSheetAt(0)).getSheet().getActiveCellCol());
-				}
-			}
-		}
-	}
-
-	/**
-	 * Test reading hyperlinks
-	 */
-	@Test
-	void testWithHyperlink() throws IOException {
-		try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("WithHyperlink.xls")) {
-
-			HSSFSheet sheet = wb.getSheetAt(0);
-			HSSFCell cell = sheet.getRow(4).getCell(0);
-			HSSFHyperlink link = cell.getHyperlink();
-			assertNotNull(link);
-
-			assertEquals("Foo", link.getLabel());
-			assertEquals("http://poi.apache.org/", link.getAddress());
-			assertEquals(4, link.getFirstRow());
-			assertEquals(0, link.getFirstColumn());
-		}
-	}
-
-	/**
-	 * Test reading hyperlinks
-	 */
-	@Test
-	void testWithTwoHyperlinks() throws IOException {
-		try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("WithTwoHyperLinks.xls")) {
-
-			HSSFSheet sheet = wb.getSheetAt(0);
-
-			HSSFCell cell1 = sheet.getRow(4).getCell(0);
-			HSSFHyperlink link1 = cell1.getHyperlink();
-			assertNotNull(link1);
-			assertEquals("Foo", link1.getLabel());
-			assertEquals("http://poi.apache.org/", link1.getAddress());
-			assertEquals(4, link1.getFirstRow());
-			assertEquals(0, link1.getFirstColumn());
-
-			HSSFCell cell2 = sheet.getRow(8).getCell(1);
-			HSSFHyperlink link2 = cell2.getHyperlink();
-			assertNotNull(link2);
-			assertEquals("Bar", link2.getLabel());
-			assertEquals("http://poi.apache.org/hssf/", link2.getAddress());
-			assertEquals(8, link2.getFirstRow());
-			assertEquals(1, link2.getFirstColumn());
-		}
-	}
-
-	/**
-	 * Test to ensure we can only assign cell styles that belong
-	 *  to our workbook, and not those from other workbooks.
-	 */
-	@Test
-	void testCellStyleWorkbookMatch() throws IOException {
-		try (HSSFWorkbook wbA = new HSSFWorkbook();
-			HSSFWorkbook wbB = new HSSFWorkbook()) {
-
-			HSSFCellStyle styA = wbA.createCellStyle();
-			HSSFCellStyle styB = wbB.createCellStyle();
-
-			styA.verifyBelongsToWorkbook(wbA);
-			styB.verifyBelongsToWorkbook(wbB);
-			assertThrows(IllegalArgumentException.class, () -> styA.verifyBelongsToWorkbook(wbB));
-			assertThrows(IllegalArgumentException.class, () -> styB.verifyBelongsToWorkbook(wbA));
-
-			Cell cellA = wbA.createSheet().createRow(0).createCell(0);
-			Cell cellB = wbB.createSheet().createRow(0).createCell(0);
-
-			cellA.setCellStyle(styA);
-			cellB.setCellStyle(styB);
-			assertThrows(IllegalArgumentException.class, () -> cellA.setCellStyle(styB));
-			assertThrows(IllegalArgumentException.class, () -> cellB.setCellStyle(styA));
-		}
-	}
-
-	/**
-	 * Test for small bug observable around r736460 (prior to version 3.5).  POI fails to remove
-	 * the {@link StringRecord} following the {@link FormulaRecord} after the result type had been
-	 * changed to number/boolean/error.  Excel silently ignores the extra record, but some POI
-	 * versions (prior to bug 46213 / r717883) crash instead.
-	 */
-	@Test
-	void testCachedTypeChange() throws IOException {
-		try (HSSFWorkbook wb = new HSSFWorkbook()) {
-			HSSFSheet sheet = wb.createSheet("Sheet1");
-			Cell cell = sheet.createRow(0).createCell(0);
-			cell.setCellFormula("A1");
-			cell.setCellValue("abc");
-			confirmStringRecord(sheet, true);
-			cell.setCellValue(123);
-
-			final List<org.apache.poi.hssf.record.Record> recs = new ArrayList<>();
-			sheet.getSheet().visitContainedRecords(recs::add, 0);
-			assertFalse(recs.size() == 28 && recs.get(23) instanceof StringRecord, "Identified bug - leftover StringRecord");
-			confirmStringRecord(sheet, false);
-
-			// string to error code
-			cell.setCellValue("abc");
-			confirmStringRecord(sheet, true);
-			cell.setCellErrorValue(FormulaError.REF.getCode());
-			confirmStringRecord(sheet, false);
-
-			// string to boolean
-			cell.setCellValue("abc");
-			confirmStringRecord(sheet, true);
-			cell.setCellValue(false);
-			confirmStringRecord(sheet, false);
-		}
-	}
-
-	private static void confirmStringRecord(HSSFSheet sheet, boolean isPresent) {
-		List<org.apache.poi.hssf.record.Record> recs = new ArrayList<>();
-		sheet.getSheet().visitContainedRecords(recs::add, 0);
-		assertEquals(isPresent ? 28 : 27, recs.size());
-
-		ListIterator<org.apache.poi.hssf.record.Record> iter = recs.listIterator(22);
-		assertEquals(FormulaRecord.class, iter.next().getClass());
-		if (isPresent) {
-			assertEquals(StringRecord.class, iter.next().getClass());
-		}
-		assertEquals(DBCellRecord.class, iter.next().getClass());
-	}
+    public TestHSSFCell() {
+        super(HSSFITestDataProvider.instance);
+    }
+
+    /**
+     * Checks that the recognition of files using 1904 date windowing
+     *  is working properly. Conversion of the date is also an issue,
+     *  but there's a separate unit test for that.
+     */
+    @Test
+    void testDateWindowingRead() throws IOException {
+        Calendar cal = LocaleUtil.getLocaleCalendar(2000, 0, 1, 0, 0, 0);// Jan. 1, 2000
+        Date date = cal.getTime();
+
+        // first check a file with 1900 Date Windowing
+        try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("1900DateWindowing.xls")) {
+            HSSFSheet sheet = wb.getSheetAt(0);
+
+            assertEquals(date.getTime(),
+                         sheet.getRow(0).getCell(0).getDateCellValue().getTime(),
+                         "Date from file using 1900 Date Windowing");
+        }
+
+        // now check a file with 1904 Date Windowing
+        try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("1904DateWindowing.xls")) {
+            HSSFSheet sheet = wb.getSheetAt(0);
+
+            assertEquals(date.getTime(),
+                         sheet.getRow(0).getCell(0).getDateCellValue().getTime(),
+                         "Date from file using 1904 Date Windowing");
+        }
+    }
+
+
+
+    /**
+     * Checks that dates are properly written to both types of files:
+     * those with 1900 and 1904 date windowing.  Note that if the
+     * previous test ({@link #testDateWindowingRead}) fails, the
+     * results of this test are meaningless.
+     */
+    @Test
+    void testDateWindowingWrite() throws IOException {
+        Calendar cal = LocaleUtil.getLocaleCalendar(2000,0,1,0,0,0); // Jan. 1, 2000
+        Date date = cal.getTime();
+
+        // first check a file with 1900 Date Windowing
+        try (HSSFWorkbook wb1 = HSSFTestDataSamples.openSampleWorkbook("1900DateWindowing.xls")) {
+
+            setCell(wb1, 0, 1, date);
+            try (HSSFWorkbook wb2 = HSSFTestDataSamples.writeOutAndReadBack(wb1)) {
+
+                assertEquals(date.getTime(),
+                             readCell(wb2, 0, 1).getTime(),
+                             "Date from file using 1900 Date Windowing");
+            }
+        }
+
+        // now check a file with 1904 Date Windowing
+        try (HSSFWorkbook wb1 = HSSFTestDataSamples.openSampleWorkbook("1904DateWindowing.xls")) {
+            setCell(wb1, 0, 1, date);
+            try (HSSFWorkbook wb2 = HSSFTestDataSamples.writeOutAndReadBack(wb1)) {
+                assertEquals(date.getTime(),
+                             readCell(wb2, 0, 1).getTime(),
+                             "Date from file using 1900 Date Windowing");
+            }
+        }
+    }
+
+    private static void setCell(HSSFWorkbook workbook, int rowIdx, int colIdx, Date date) {
+        HSSFSheet sheet = workbook.getSheetAt(0);
+        HSSFRow row = sheet.getRow(rowIdx);
+        HSSFCell cell = row.getCell(colIdx);
+
+        if (cell == null) {
+            cell = row.createCell(colIdx);
+        }
+        cell.setCellValue(date);
+    }
+
+    private static Date readCell(HSSFWorkbook workbook, int rowIdx, int colIdx) {
+        HSSFSheet sheet = workbook.getSheetAt(0);
+        HSSFRow row = sheet.getRow(rowIdx);
+        HSSFCell cell = row.getCell(colIdx);
+        return cell.getDateCellValue();
+    }
+
+    /**
+     * Tests that the active cell can be correctly read and set
+     */
+    @Test
+    void testActiveCell() throws IOException {
+        //read in sample
+        try (HSSFWorkbook wb1 = HSSFTestDataSamples.openSampleWorkbook("Simple.xls")) {
+
+            //check initial position
+            HSSFSheet umSheet = wb1.getSheetAt(0);
+            InternalSheet s = umSheet.getSheet();
+            assertEquals((short) 0, s.getActiveCellCol(), "Initial active cell should be in col 0");
+            assertEquals(1, s.getActiveCellRow(), "Initial active cell should be on row 1");
+
+            //modify position through HSSFCell
+            HSSFCell cell = umSheet.createRow(3).createCell(2);
+            cell.setAsActiveCell();
+            assertEquals((short) 2, s.getActiveCellCol(), "After modify, active cell should be in col 2");
+            assertEquals(3, s.getActiveCellRow(), "After modify, active cell should be on row 3");
+
+            //write book to temp file; read and verify that position is serialized
+            try (HSSFWorkbook wb2 = HSSFTestDataSamples.writeOutAndReadBack(wb1)) {
+                umSheet = wb2.getSheetAt(0);
+                s = umSheet.getSheet();
+
+                assertEquals((short) 2, s.getActiveCellCol(), "After serialize, active cell should be in col 2");
+                assertEquals(3, s.getActiveCellRow(), "After serialize, active cell should be on row 3");
+            }
+        }
+    }
+
+
+    @Test
+    void testActiveCellBug56114() throws IOException {
+        try (Workbook wb = new HSSFWorkbook()) {
+            Sheet sh = wb.createSheet();
+
+            sh.createRow(0);
+            sh.createRow(1);
+            sh.createRow(2);
+            sh.createRow(3);
+
+            Cell cell = sh.getRow(1).createCell(3);
+            sh.getRow(3).createCell(3);
+
+            assertEquals(0, ((HSSFSheet) wb.getSheetAt(0)).getSheet().getActiveCellRow());
+            assertEquals(0, ((HSSFSheet) wb.getSheetAt(0)).getSheet().getActiveCellCol());
+
+            cell.setAsActiveCell();
+            cell.setCellValue("this should be active");
+
+            assertEquals(1, ((HSSFSheet) wb.getSheetAt(0)).getSheet().getActiveCellRow());
+            assertEquals(3, ((HSSFSheet) wb.getSheetAt(0)).getSheet().getActiveCellCol());
+
+            try (Workbook wbBack = _testDataProvider.writeOutAndReadBack(wb)) {
+                assertEquals(1, ((HSSFSheet) wbBack.getSheetAt(0)).getSheet().getActiveCellRow());
+                assertEquals(3, ((HSSFSheet) wbBack.getSheetAt(0)).getSheet().getActiveCellCol());
+
+                wbBack.getSheetAt(0).getRow(3).getCell(3).setAsActiveCell();
+
+                assertEquals(3, ((HSSFSheet) wbBack.getSheetAt(0)).getSheet().getActiveCellRow());
+                assertEquals(3, ((HSSFSheet) wbBack.getSheetAt(0)).getSheet().getActiveCellCol());
+
+                try (Workbook wbBack2 = _testDataProvider.writeOutAndReadBack(wbBack)) {
+                    assertEquals(3, ((HSSFSheet) wbBack2.getSheetAt(0)).getSheet().getActiveCellRow());
+                    assertEquals(3, ((HSSFSheet) wbBack2.getSheetAt(0)).getSheet().getActiveCellCol());
+                }
+            }
+        }
+    }
+
+    /**
+     * Test reading hyperlinks
+     */
+    @Test
+    void testWithHyperlink() throws IOException {
+        try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("WithHyperlink.xls")) {
+
+            HSSFSheet sheet = wb.getSheetAt(0);
+            HSSFCell cell = sheet.getRow(4).getCell(0);
+            HSSFHyperlink link = cell.getHyperlink();
+            assertNotNull(link);
+
+            assertEquals("Foo", link.getLabel());
+            assertEquals("http://poi.apache.org/", link.getAddress());
+            assertEquals(4, link.getFirstRow());
+            assertEquals(0, link.getFirstColumn());
+        }
+    }
+
+    /**
+     * Test reading hyperlinks
+     */
+    @Test
+    void testWithTwoHyperlinks() throws IOException {
+        try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("WithTwoHyperLinks.xls")) {
+
+            HSSFSheet sheet = wb.getSheetAt(0);
+
+            HSSFCell cell1 = sheet.getRow(4).getCell(0);
+            HSSFHyperlink link1 = cell1.getHyperlink();
+            assertNotNull(link1);
+            assertEquals("Foo", link1.getLabel());
+            assertEquals("http://poi.apache.org/", link1.getAddress());
+            assertEquals(4, link1.getFirstRow());
+            assertEquals(0, link1.getFirstColumn());
+
+            HSSFCell cell2 = sheet.getRow(8).getCell(1);
+            HSSFHyperlink link2 = cell2.getHyperlink();
+            assertNotNull(link2);
+            assertEquals("Bar", link2.getLabel());
+            assertEquals("http://poi.apache.org/hssf/", link2.getAddress());
+            assertEquals(8, link2.getFirstRow());
+            assertEquals(1, link2.getFirstColumn());
+        }
+    }
+
+    /**
+     * Test to ensure we can only assign cell styles that belong
+     *  to our workbook, and not those from other workbooks.
+     */
+    @Test
+    void testCellStyleWorkbookMatch() throws IOException {
+        try (HSSFWorkbook wbA = new HSSFWorkbook();
+            HSSFWorkbook wbB = new HSSFWorkbook()) {
+
+            HSSFCellStyle styA = wbA.createCellStyle();
+            HSSFCellStyle styB = wbB.createCellStyle();
+
+            styA.verifyBelongsToWorkbook(wbA);
+            styB.verifyBelongsToWorkbook(wbB);
+            assertThrows(IllegalArgumentException.class, () -> styA.verifyBelongsToWorkbook(wbB));
+            assertThrows(IllegalArgumentException.class, () -> styB.verifyBelongsToWorkbook(wbA));
+
+            Cell cellA = wbA.createSheet().createRow(0).createCell(0);
+            Cell cellB = wbB.createSheet().createRow(0).createCell(0);
+
+            cellA.setCellStyle(styA);
+            cellB.setCellStyle(styB);
+            assertThrows(IllegalArgumentException.class, () -> cellA.setCellStyle(styB));
+            assertThrows(IllegalArgumentException.class, () -> cellB.setCellStyle(styA));
+        }
+    }
+
+    /**
+     * Test for small bug observable around r736460 (prior to version 3.5).  POI fails to remove
+     * the {@link StringRecord} following the {@link FormulaRecord} after the result type had been
+     * changed to number/boolean/error.  Excel silently ignores the extra record, but some POI
+     * versions (prior to bug 46213 / r717883) crash instead.
+     */
+    @Test
+    void testCachedTypeChange() throws IOException {
+        try (HSSFWorkbook wb = new HSSFWorkbook()) {
+            HSSFSheet sheet = wb.createSheet("Sheet1");
+            Cell cell = sheet.createRow(0).createCell(0);
+            cell.setCellFormula("A1");
+            cell.setCellValue("abc");
+            confirmStringRecord(sheet, true);
+            cell.setCellValue(123);
+
+            final List<org.apache.poi.hssf.record.Record> recs = new ArrayList<>();
+            sheet.getSheet().visitContainedRecords(recs::add, 0);
+            assertFalse(recs.size() == 28 && recs.get(23) instanceof StringRecord, "Identified bug - leftover StringRecord");
+            confirmStringRecord(sheet, false);
+
+            // string to error code
+            cell.setCellValue("abc");
+            confirmStringRecord(sheet, true);
+            cell.setCellErrorValue(FormulaError.REF.getCode());
+            confirmStringRecord(sheet, false);
+
+            // string to boolean
+            cell.setCellValue("abc");
+            confirmStringRecord(sheet, true);
+            cell.setCellValue(false);
+            confirmStringRecord(sheet, false);
+        }
+    }
+
+    private static void confirmStringRecord(HSSFSheet sheet, boolean isPresent) {
+        List<org.apache.poi.hssf.record.Record> recs = new ArrayList<>();
+        sheet.getSheet().visitContainedRecords(recs::add, 0);
+        assertEquals(isPresent ? 28 : 27, recs.size());
+
+        ListIterator<org.apache.poi.hssf.record.Record> iter = recs.listIterator(22);
+        assertEquals(FormulaRecord.class, iter.next().getClass());
+        if (isPresent) {
+            assertEquals(StringRecord.class, iter.next().getClass());
+        }
+        assertEquals(DBCellRecord.class, iter.next().getClass());
+    }
 
     /**
      * HSSF prior to version 3.7 had a bug: it could write a NaN but could not read such a file back.
      */
-	@Test
-	void testReadNaN() throws IOException {
+    @Test
+    void testReadNaN() throws IOException {
         try (HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("49761.xls")) {
-			assertNotNull(wb);
-		}
+            assertNotNull(wb);
+        }
     }
 
-	@Test
-	void testHSSFCell() throws IOException {
+    @Test
+    void testHSSFCell() throws IOException {
         try (HSSFWorkbook wb = new HSSFWorkbook()) {
-			HSSFSheet sheet = wb.createSheet();
-			HSSFRow row = sheet.createRow(0);
-			row.createCell(0);
-			HSSFCell cell = new HSSFCell(wb, sheet, 0, (short) 0);
-			assertNotNull(cell);
-		}
+            HSSFSheet sheet = wb.createSheet();
+            HSSFRow row = sheet.createRow(0);
+            row.createCell(0);
+            HSSFCell cell = new HSSFCell(wb, sheet, 0, (short) 0);
+            assertNotNull(cell);
+        }
     }
 
     @Test
     void testDeprecatedMethods() throws IOException {
         try (HSSFWorkbook wb = new HSSFWorkbook()) {
-			HSSFSheet sheet = wb.createSheet();
-			HSSFRow row = sheet.createRow(0);
-			HSSFCell cell = row.createCell(0);
-
-			// cover some deprecated methods and other smaller stuff...
-			assertEquals(wb.getWorkbook(), cell.getBoundWorkbook());
-
-			assertThrows(IllegalStateException.class, cell::getCachedFormulaResultType);
-
-			cell.removeCellComment();
-			cell.removeCellComment();
-		}
+            HSSFSheet sheet = wb.createSheet();
+            HSSFRow row = sheet.createRow(0);
+            HSSFCell cell = row.createCell(0);
+
+            // cover some deprecated methods and other smaller stuff...
+            assertEquals(wb.getWorkbook(), cell.getBoundWorkbook());
+
+            assertThrows(IllegalStateException.class, cell::getCachedFormulaResultType);
+
+            cell.removeCellComment();
+            cell.removeCellComment();
+        }
     }
 
     @Test
     void testCellType() throws IOException {
         try (Workbook wb = _testDataProvider.createWorkbook()) {
-			Sheet sheet = wb.createSheet();
-			Row row = sheet.createRow(0);
-			Cell cell = row.createCell(0);
-
-			cell.setBlank();
-			assertNull(cell.getDateCellValue());
-			assertFalse(cell.getBooleanCellValue());
-			assertEquals("", cell.toString());
-
-			cell.setCellType(CellType.STRING);
-			assertEquals("", cell.toString());
-			cell.setCellValue(1.2);
-			assertEquals("1.2", cell.toString());
-			cell.setCellType(CellType.BOOLEAN);
-			assertEquals("TRUE", cell.toString());
-			cell.setCellType(CellType.BOOLEAN);
-			cell.setCellValue("" + FormulaError.VALUE.name());
-			assertEquals(CellType.STRING, cell.getCellType());
-			cell.setCellType(CellType.BOOLEAN);
-			assertEquals("FALSE", cell.toString());
-			cell.setCellValue(1.2);
-			assertEquals("1.2", cell.toString());
-			cell.setCellType(CellType.BOOLEAN);
-			cell.setCellType(CellType.STRING);
-			cell.setCellType(CellType.ERROR);
-			cell.setCellType(CellType.STRING);
-			cell.setCellValue(1.2);
-			cell.setCellType(CellType.STRING);
-			assertEquals("1.2", cell.toString());
-
-			cell.setCellValue((String) null);
-			cell.setCellValue((RichTextString) null);
-		}
-    }
-
-	@Test
-	void getErrorCellValue_throwsISE_onABlankCell() throws IOException {
-		try (HSSFWorkbook wb = new HSSFWorkbook()) {
-			Cell cell = wb.createSheet().createRow(0).createCell(0);
-			assertThrows(IllegalStateException.class, cell::getErrorCellValue);
-		}
-	}
+            Sheet sheet = wb.createSheet();
+            Row row = sheet.createRow(0);
+            Cell cell = row.createCell(0);
+
+            cell.setBlank();
+            assertNull(cell.getDateCellValue());
+            assertFalse(cell.getBooleanCellValue());
+            assertEquals("", cell.toString());
+
+            cell.setCellType(CellType.STRING);
+            assertEquals("", cell.toString());
+            cell.setCellValue(1.2);
+            assertEquals("1.2", cell.toString());
+            cell.setCellType(CellType.BOOLEAN);
+            assertEquals("TRUE", cell.toString());
+            cell.setCellType(CellType.BOOLEAN);
+            cell.setCellValue("" + FormulaError.VALUE.name());
+            assertEquals(CellType.STRING, cell.getCellType());
+            cell.setCellType(CellType.BOOLEAN);
+            assertEquals("FALSE", cell.toString());
+            cell.setCellValue(1.2);
+            assertEquals("1.2", cell.toString());
+            cell.setCellType(CellType.BOOLEAN);
+            cell.setCellType(CellType.STRING);
+            cell.setCellType(CellType.ERROR);
+            cell.setCellType(CellType.STRING);
+            cell.setCellValue(1.2);
+            cell.setCellType(CellType.STRING);
+            assertEquals("1.2", cell.toString());
+
+            cell.setCellValue((String) null);
+            cell.setCellValue((RichTextString) null);
+        }
+    }
+
+    @Test
+    void getErrorCellValue_throwsISE_onABlankCell() throws IOException {
+        try (HSSFWorkbook wb = new HSSFWorkbook()) {
+            Cell cell = wb.createSheet().createRow(0).createCell(0);
+            assertThrows(IllegalStateException.class, cell::getErrorCellValue);
+        }
+    }
 }

Modified: poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFChart.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFChart.java?rev=1890120&r1=1890119&r2=1890120&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFChart.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFChart.java Sat May 22 20:56:44 2021
@@ -37,109 +37,109 @@ import org.junit.jupiter.api.Test;
  */
 final class TestHSSFChart {
 
-	@Test
-	void testSingleChart() {
-		HSSFWorkbook wb = openSampleWorkbook("WithChart.xls");
-
-		HSSFSheet s1 = wb.getSheetAt(0);
-		HSSFSheet s2 = wb.getSheetAt(1);
-		HSSFSheet s3 = wb.getSheetAt(2);
-
-		assertEquals(0, HSSFChart.getSheetCharts(s1).length);
-		assertEquals(1, HSSFChart.getSheetCharts(s2).length);
-		assertEquals(0, HSSFChart.getSheetCharts(s3).length);
-
-		HSSFChart[] charts;
-
-		// Check the chart on the 2nd sheet
-		charts = HSSFChart.getSheetCharts(s2);
-		assertEquals(1, charts.length);
-
-		assertEquals(2, charts[0].getSeries().length);
-		assertEquals("1st Column", charts[0].getSeries()[0].getSeriesTitle());
-		assertEquals("2nd Column", charts[0].getSeries()[1].getSeriesTitle());
-		assertNull(charts[0].getChartTitle());
-
-		// Check x, y, width, height
-		assertEquals(0, charts[0].getChartX());
-		assertEquals(0, charts[0].getChartY());
-		assertEquals(26492928, charts[0].getChartWidth());
-		assertEquals(15040512, charts[0].getChartHeight());
-	}
-
-	@Test
-	void testTwoCharts() {
-		HSSFWorkbook wb = openSampleWorkbook("WithTwoCharts.xls");
-
-		HSSFSheet s1 = wb.getSheetAt(0);
-		HSSFSheet s2 = wb.getSheetAt(1);
-		HSSFSheet s3 = wb.getSheetAt(2);
-
-		assertEquals(0, HSSFChart.getSheetCharts(s1).length);
-		assertEquals(1, HSSFChart.getSheetCharts(s2).length);
-		assertEquals(1, HSSFChart.getSheetCharts(s3).length);
-
-		HSSFChart[] charts;
-
-		// Check the chart on the 2nd sheet
-		charts = HSSFChart.getSheetCharts(s2);
-		assertEquals(1, charts.length);
-
-		assertEquals(2, charts[0].getSeries().length);
-		assertEquals("1st Column", charts[0].getSeries()[0].getSeriesTitle());
-		assertEquals("2nd Column", charts[0].getSeries()[1].getSeriesTitle());
-		assertNull(charts[0].getChartTitle());
-
-		// And the third sheet
-		charts = HSSFChart.getSheetCharts(s3);
-		assertEquals(1, charts.length);
-
-		assertEquals(2, charts[0].getSeries().length);
-		assertEquals("Squares", charts[0].getSeries()[0].getSeriesTitle());
-		assertEquals("Base Numbers", charts[0].getSeries()[1].getSeriesTitle());
-		assertNull(charts[0].getChartTitle());
-	}
-
-	@Test
-	void testThreeCharts() {
-		HSSFWorkbook wb = openSampleWorkbook("WithThreeCharts.xls");
-
-		HSSFSheet s1 = wb.getSheetAt(0);
-		HSSFSheet s2 = wb.getSheetAt(1);
-		HSSFSheet s3 = wb.getSheetAt(2);
-
-		assertEquals(0, HSSFChart.getSheetCharts(s1).length);
-		assertEquals(2, HSSFChart.getSheetCharts(s2).length);
-		assertEquals(1, HSSFChart.getSheetCharts(s3).length);
-
-		HSSFChart[] charts;
-
-		// Check the charts on the 2nd sheet
-		charts = HSSFChart.getSheetCharts(s2);
-		assertEquals(2, charts.length);
-
-		assertEquals(2, charts[0].getSeries().length);
-		assertEquals("1st Column", charts[0].getSeries()[0].getSeriesTitle());
-		assertEquals("2nd Column", charts[0].getSeries()[1].getSeriesTitle());
-		assertEquals(6, charts[0].getSeries()[0].getNumValues());
-		assertEquals(6, charts[0].getSeries()[1].getNumValues());
-		assertEquals(SeriesRecord.CATEGORY_DATA_TYPE_NUMERIC, charts[0].getSeries()[0].getValueType());
-		assertEquals(SeriesRecord.CATEGORY_DATA_TYPE_NUMERIC, charts[0].getSeries()[1].getValueType());
-		assertNull(charts[0].getChartTitle());
-
-		assertEquals(1, charts[1].getSeries().length);
-		assertNull(charts[1].getSeries()[0].getSeriesTitle());
-		assertEquals("Pie Chart Title Thingy", charts[1].getChartTitle());
-
-		// And the third sheet
-		charts = HSSFChart.getSheetCharts(s3);
-		assertEquals(1, charts.length);
-
-		assertEquals(2, charts[0].getSeries().length);
-		assertEquals("Squares", charts[0].getSeries()[0].getSeriesTitle());
-		assertEquals("Base Numbers", charts[0].getSeries()[1].getSeriesTitle());
-		assertEquals("Sheet 3 Chart with Title", charts[0].getChartTitle());
-	}
+    @Test
+    void testSingleChart() {
+        HSSFWorkbook wb = openSampleWorkbook("WithChart.xls");
+
+        HSSFSheet s1 = wb.getSheetAt(0);
+        HSSFSheet s2 = wb.getSheetAt(1);
+        HSSFSheet s3 = wb.getSheetAt(2);
+
+        assertEquals(0, HSSFChart.getSheetCharts(s1).length);
+        assertEquals(1, HSSFChart.getSheetCharts(s2).length);
+        assertEquals(0, HSSFChart.getSheetCharts(s3).length);
+
+        HSSFChart[] charts;
+
+        // Check the chart on the 2nd sheet
+        charts = HSSFChart.getSheetCharts(s2);
+        assertEquals(1, charts.length);
+
+        assertEquals(2, charts[0].getSeries().length);
+        assertEquals("1st Column", charts[0].getSeries()[0].getSeriesTitle());
+        assertEquals("2nd Column", charts[0].getSeries()[1].getSeriesTitle());
+        assertNull(charts[0].getChartTitle());
+
+        // Check x, y, width, height
+        assertEquals(0, charts[0].getChartX());
+        assertEquals(0, charts[0].getChartY());
+        assertEquals(26492928, charts[0].getChartWidth());
+        assertEquals(15040512, charts[0].getChartHeight());
+    }
+
+    @Test
+    void testTwoCharts() {
+        HSSFWorkbook wb = openSampleWorkbook("WithTwoCharts.xls");
+
+        HSSFSheet s1 = wb.getSheetAt(0);
+        HSSFSheet s2 = wb.getSheetAt(1);
+        HSSFSheet s3 = wb.getSheetAt(2);
+
+        assertEquals(0, HSSFChart.getSheetCharts(s1).length);
+        assertEquals(1, HSSFChart.getSheetCharts(s2).length);
+        assertEquals(1, HSSFChart.getSheetCharts(s3).length);
+
+        HSSFChart[] charts;
+
+        // Check the chart on the 2nd sheet
+        charts = HSSFChart.getSheetCharts(s2);
+        assertEquals(1, charts.length);
+
+        assertEquals(2, charts[0].getSeries().length);
+        assertEquals("1st Column", charts[0].getSeries()[0].getSeriesTitle());
+        assertEquals("2nd Column", charts[0].getSeries()[1].getSeriesTitle());
+        assertNull(charts[0].getChartTitle());
+
+        // And the third sheet
+        charts = HSSFChart.getSheetCharts(s3);
+        assertEquals(1, charts.length);
+
+        assertEquals(2, charts[0].getSeries().length);
+        assertEquals("Squares", charts[0].getSeries()[0].getSeriesTitle());
+        assertEquals("Base Numbers", charts[0].getSeries()[1].getSeriesTitle());
+        assertNull(charts[0].getChartTitle());
+    }
+
+    @Test
+    void testThreeCharts() {
+        HSSFWorkbook wb = openSampleWorkbook("WithThreeCharts.xls");
+
+        HSSFSheet s1 = wb.getSheetAt(0);
+        HSSFSheet s2 = wb.getSheetAt(1);
+        HSSFSheet s3 = wb.getSheetAt(2);
+
+        assertEquals(0, HSSFChart.getSheetCharts(s1).length);
+        assertEquals(2, HSSFChart.getSheetCharts(s2).length);
+        assertEquals(1, HSSFChart.getSheetCharts(s3).length);
+
+        HSSFChart[] charts;
+
+        // Check the charts on the 2nd sheet
+        charts = HSSFChart.getSheetCharts(s2);
+        assertEquals(2, charts.length);
+
+        assertEquals(2, charts[0].getSeries().length);
+        assertEquals("1st Column", charts[0].getSeries()[0].getSeriesTitle());
+        assertEquals("2nd Column", charts[0].getSeries()[1].getSeriesTitle());
+        assertEquals(6, charts[0].getSeries()[0].getNumValues());
+        assertEquals(6, charts[0].getSeries()[1].getNumValues());
+        assertEquals(SeriesRecord.CATEGORY_DATA_TYPE_NUMERIC, charts[0].getSeries()[0].getValueType());
+        assertEquals(SeriesRecord.CATEGORY_DATA_TYPE_NUMERIC, charts[0].getSeries()[1].getValueType());
+        assertNull(charts[0].getChartTitle());
+
+        assertEquals(1, charts[1].getSeries().length);
+        assertNull(charts[1].getSeries()[0].getSeriesTitle());
+        assertEquals("Pie Chart Title Thingy", charts[1].getChartTitle());
+
+        // And the third sheet
+        charts = HSSFChart.getSheetCharts(s3);
+        assertEquals(1, charts.length);
+
+        assertEquals(2, charts[0].getSeries().length);
+        assertEquals("Squares", charts[0].getSeries()[0].getSeriesTitle());
+        assertEquals("Base Numbers", charts[0].getSeries()[1].getSeriesTitle());
+        assertEquals("Sheet 3 Chart with Title", charts[0].getChartTitle());
+    }
 
     @Test
     void testExistingSheet3() throws Exception {

Modified: poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFExternalFunctions.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFExternalFunctions.java?rev=1890120&r1=1890119&r2=1890120&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFExternalFunctions.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFExternalFunctions.java Sat May 22 20:56:44 2021
@@ -24,7 +24,7 @@ import org.apache.poi.ss.formula.BaseTes
  * Tests setting and evaluating user-defined functions in HSSF
  */
 final class TestHSSFExternalFunctions extends BaseTestExternalFunctions {
-	public TestHSSFExternalFunctions() {
-		super(HSSFITestDataProvider.instance, "atp.xls");
-	}
+    public TestHSSFExternalFunctions() {
+        super(HSSFITestDataProvider.instance, "atp.xls");
+    }
 }

Modified: poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFFormulaEvaluator.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFFormulaEvaluator.java?rev=1890120&r1=1890119&r2=1890120&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFFormulaEvaluator.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFFormulaEvaluator.java Sat May 22 20:56:44 2021
@@ -163,127 +163,127 @@ final class TestHSSFFormulaEvaluator ext
     void testXRefs() throws IOException {
         try (HSSFWorkbook wb1 = HSSFTestDataSamples.openSampleWorkbook("XRefCalc.xls");
         HSSFWorkbook wb2 = HSSFTestDataSamples.openSampleWorkbook("XRefCalcData.xls")) {
-			Cell cell;
+            Cell cell;
 
-			// VLookup on a name in another file
-			cell = wb1.getSheetAt(0).getRow(1).getCell(2);
-			assertEquals(CellType.FORMULA, cell.getCellType());
-			assertEquals(CellType.NUMERIC, cell.getCachedFormulaResultType());
-			assertEquals(12.30, cell.getNumericCellValue(), 0.0001);
-			// WARNING - this is wrong!
-			// The file name should be showing, but bug #45970 is fixed
-			//  we seem to loose it
-			assertEquals("VLOOKUP(PART,COSTS,2,FALSE)", cell.getCellFormula());
-
-
-			// Simple reference to a name in another file
-			cell = wb1.getSheetAt(0).getRow(1).getCell(4);
-			assertEquals(CellType.FORMULA, cell.getCellType());
-			assertEquals(CellType.NUMERIC, cell.getCachedFormulaResultType());
-			assertEquals(36.90, cell.getNumericCellValue(), 0.0001);
-			// TODO Correct this!
-			// The file name should be shown too, see bug #56742
-			assertEquals("Cost*Markup_Cost", cell.getCellFormula());
-
-
-			// Evaluate the cells
-			HSSFFormulaEvaluator eval = new HSSFFormulaEvaluator(wb1);
-			HSSFFormulaEvaluator.setupEnvironment(
-				new String[]{"XRefCalc.xls", "XRefCalcData.xls"},
-				new HSSFFormulaEvaluator[]{
-					eval,
-					new HSSFFormulaEvaluator(wb2)
-				}
-			);
-			eval.evaluateFormulaCell(
-				wb1.getSheetAt(0).getRow(1).getCell(2)
-			);
-			eval.evaluateFormulaCell(
-				wb1.getSheetAt(0).getRow(1).getCell(4)
-			);
-
-
-			// Re-check VLOOKUP one
-			cell = wb1.getSheetAt(0).getRow(1).getCell(2);
-			assertEquals(CellType.FORMULA, cell.getCellType());
-			assertEquals(CellType.NUMERIC, cell.getCachedFormulaResultType());
-			assertEquals(12.30, cell.getNumericCellValue(), 0.0001);
-
-			// Re-check ref one
-			cell = wb1.getSheetAt(0).getRow(1).getCell(4);
-			assertEquals(CellType.FORMULA, cell.getCellType());
-			assertEquals(CellType.NUMERIC, cell.getCachedFormulaResultType());
-			assertEquals(36.90, cell.getNumericCellValue(), 0.0001);
-
-
-			// Add a formula that refers to one of the existing external workbooks
-			cell = wb1.getSheetAt(0).getRow(1).createCell(40);
-			cell.setCellFormula("Cost*[XRefCalcData.xls]MarkupSheet!$B$1");
-
-			// Check is was stored correctly
-			assertEquals("Cost*[XRefCalcData.xls]MarkupSheet!$B$1", cell.getCellFormula());
-
-			// Check it evaluates correctly
-			eval.evaluateFormulaCell(cell);
-			assertEquals(24.60 * 1.8, cell.getNumericCellValue(), 0);
+            // VLookup on a name in another file
+            cell = wb1.getSheetAt(0).getRow(1).getCell(2);
+            assertEquals(CellType.FORMULA, cell.getCellType());
+            assertEquals(CellType.NUMERIC, cell.getCachedFormulaResultType());
+            assertEquals(12.30, cell.getNumericCellValue(), 0.0001);
+            // WARNING - this is wrong!
+            // The file name should be showing, but bug #45970 is fixed
+            //  we seem to loose it
+            assertEquals("VLOOKUP(PART,COSTS,2,FALSE)", cell.getCellFormula());
+
+
+            // Simple reference to a name in another file
+            cell = wb1.getSheetAt(0).getRow(1).getCell(4);
+            assertEquals(CellType.FORMULA, cell.getCellType());
+            assertEquals(CellType.NUMERIC, cell.getCachedFormulaResultType());
+            assertEquals(36.90, cell.getNumericCellValue(), 0.0001);
+            // TODO Correct this!
+            // The file name should be shown too, see bug #56742
+            assertEquals("Cost*Markup_Cost", cell.getCellFormula());
+
+
+            // Evaluate the cells
+            HSSFFormulaEvaluator eval = new HSSFFormulaEvaluator(wb1);
+            HSSFFormulaEvaluator.setupEnvironment(
+                new String[]{"XRefCalc.xls", "XRefCalcData.xls"},
+                new HSSFFormulaEvaluator[]{
+                    eval,
+                    new HSSFFormulaEvaluator(wb2)
+                }
+            );
+            eval.evaluateFormulaCell(
+                wb1.getSheetAt(0).getRow(1).getCell(2)
+            );
+            eval.evaluateFormulaCell(
+                wb1.getSheetAt(0).getRow(1).getCell(4)
+            );
+
+
+            // Re-check VLOOKUP one
+            cell = wb1.getSheetAt(0).getRow(1).getCell(2);
+            assertEquals(CellType.FORMULA, cell.getCellType());
+            assertEquals(CellType.NUMERIC, cell.getCachedFormulaResultType());
+            assertEquals(12.30, cell.getNumericCellValue(), 0.0001);
+
+            // Re-check ref one
+            cell = wb1.getSheetAt(0).getRow(1).getCell(4);
+            assertEquals(CellType.FORMULA, cell.getCellType());
+            assertEquals(CellType.NUMERIC, cell.getCachedFormulaResultType());
+            assertEquals(36.90, cell.getNumericCellValue(), 0.0001);
+
+
+            // Add a formula that refers to one of the existing external workbooks
+            cell = wb1.getSheetAt(0).getRow(1).createCell(40);
+            cell.setCellFormula("Cost*[XRefCalcData.xls]MarkupSheet!$B$1");
+
+            // Check is was stored correctly
+            assertEquals("Cost*[XRefCalcData.xls]MarkupSheet!$B$1", cell.getCellFormula());
+
+            // Check it evaluates correctly
+            eval.evaluateFormulaCell(cell);
+            assertEquals(24.60 * 1.8, cell.getNumericCellValue(), 0);
 
-			// Try to add a formula for a new external workbook, won't be allowed to start
+            // Try to add a formula for a new external workbook, won't be allowed to start
             cell = wb1.getSheetAt(0).getRow(1).createCell(42);
             final Cell cell2 = cell;
             assertThrows(Exception.class, () -> cell2.setCellFormula("[alt.xls]Sheet0!$A$1"),
                 "New workbook not linked, shouldn't be able to add");
 
-			// Link our new workbook
-			try (HSSFWorkbook wb3 = new HSSFWorkbook()) {
-				wb3.createSheet().createRow(0).createCell(0).setCellValue("In another workbook");
-				assertEquals(2, wb1.linkExternalWorkbook("alt.xls", wb3));
-
-				// Now add a formula that refers to our new workbook
-				cell.setCellFormula("[alt.xls]Sheet0!$A$1");
-				assertEquals("[alt.xls]Sheet0!$A$1", cell.getCellFormula());
-
-				HSSFFormulaEvaluator eval2 = eval;
-				assertThrows(Exception.class, () -> eval2.evaluate(cell2),
-					"No cached value and no link to workbook, shouldn't evaluate");
-
-				// Add a link, check it does
-				HSSFFormulaEvaluator.setupEnvironment(
-					new String[]{"XRefCalc.xls", "XRefCalcData.xls", "alt.xls"},
-					new HSSFFormulaEvaluator[]{
-						eval,
-						new HSSFFormulaEvaluator(wb2),
-						new HSSFFormulaEvaluator(wb3)
-					}
-				);
-				eval.evaluateFormulaCell(cell);
-				assertEquals("In another workbook", cell.getStringCellValue());
-
-
-				// Save and re-load
-				try (HSSFWorkbook wb4 = HSSFTestDataSamples.writeOutAndReadBack(wb1)) {
-					eval = new HSSFFormulaEvaluator(wb4);
-					HSSFFormulaEvaluator.setupEnvironment(
-						new String[]{"XRefCalc.xls", "XRefCalcData.xls", "alt.xls"},
-						new HSSFFormulaEvaluator[]{
-							eval,
-							new HSSFFormulaEvaluator(wb2),
-							new HSSFFormulaEvaluator(wb3)
-						}
-					);
-
-					// Check the one referring to the previously existing workbook behaves
-					cell = wb4.getSheetAt(0).getRow(1).getCell(40);
-					assertEquals("Cost*[XRefCalcData.xls]MarkupSheet!$B$1", cell.getCellFormula());
-					eval.evaluateFormulaCell(cell);
-					assertEquals(24.60 * 1.8, cell.getNumericCellValue(), 0);
-
-					// Now check the newly added reference
-					cell = wb4.getSheetAt(0).getRow(1).getCell(42);
-					assertEquals("[alt.xls]Sheet0!$A$1", cell.getCellFormula());
-					eval.evaluateFormulaCell(cell);
-					assertEquals("In another workbook", cell.getStringCellValue());
-				}
-			}
-		}
+            // Link our new workbook
+            try (HSSFWorkbook wb3 = new HSSFWorkbook()) {
+                wb3.createSheet().createRow(0).createCell(0).setCellValue("In another workbook");
+                assertEquals(2, wb1.linkExternalWorkbook("alt.xls", wb3));
+
+                // Now add a formula that refers to our new workbook
+                cell.setCellFormula("[alt.xls]Sheet0!$A$1");
+                assertEquals("[alt.xls]Sheet0!$A$1", cell.getCellFormula());
+
+                HSSFFormulaEvaluator eval2 = eval;
+                assertThrows(Exception.class, () -> eval2.evaluate(cell2),
+                    "No cached value and no link to workbook, shouldn't evaluate");
+
+                // Add a link, check it does
+                HSSFFormulaEvaluator.setupEnvironment(
+                    new String[]{"XRefCalc.xls", "XRefCalcData.xls", "alt.xls"},
+                    new HSSFFormulaEvaluator[]{
+                        eval,
+                        new HSSFFormulaEvaluator(wb2),
+                        new HSSFFormulaEvaluator(wb3)
+                    }
+                );
+                eval.evaluateFormulaCell(cell);
+                assertEquals("In another workbook", cell.getStringCellValue());
+
+
+                // Save and re-load
+                try (HSSFWorkbook wb4 = HSSFTestDataSamples.writeOutAndReadBack(wb1)) {
+                    eval = new HSSFFormulaEvaluator(wb4);
+                    HSSFFormulaEvaluator.setupEnvironment(
+                        new String[]{"XRefCalc.xls", "XRefCalcData.xls", "alt.xls"},
+                        new HSSFFormulaEvaluator[]{
+                            eval,
+                            new HSSFFormulaEvaluator(wb2),
+                            new HSSFFormulaEvaluator(wb3)
+                        }
+                    );
+
+                    // Check the one referring to the previously existing workbook behaves
+                    cell = wb4.getSheetAt(0).getRow(1).getCell(40);
+                    assertEquals("Cost*[XRefCalcData.xls]MarkupSheet!$B$1", cell.getCellFormula());
+                    eval.evaluateFormulaCell(cell);
+                    assertEquals(24.60 * 1.8, cell.getNumericCellValue(), 0);
+
+                    // Now check the newly added reference
+                    cell = wb4.getSheetAt(0).getRow(1).getCell(42);
+                    assertEquals("[alt.xls]Sheet0!$A$1", cell.getCellFormula());
+                    eval.evaluateFormulaCell(cell);
+                    assertEquals("In another workbook", cell.getStringCellValue());
+                }
+            }
+        }
     }
 }

Modified: poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFHeaderFooter.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFHeaderFooter.java?rev=1890120&r1=1890119&r2=1890120&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFHeaderFooter.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFHeaderFooter.java Sat May 22 20:56:44 2021
@@ -30,166 +30,166 @@ import org.junit.jupiter.api.Test;
  */
 final class TestHSSFHeaderFooter {
 
-	/**
-	 * Tests that get header retrieves the proper values.
-	 */
-	@Test
-	void testRetrieveCorrectHeader() throws IOException {
-
-		try (HSSFWorkbook wb = openSampleWorkbook("EmbeddedChartHeaderTest.xls")) {
-			HSSFSheet s = wb.getSheetAt(0);
-			HSSFHeader head = s.getHeader();
-
-			assertEquals("Top Left", head.getLeft());
-			assertEquals("Top Center", head.getCenter());
-			assertEquals("Top Right", head.getRight());
-		}
-	}
-
-	@Test
-	void testSpecialChars() {
-		assertEquals("&U", HSSFHeader.startUnderline());
-		assertEquals("&U", HSSFHeader.endUnderline());
-		assertEquals("&P", HSSFHeader.page());
-
-		assertEquals("&22", HSSFFooter.fontSize((short)22));
-		assertEquals("&\"Arial,bold\"", HSSFFooter.font("Arial", "bold"));
-	}
-
-	@Test
-	void testStripFields() throws IOException {
-		String simple = "I am a test header";
-		String withPage = "I am a&P test header";
-		String withLots = "I&A am&N a&P test&T header&U";
-		String withFont = "I&22 am a&\"Arial,bold\" test header";
-		String withOtherAnds = "I am a&P test header&&";
-		String withOtherAnds2 = "I am a&P test header&a&b";
-
-		assertEquals(simple, HSSFHeader.stripFields(simple));
-		assertEquals(simple, HSSFHeader.stripFields(withPage));
-		assertEquals(simple, HSSFHeader.stripFields(withLots));
-		assertEquals(simple, HSSFHeader.stripFields(withFont));
-		assertEquals(simple + "&&", HSSFHeader.stripFields(withOtherAnds));
-		assertEquals(simple + "&a&b", HSSFHeader.stripFields(withOtherAnds2));
-
-		// Now test the default strip flag
-		try (HSSFWorkbook wb = openSampleWorkbook("EmbeddedChartHeaderTest.xls")) {
-			HSSFSheet s = wb.getSheetAt(0);
-			HSSFHeader head = s.getHeader();
-
-			assertEquals("Top Left", head.getLeft());
-			assertEquals("Top Center", head.getCenter());
-			assertEquals("Top Right", head.getRight());
-
-			head.setLeft("Top &P&F&D Left");
-			assertEquals("Top &P&F&D Left", head.getLeft());
-
-			assertEquals("Top  Left", HeaderFooter.stripFields(head.getLeft()));
-
-			// Now even more complex
-			head.setCenter("HEADER TEXT &P&N&D&T&Z&F&F&A&G&X END");
-			assertEquals("HEADER TEXT  END", HeaderFooter.stripFields(head.getCenter()));
-		}
-	}
-
-	/**
-	 * Tests that get header retrieves the proper values.
-	 */
-	@Test
-	void testRetrieveCorrectFooter() throws IOException {
-		try (HSSFWorkbook wb = openSampleWorkbook("EmbeddedChartHeaderTest.xls")) {
-			HSSFSheet s = wb.getSheetAt(0);
-			HSSFFooter foot = s.getFooter();
-
-			assertEquals("Bottom Left", foot.getLeft());
-			assertEquals("Bottom Center", foot.getCenter());
-			assertEquals("Bottom Right", foot.getRight());
-		}
-	}
-
-	/**
-	 * Testcase for Bug 17039 HSSFHeader  does not support DBCS
-	 */
-	@Test
-	void testHeaderHas16bitCharacter() throws IOException {
-		try (HSSFWorkbook b = new HSSFWorkbook()) {
-			HSSFSheet s = b.createSheet("Test");
-			HSSFHeader h = s.getHeader();
-			h.setLeft("\u0391");
-			h.setCenter("\u0392");
-			h.setRight("\u0393");
-
-			try (HSSFWorkbook b2 = HSSFTestDataSamples.writeOutAndReadBack(b)) {
-				HSSFHeader h2 = b2.getSheet("Test").getHeader();
-
-				assertEquals(h2.getLeft(), "\u0391");
-				assertEquals(h2.getCenter(), "\u0392");
-				assertEquals(h2.getRight(), "\u0393");
-			}
-		}
-	}
-
-	/**
-	 * Testcase for Bug 17039 HSSFFooter does not support DBCS
-	 */
-	@Test
-	 void testFooterHas16bitCharacter() throws IOException {
-		try (HSSFWorkbook b = new HSSFWorkbook()) {
-			HSSFSheet s = b.createSheet("Test");
-			HSSFFooter f = s.getFooter();
-			f.setLeft("\u0391");
-			f.setCenter("\u0392");
-			f.setRight("\u0393");
-
-			try (HSSFWorkbook b2 = HSSFTestDataSamples.writeOutAndReadBack(b)) {
-				HSSFFooter f2 = b2.getSheet("Test").getFooter();
-
-				assertEquals(f2.getLeft(), "\u0391");
-				assertEquals(f2.getCenter(), "\u0392");
-				assertEquals(f2.getRight(), "\u0393");
-			}
-		}
-	}
-
-	@Test
-	void testReadDBCSHeaderFooter() throws IOException {
-		try (HSSFWorkbook wb = openSampleWorkbook("DBCSHeader.xls")) {
-			HSSFSheet s = wb.getSheetAt(0);
-			HSSFHeader h = s.getHeader();
-			assertEquals(h.getLeft(), "\u090f\u0915", "Header Left");
-			assertEquals(h.getCenter(), "\u0939\u094b\u0917\u093e", "Header Center");
-			assertEquals(h.getRight(), "\u091c\u093e", "Header Right");
-
-			HSSFFooter f = s.getFooter();
-			assertEquals(f.getLeft(), "\u091c\u093e", "Footer Left");
-			assertEquals(f.getCenter(), "\u091c\u093e", "Footer Center");
-			assertEquals(f.getRight(), "\u091c\u093e", "Footer Right");
-		}
-	}
-
-	/**
-	 * Excel tolerates files with missing HEADER/FOOTER records.  POI should do the same.
-	 */
-	@Test
-	void testMissingHeaderFooterRecord_bug47244() throws IOException {
-		// noHeaderFooter47244.xls was created by a slightly modified POI
-		// which omitted the HEADER/FOOTER records
-		try (HSSFWorkbook wb = openSampleWorkbook("noHeaderFooter47244.xls")) {
-			HSSFSheet sheet = wb.getSheetAt(0);
-			// bug 47244a - NullPointerException
-			HSSFFooter footer = sheet.getFooter();
-			assertEquals("", footer.getRawText());
-			HSSFHeader header = sheet.getHeader();
-			assertEquals("", header.getRawText());
-
-			// make sure header / footer is properly linked to underlying data
-			HSSFHeader header2 = sheet.getHeader();
-			header.setCenter("foo");
-			assertEquals("foo", header2.getCenter());
-
-			HSSFFooter footer2 = sheet.getFooter();
-			footer.setCenter("bar");
-			assertEquals("bar", footer2.getCenter());
-		}
-	}
+    /**
+     * Tests that get header retrieves the proper values.
+     */
+    @Test
+    void testRetrieveCorrectHeader() throws IOException {
+
+        try (HSSFWorkbook wb = openSampleWorkbook("EmbeddedChartHeaderTest.xls")) {
+            HSSFSheet s = wb.getSheetAt(0);
+            HSSFHeader head = s.getHeader();
+
+            assertEquals("Top Left", head.getLeft());
+            assertEquals("Top Center", head.getCenter());
+            assertEquals("Top Right", head.getRight());
+        }
+    }
+
+    @Test
+    void testSpecialChars() {
+        assertEquals("&U", HSSFHeader.startUnderline());
+        assertEquals("&U", HSSFHeader.endUnderline());
+        assertEquals("&P", HSSFHeader.page());
+
+        assertEquals("&22", HSSFFooter.fontSize((short)22));
+        assertEquals("&\"Arial,bold\"", HSSFFooter.font("Arial", "bold"));
+    }
+
+    @Test
+    void testStripFields() throws IOException {
+        String simple = "I am a test header";
+        String withPage = "I am a&P test header";
+        String withLots = "I&A am&N a&P test&T header&U";
+        String withFont = "I&22 am a&\"Arial,bold\" test header";
+        String withOtherAnds = "I am a&P test header&&";
+        String withOtherAnds2 = "I am a&P test header&a&b";
+
+        assertEquals(simple, HSSFHeader.stripFields(simple));
+        assertEquals(simple, HSSFHeader.stripFields(withPage));
+        assertEquals(simple, HSSFHeader.stripFields(withLots));
+        assertEquals(simple, HSSFHeader.stripFields(withFont));
+        assertEquals(simple + "&&", HSSFHeader.stripFields(withOtherAnds));
+        assertEquals(simple + "&a&b", HSSFHeader.stripFields(withOtherAnds2));
+
+        // Now test the default strip flag
+        try (HSSFWorkbook wb = openSampleWorkbook("EmbeddedChartHeaderTest.xls")) {
+            HSSFSheet s = wb.getSheetAt(0);
+            HSSFHeader head = s.getHeader();
+
+            assertEquals("Top Left", head.getLeft());
+            assertEquals("Top Center", head.getCenter());
+            assertEquals("Top Right", head.getRight());
+
+            head.setLeft("Top &P&F&D Left");
+            assertEquals("Top &P&F&D Left", head.getLeft());
+
+            assertEquals("Top  Left", HeaderFooter.stripFields(head.getLeft()));
+
+            // Now even more complex
+            head.setCenter("HEADER TEXT &P&N&D&T&Z&F&F&A&G&X END");
+            assertEquals("HEADER TEXT  END", HeaderFooter.stripFields(head.getCenter()));
+        }
+    }
+
+    /**
+     * Tests that get header retrieves the proper values.
+     */
+    @Test
+    void testRetrieveCorrectFooter() throws IOException {
+        try (HSSFWorkbook wb = openSampleWorkbook("EmbeddedChartHeaderTest.xls")) {
+            HSSFSheet s = wb.getSheetAt(0);
+            HSSFFooter foot = s.getFooter();
+
+            assertEquals("Bottom Left", foot.getLeft());
+            assertEquals("Bottom Center", foot.getCenter());
+            assertEquals("Bottom Right", foot.getRight());
+        }
+    }
+
+    /**
+     * Testcase for Bug 17039 HSSFHeader  does not support DBCS
+     */
+    @Test
+    void testHeaderHas16bitCharacter() throws IOException {
+        try (HSSFWorkbook b = new HSSFWorkbook()) {
+            HSSFSheet s = b.createSheet("Test");
+            HSSFHeader h = s.getHeader();
+            h.setLeft("\u0391");
+            h.setCenter("\u0392");
+            h.setRight("\u0393");
+
+            try (HSSFWorkbook b2 = HSSFTestDataSamples.writeOutAndReadBack(b)) {
+                HSSFHeader h2 = b2.getSheet("Test").getHeader();
+
+                assertEquals(h2.getLeft(), "\u0391");
+                assertEquals(h2.getCenter(), "\u0392");
+                assertEquals(h2.getRight(), "\u0393");
+            }
+        }
+    }
+
+    /**
+     * Testcase for Bug 17039 HSSFFooter does not support DBCS
+     */
+    @Test
+     void testFooterHas16bitCharacter() throws IOException {
+        try (HSSFWorkbook b = new HSSFWorkbook()) {
+            HSSFSheet s = b.createSheet("Test");
+            HSSFFooter f = s.getFooter();
+            f.setLeft("\u0391");
+            f.setCenter("\u0392");
+            f.setRight("\u0393");
+
+            try (HSSFWorkbook b2 = HSSFTestDataSamples.writeOutAndReadBack(b)) {
+                HSSFFooter f2 = b2.getSheet("Test").getFooter();
+
+                assertEquals(f2.getLeft(), "\u0391");
+                assertEquals(f2.getCenter(), "\u0392");
+                assertEquals(f2.getRight(), "\u0393");
+            }
+        }
+    }
+
+    @Test
+    void testReadDBCSHeaderFooter() throws IOException {
+        try (HSSFWorkbook wb = openSampleWorkbook("DBCSHeader.xls")) {
+            HSSFSheet s = wb.getSheetAt(0);
+            HSSFHeader h = s.getHeader();
+            assertEquals(h.getLeft(), "\u090f\u0915", "Header Left");
+            assertEquals(h.getCenter(), "\u0939\u094b\u0917\u093e", "Header Center");
+            assertEquals(h.getRight(), "\u091c\u093e", "Header Right");
+
+            HSSFFooter f = s.getFooter();
+            assertEquals(f.getLeft(), "\u091c\u093e", "Footer Left");
+            assertEquals(f.getCenter(), "\u091c\u093e", "Footer Center");
+            assertEquals(f.getRight(), "\u091c\u093e", "Footer Right");
+        }
+    }
+
+    /**
+     * Excel tolerates files with missing HEADER/FOOTER records.  POI should do the same.
+     */
+    @Test
+    void testMissingHeaderFooterRecord_bug47244() throws IOException {
+        // noHeaderFooter47244.xls was created by a slightly modified POI
+        // which omitted the HEADER/FOOTER records
+        try (HSSFWorkbook wb = openSampleWorkbook("noHeaderFooter47244.xls")) {
+            HSSFSheet sheet = wb.getSheetAt(0);
+            // bug 47244a - NullPointerException
+            HSSFFooter footer = sheet.getFooter();
+            assertEquals("", footer.getRawText());
+            HSSFHeader header = sheet.getHeader();
+            assertEquals("", header.getRawText());
+
+            // make sure header / footer is properly linked to underlying data
+            HSSFHeader header2 = sheet.getHeader();
+            header.setCenter("foo");
+            assertEquals("foo", header2.getCenter());
+
+            HSSFFooter footer2 = sheet.getFooter();
+            footer.setCenter("bar");
+            assertEquals("bar", footer2.getCenter());
+        }
+    }
 }

Modified: poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPalette.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPalette.java?rev=1890120&r1=1890119&r2=1890120&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPalette.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPalette.java Sat May 22 20:56:44 2021
@@ -152,33 +152,33 @@ final class TestHSSFPalette {
 
         /* first test the defaults */
         assertArrayEquals(
-        				new short[] {(short) 255, (short) 255, (short) 0}, // not [204, 255, 255]
-        				p.findSimilarColor((byte) 204, (byte) 255, (byte) 0).getTriplet()
+                        new short[] {(short) 255, (short) 255, (short) 0}, // not [204, 255, 255]
+                        p.findSimilarColor((byte) 204, (byte) 255, (byte) 0).getTriplet()
         );
 
         assertArrayEquals(
-        				new short[] {(short) 153, (short) 204, (short) 0}, // not [128, 0, 0]
-        				p.findSimilarColor((byte) 128, (byte) 255, (byte) 0).getTriplet()
+                        new short[] {(short) 153, (short) 204, (short) 0}, // not [128, 0, 0]
+                        p.findSimilarColor((byte) 128, (byte) 255, (byte) 0).getTriplet()
         );
 
         assertArrayEquals(
-        				new short[] {(short) 0, (short) 255, (short) 0}, // not [0, 51, 102]
-        				p.findSimilarColor((byte) 0, (byte) 255, (byte) 102).getTriplet()
+                        new short[] {(short) 0, (short) 255, (short) 0}, // not [0, 51, 102]
+                        p.findSimilarColor((byte) 0, (byte) 255, (byte) 102).getTriplet()
         );
 
         assertArrayEquals(
-        				new short[] {(short) 0, (short) 102, (short) 204}, // not [255, 102, 0]
-        				p.findSimilarColor((byte) 0, (byte) 102, (byte) 255).getTriplet()
+                        new short[] {(short) 0, (short) 102, (short) 204}, // not [255, 102, 0]
+                        p.findSimilarColor((byte) 0, (byte) 102, (byte) 255).getTriplet()
         );
 
         assertArrayEquals(
-        				new short[] {(short) 255, (short) 0, (short) 255}, // not [128, 0, 0]
-        				p.findSimilarColor((byte) 128, (byte) 0, (byte) 255).getTriplet()
+                        new short[] {(short) 255, (short) 0, (short) 255}, // not [128, 0, 0]
+                        p.findSimilarColor((byte) 128, (byte) 0, (byte) 255).getTriplet()
         );
 
         assertArrayEquals(
-        				new short[] {(short) 255, (short) 0, (short) 255}, // not [255, 255, 153]
-        				p.findSimilarColor((byte) 255, (byte) 0, (byte) 153).getTriplet()
+                        new short[] {(short) 255, (short) 0, (short) 255}, // not [255, 255, 153]
+                        p.findSimilarColor((byte) 255, (byte) 0, (byte) 153).getTriplet()
         );
 
 

Modified: poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPatriarch.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPatriarch.java?rev=1890120&r1=1890119&r2=1890120&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPatriarch.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPatriarch.java Sat May 22 20:56:44 2021
@@ -27,38 +27,38 @@ import org.junit.jupiter.api.Test;
 
 final class TestHSSFPatriarch {
 
-	@Test
-	void testBasic() throws IOException {
-		try (HSSFWorkbook wb = new HSSFWorkbook()) {
-			HSSFSheet sheet = wb.createSheet();
-
-			HSSFPatriarch patr = sheet.createDrawingPatriarch();
-			assertNotNull(patr);
-		}
-	}
-
-	@Test
-	void test44916() throws IOException {
-		try (HSSFWorkbook wb = new HSSFWorkbook()) {
-			HSSFSheet sheet = wb.createSheet();
-
-			// 1. Create drawing patriarch
-			HSSFPatriarch patr = sheet.createDrawingPatriarch();
-
-			// 2. Try to re-get the patriarch
-			// bug 44916 - NullPointerException
-			HSSFPatriarch existingPatr = sheet.getDrawingPatriarch();
-
-			// 3. Use patriarch
-			HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 600, 245, (short) 1, 1, (short) 1, 2);
-			anchor.setAnchorType(AnchorType.DONT_MOVE_AND_RESIZE);
-			byte[] pictureData = HSSFTestDataSamples.getTestDataFileContent("logoKarmokar4.png");
-			int idx1 = wb.addPicture(pictureData, HSSFWorkbook.PICTURE_TYPE_PNG);
-			patr.createPicture(anchor, idx1);
-
-			// 4. Try to re-use patriarch later
-			existingPatr = sheet.getDrawingPatriarch();
-			assertNotNull(existingPatr);
-		}
-	}
+    @Test
+    void testBasic() throws IOException {
+        try (HSSFWorkbook wb = new HSSFWorkbook()) {
+            HSSFSheet sheet = wb.createSheet();
+
+            HSSFPatriarch patr = sheet.createDrawingPatriarch();
+            assertNotNull(patr);
+        }
+    }
+
+    @Test
+    void test44916() throws IOException {
+        try (HSSFWorkbook wb = new HSSFWorkbook()) {
+            HSSFSheet sheet = wb.createSheet();
+
+            // 1. Create drawing patriarch
+            HSSFPatriarch patr = sheet.createDrawingPatriarch();
+
+            // 2. Try to re-get the patriarch
+            // bug 44916 - NullPointerException
+            HSSFPatriarch existingPatr = sheet.getDrawingPatriarch();
+
+            // 3. Use patriarch
+            HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 600, 245, (short) 1, 1, (short) 1, 2);
+            anchor.setAnchorType(AnchorType.DONT_MOVE_AND_RESIZE);
+            byte[] pictureData = HSSFTestDataSamples.getTestDataFileContent("logoKarmokar4.png");
+            int idx1 = wb.addPicture(pictureData, HSSFWorkbook.PICTURE_TYPE_PNG);
+            patr.createPicture(anchor, idx1);
+
+            // 4. Try to re-use patriarch later
+            existingPatr = sheet.getDrawingPatriarch();
+            assertNotNull(existingPatr);
+        }
+    }
 }

Modified: poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPicture.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPicture.java?rev=1890120&r1=1890119&r2=1890120&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPicture.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPicture.java Sat May 22 20:56:44 2021
@@ -238,7 +238,7 @@ final class TestHSSFPicture extends Base
     @SuppressWarnings("resource")
     @Test
     void bug49658() throws IOException {
-    	// test if inserted EscherMetafileBlip will be read again
+        // test if inserted EscherMetafileBlip will be read again
         try (HSSFWorkbook wb1 = new HSSFWorkbook()) {
 
             byte[] pictureDataEmf = POIDataSamples.getDocumentInstance().readFile("vector_image.emf");

Modified: poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java?rev=1890120&r1=1890119&r2=1890120&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestHSSFPictureData.java Sat May 22 20:56:44 2021
@@ -39,13 +39,13 @@ import org.junit.jupiter.api.Test;
  * The code to retrieve images from a workbook provided by Trejkaz (trejkaz at trypticon dot org) in Bug 41223.
  */
 final class TestHSSFPictureData {
-	@BeforeAll
+    @BeforeAll
     public static void setUpClass() {
-		POITestCase.setImageIOCacheDir();
-	}
+        POITestCase.setImageIOCacheDir();
+    }
 
-	@Test
-	void testPictures() throws IOException {
+    @Test
+    void testPictures() throws IOException {
         HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("SimpleWithImages.xls");
 
         // TODO - add getFormat() to interface PictureData and genericise wb.getAllPictures()
@@ -82,7 +82,7 @@ final class TestHSSFPictureData {
     }
 
     @Test
-	void testMacPicture() throws IOException {
+    void testMacPicture() throws IOException {
         HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("53446.xls");
 
         try{



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org