ASF Bugzilla – Attachment 33151 Details for
Bug 58466
ColumnHelper.addCleanColIntoCols() loses information in some overlapping-column cases
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
More tests of ColumnHelper, 2 of which fail
0001-More-tests-for-ColumnHelper-2-of-which-fail.patch (text/plain), 6.70 KB, created by
Chris Boyle
on 2015-09-29 17:00:30 UTC
(
hide
)
Description:
More tests of ColumnHelper, 2 of which fail
Filename:
MIME Type:
Creator:
Chris Boyle
Created:
2015-09-29 17:00:30 UTC
Size:
6.70 KB
patch
obsolete
>From 725ce8e15c377980b0486315b921ac5932783e86 Mon Sep 17 00:00:00 2001 >From: Chris Boyle <cmb@corefiling.com> >Date: Tue, 29 Sep 2015 16:52:36 +0100 >Subject: [PATCH] More tests for ColumnHelper, 2 of which fail. > >--- > .../xssf/usermodel/helpers/TestColumnHelper.java | 114 +++++++++++++++++---- > 1 file changed, 96 insertions(+), 18 deletions(-) > >diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/helpers/TestColumnHelper.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/helpers/TestColumnHelper.java >index b4ab283..94902b2 100644 >--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/helpers/TestColumnHelper.java >+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/helpers/TestColumnHelper.java >@@ -154,36 +154,28 @@ public final class TestColumnHelper extends TestCase { > col4.setMax(9); > assertEquals(4, cols1.sizeOfColArray()); > >- CTCol col5 = CTCol.Factory.newInstance(); >- col5.setMin(4); >- col5.setMax(5); >- helper.addCleanColIntoCols(cols1, col5); >+ // No overlap >+ helper.addCleanColIntoCols(cols1, createCol(4, 5)); > assertEquals(5, cols1.sizeOfColArray()); > >- CTCol col6 = CTCol.Factory.newInstance(); >- col6.setMin(8); >- col6.setMax(11); >+ // Overlaps with 8 - 9 (overlap and after replacements required) >+ CTCol col6 = createCol(8, 11); > col6.setHidden(true); > helper.addCleanColIntoCols(cols1, col6); > assertEquals(6, cols1.sizeOfColArray()); > >- CTCol col7 = CTCol.Factory.newInstance(); >- col7.setMin(6); >- col7.setMax(8); >+ // Overlaps with 8 - 9 (before and overlap replacements required) >+ CTCol col7 = createCol(6, 8); > col7.setWidth(17.0); > helper.addCleanColIntoCols(cols1, col7); > assertEquals(8, cols1.sizeOfColArray()); > >- CTCol col8 = CTCol.Factory.newInstance(); >- col8.setMin(20); >- col8.setMax(30); >- helper.addCleanColIntoCols(cols1, col8); >+ // Overlaps with 13 - 16750 (before, overlap and after replacements required) >+ helper.addCleanColIntoCols(cols1, createCol(20, 30)); > assertEquals(10, cols1.sizeOfColArray()); > >- CTCol col9 = CTCol.Factory.newInstance(); >- col9.setMin(25); >- col9.setMax(27); >- helper.addCleanColIntoCols(cols1, col9); >+ // Overlaps with 20 - 30 (before, overlap and after replacements required) >+ helper.addCleanColIntoCols(cols1, createCol(25, 27)); > > // TODO - assert something interesting > assertEquals(12, cols1.sizeOfColArray()); >@@ -191,6 +183,92 @@ public final class TestColumnHelper extends TestCase { > assertEquals(16750, cols1.getColArray(11).getMax()); > } > >+ public void testAddCleanColIntoColsExactOverlap() throws Exception { >+ CTCols cols = createHiddenAndBestFitColsWithHelper(1, 1, 1, 1); >+ assertEquals(1, cols.sizeOfColArray()); >+ assertMinMaxHiddenBestFit(cols, 0, 1, 1, true, true); >+ } >+ >+ public void testAddCleanColIntoColsOverlapsOverhangingBothSides() throws Exception { >+ CTCols cols = createHiddenAndBestFitColsWithHelper(2, 2, 1, 3); >+ assertEquals(3, cols.sizeOfColArray()); >+ assertMinMaxHiddenBestFit(cols, 0, 1, 1, false, true); >+ assertMinMaxHiddenBestFit(cols, 1, 2, 2, true, true); >+ assertMinMaxHiddenBestFit(cols, 2, 3, 3, false, true); >+ } >+ >+ public void testAddCleanColIntoColsOverlapsCompletelyNested() throws Exception { >+ CTCols cols = createHiddenAndBestFitColsWithHelper(1, 3, 2, 2); >+ assertEquals(3, cols.sizeOfColArray()); >+ assertMinMaxHiddenBestFit(cols, 0, 1, 1, true, false); >+ assertMinMaxHiddenBestFit(cols, 1, 2, 2, true, true); >+ assertMinMaxHiddenBestFit(cols, 2, 3, 3, true, false); >+ } >+ >+ public void testAddCleanColIntoColsNewOverlapsOverhangingLeftNotRightExactRight() throws Exception { >+ CTCols cols = createHiddenAndBestFitColsWithHelper(2, 3, 1, 3); >+ assertEquals(2, cols.sizeOfColArray()); >+ assertMinMaxHiddenBestFit(cols, 0, 1, 1, false, true); >+ assertMinMaxHiddenBestFit(cols, 1, 2, 3, true, true); >+ } >+ >+ public void testAddCleanColIntoColsNewOverlapsOverhangingRightNotLeftExactLeft() throws Exception { >+ CTCols cols = createHiddenAndBestFitColsWithHelper(1, 2, 1, 3); >+ assertEquals(2, cols.sizeOfColArray()); >+ assertMinMaxHiddenBestFit(cols, 0, 1, 2, true, true); >+ assertMinMaxHiddenBestFit(cols, 1, 3, 3, false, true); >+ } >+ >+ public void testAddCleanColIntoColsNewOverlapsOverhangingLeftNotRight() throws Exception { >+ CTCols cols = createHiddenAndBestFitColsWithHelper(2, 3, 1, 2); >+ assertEquals(3, cols.sizeOfColArray()); >+ assertMinMaxHiddenBestFit(cols, 0, 1, 1, false, true); >+ assertMinMaxHiddenBestFit(cols, 1, 2, 2, true, true); >+ assertMinMaxHiddenBestFit(cols, 2, 3, 3, true, false); >+ } >+ >+ public void testAddCleanColIntoColsNewOverlapsOverhangingRightNotLeft() throws Exception { >+ CTCols cols = createHiddenAndBestFitColsWithHelper(1, 2, 2, 3); >+ assertEquals(3, cols.sizeOfColArray()); >+ assertMinMaxHiddenBestFit(cols, 0, 1, 1, true, false); >+ assertMinMaxHiddenBestFit(cols, 1, 2, 2, true, true); >+ assertMinMaxHiddenBestFit(cols, 2, 3, 3, false, true); >+ } >+ >+ /** >+ * Creates and adds a hidden column and then a best fit column with the given min/max pairs. >+ * Suitable for testing handling of overlap. >+ */ >+ private CTCols createHiddenAndBestFitColsWithHelper(int hiddenMin, int hiddenMax, int bestFitMin, int bestFitMax) { >+ CTWorksheet worksheet = CTWorksheet.Factory.newInstance(); >+ ColumnHelper helper = new ColumnHelper(worksheet); >+ CTCols cols = worksheet.getColsArray(0); >+ >+ CTCol hidden = createCol(hiddenMin, hiddenMax); >+ hidden.setHidden(true); >+ helper.addCleanColIntoCols(cols, hidden); >+ >+ CTCol bestFit = createCol(bestFitMin, bestFitMax); >+ bestFit.setBestFit(true); >+ helper.addCleanColIntoCols(cols, bestFit); >+ return cols; >+ } >+ >+ private void assertMinMaxHiddenBestFit(CTCols cols, int index, int min, int max, boolean hidden, boolean bestFit) { >+ CTCol col = cols.getColArray(index); >+ assertEquals(min, col.getMin()); >+ assertEquals(max, col.getMax()); >+ assertEquals(hidden, col.getHidden()); >+ assertEquals(bestFit, col.getBestFit()); >+ } >+ >+ private CTCol createCol(int min, int max) { >+ CTCol col = CTCol.Factory.newInstance(); >+ col.setMin(min); >+ col.setMax(max); >+ return col; >+ } >+ > public void testGetColumn() { > CTWorksheet worksheet = CTWorksheet.Factory.newInstance(); > >-- >1.9.3 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 58466
: 33151