Font sizes can vary slightly between machines, so use small ranges not absolute numbers when testing column autosizing
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@610481 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
400bfacc62
commit
a4caea39b5
@ -724,10 +724,20 @@ public class TestHSSFSheet
|
|||||||
HSSFWorkbook wb = new HSSFWorkbook(fs);
|
HSSFWorkbook wb = new HSSFWorkbook(fs);
|
||||||
HSSFSheet sheet = wb.getSheet(sheetName);
|
HSSFSheet sheet = wb.getSheet(sheetName);
|
||||||
|
|
||||||
|
// Can't use literal numbers for column sizes, as
|
||||||
|
// will come out with different values on different
|
||||||
|
// machines based on the fonts available.
|
||||||
|
// So, we use ranges
|
||||||
|
int minWithRow1And2 = 7169;
|
||||||
|
int maxWithRow1And2 = 7732;
|
||||||
|
int minWithRow1Only = 3024;
|
||||||
|
int maxWithRow1Only = 3292;
|
||||||
|
|
||||||
// autoSize the first column and check its size before the merged region (1,0,1,1) is set:
|
// autoSize the first column and check its size before the merged region (1,0,1,1) is set:
|
||||||
// it has to be based on the 2nd row width
|
// it has to be based on the 2nd row width
|
||||||
sheet.autoSizeColumn((short)0);
|
sheet.autoSizeColumn((short)0);
|
||||||
assertEquals("Column autosized with only one row: wrong width", (short)7169, sheet.getColumnWidth((short)0));
|
assertTrue("Column autosized with only one row: wrong width", sheet.getColumnWidth((short)0) >= minWithRow1And2);
|
||||||
|
assertTrue("Column autosized with only one row: wrong width", sheet.getColumnWidth((short)0) <= maxWithRow1And2);
|
||||||
|
|
||||||
//create a region over the 2nd row and auto size the first column
|
//create a region over the 2nd row and auto size the first column
|
||||||
sheet.addMergedRegion(new Region(1,(short)0,1,(short)1));
|
sheet.addMergedRegion(new Region(1,(short)0,1,(short)1));
|
||||||
@ -740,7 +750,8 @@ public class TestHSSFSheet
|
|||||||
// because it is included in a merged region (Excel like behavior)
|
// because it is included in a merged region (Excel like behavior)
|
||||||
HSSFWorkbook wb2 = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));
|
HSSFWorkbook wb2 = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));
|
||||||
HSSFSheet sheet2 = wb2.getSheet(sheetName);
|
HSSFSheet sheet2 = wb2.getSheet(sheetName);
|
||||||
assertEquals((short)3024, sheet2.getColumnWidth((short)0));
|
assertTrue(sheet2.getColumnWidth((short)0) >= minWithRow1Only);
|
||||||
|
assertTrue(sheet2.getColumnWidth((short)0) <= maxWithRow1Only);
|
||||||
|
|
||||||
// remove the 2nd row merged region and check that the 2nd row value is used to the autoSizeColumn width
|
// remove the 2nd row merged region and check that the 2nd row value is used to the autoSizeColumn width
|
||||||
sheet2.removeMergedRegion(1);
|
sheet2.removeMergedRegion(1);
|
||||||
@ -750,7 +761,8 @@ public class TestHSSFSheet
|
|||||||
out.close();
|
out.close();
|
||||||
HSSFWorkbook wb3 = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));
|
HSSFWorkbook wb3 = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));
|
||||||
HSSFSheet sheet3 = wb3.getSheet(sheetName);
|
HSSFSheet sheet3 = wb3.getSheet(sheetName);
|
||||||
assertEquals((short)7169, sheet3.getColumnWidth((short)0));
|
assertTrue(sheet3.getColumnWidth((short)0) >= minWithRow1And2);
|
||||||
|
assertTrue(sheet3.getColumnWidth((short)0) <= maxWithRow1And2);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(java.lang.String[] args) {
|
public static void main(java.lang.String[] args) {
|
||||||
|
Loading…
Reference in New Issue
Block a user