]> source.dussan.org Git - poi.git/commitdiff
#58130 More CF Icon unit tests
authorNick Burch <nick@apache.org>
Sun, 19 Jul 2015 00:08:26 +0000 (00:08 +0000)
committerNick Burch <nick@apache.org>
Sun, 19 Jul 2015 00:08:26 +0000 (00:08 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1691787 13f79535-47bb-0310-9956-ffa450edef68

src/testcases/org/apache/poi/ss/usermodel/BaseTestConditionalFormatting.java

index b8eeb2053da305a9dc07e0300c5a00a838aad75b..1204355fae91016f4ed92aa039b14668b607fdba 100644 (file)
@@ -101,6 +101,7 @@ public abstract class BaseTestConditionalFormatting extends TestCase {
     /**\r
      * Test format conditions based on a boolean formula\r
      */\r
+    @SuppressWarnings("deprecation")\r
     public void testBooleanFormulaConditions() {\r
         Workbook wb = _testDataProvider.createWorkbook();\r
         Sheet sh = wb.createSheet();\r
@@ -136,6 +137,7 @@ public abstract class BaseTestConditionalFormatting extends TestCase {
         assertEquals("B1:B3", ranges2[0].formatAsString());\r
     }\r
 \r
+    @SuppressWarnings("deprecation")\r
     public void testSingleFormulaConditions() {\r
         Workbook wb = _testDataProvider.createWorkbook();\r
         Sheet sh = wb.createSheet();\r
@@ -207,6 +209,7 @@ public abstract class BaseTestConditionalFormatting extends TestCase {
         assertEquals(ComparisonOperator.NOT_BETWEEN, rule9.getComparisonOperation());\r
     }\r
 \r
+    @SuppressWarnings("deprecation")\r
     public void testCopy() {\r
         Workbook wb = _testDataProvider.createWorkbook();\r
         Sheet sheet1 = wb.createSheet();\r
@@ -546,8 +549,7 @@ public abstract class BaseTestConditionalFormatting extends TestCase {
         Sheet s = wb.getSheet("CF");\r
         ConditionalFormatting cf = null;\r
         ConditionalFormattingRule cr = null;\r
-        IconMultiStateFormatting icon = null;\r
-        ConditionalFormattingThreshold th = null;\r
+\r
         \r
         // Sanity check data\r
         assertEquals("Values", s.getRow(0).getCell(0).toString());\r
@@ -696,22 +698,95 @@ public abstract class BaseTestConditionalFormatting extends TestCase {
         assertIconSetPercentages(cf, IconSet.GYRB_4_TRAFFIC_LIGHTS, 0d, 25d, 50d, 75d);\r
 \r
         \r
-        // Icons : 3 symbols - Column L\r
-        // Icons : 3 flags - Column M\r
-        // Icons : 3 symbols 2 - Column N\r
-        // Icons : 3 arrows - Column O     \r
+        // Icons : 3 symbols with backgrounds - Column L\r
+        cf = sheetCF.getConditionalFormattingAt(9);\r
+        assertEquals(1, cf.getFormattingRanges().length);\r
+        assertEquals("L2:L17", cf.getFormattingRanges()[0].formatAsString());\r
+        assertIconSetPercentages(cf, IconSet.GYR_3_SYMBOLS_CIRCLE, 0d, 33d, 67d);\r
+\r
+        \r
+        // Icons : 3 flags - Column M2 Only\r
+        cf = sheetCF.getConditionalFormattingAt(10);\r
+        assertEquals(1, cf.getFormattingRanges().length);\r
+        assertEquals("M2", cf.getFormattingRanges()[0].formatAsString());\r
+        assertIconSetPercentages(cf, IconSet.GYR_3_FLAGS, 0d, 33d, 67d);\r
+\r
+        // Icons : 3 flags - Column M (all)\r
+        cf = sheetCF.getConditionalFormattingAt(11);\r
+        assertEquals(1, cf.getFormattingRanges().length);\r
+        assertEquals("M2:M17", cf.getFormattingRanges()[0].formatAsString());\r
+        assertIconSetPercentages(cf, IconSet.GYR_3_FLAGS, 0d, 33d, 67d);\r
+\r
+        \r
+        // Icons : 3 symbols 2 (no background) - Column N\r
+        cf = sheetCF.getConditionalFormattingAt(12);\r
+        assertEquals(1, cf.getFormattingRanges().length);\r
+        assertEquals("N2:N17", cf.getFormattingRanges()[0].formatAsString());\r
+        assertIconSetPercentages(cf, IconSet.GYR_3_SYMBOLS, 0d, 33d, 67d);\r
+\r
+        \r
+        // Icons : 3 arrows - Column O\r
+        cf = sheetCF.getConditionalFormattingAt(13);\r
+        assertEquals(1, cf.getFormattingRanges().length);\r
+        assertEquals("O2:O17", cf.getFormattingRanges()[0].formatAsString());\r
+        assertIconSetPercentages(cf, IconSet.GYR_3_ARROW, 0d, 33d, 67d);\r
+\r
+        \r
         // Icons : 5 arrows grey - Column P    \r
+        cf = sheetCF.getConditionalFormattingAt(14);\r
+        assertEquals(1, cf.getFormattingRanges().length);\r
+        assertEquals("P2:P17", cf.getFormattingRanges()[0].formatAsString());\r
+        assertIconSetPercentages(cf, IconSet.GREY_5_ARROWS, 0d, 20d, 40d, 60d, 80d);\r
+\r
+        \r
         // Icons : 3 stars (ext) - Column Q\r
+        // TODO Support EXT formattings\r
+\r
+        \r
         // Icons : 4 ratings - Column R\r
+        cf = sheetCF.getConditionalFormattingAt(15);\r
+        assertEquals(1, cf.getFormattingRanges().length);\r
+        assertEquals("R2:R17", cf.getFormattingRanges()[0].formatAsString());\r
+        assertIconSetPercentages(cf, IconSet.RATINGS_4, 0d, 25d, 50d, 75d);\r
+\r
+        \r
         // Icons : 5 ratings - Column S\r
+        cf = sheetCF.getConditionalFormattingAt(16);\r
+        assertEquals(1, cf.getFormattingRanges().length);\r
+        assertEquals("S2:S17", cf.getFormattingRanges()[0].formatAsString());\r
+        assertIconSetPercentages(cf, IconSet.RATINGS_5, 0d, 20d, 40d, 60d, 80d);\r
+\r
+        \r
         // Custom Icon+Format - Column T\r
+        cf = sheetCF.getConditionalFormattingAt(17);\r
+        assertEquals(1, cf.getFormattingRanges().length);\r
+        assertEquals("T2:T17", cf.getFormattingRanges()[0].formatAsString());\r
+        \r
+        // TODO Support IconSet + Other CFs with 2 rules\r
+//        assertEquals(2, cf.getNumberOfRules());\r
+//        cr = cf.getRule(0);\r
+//        assertIconSetPercentages(cr, IconSet.GYR_3_TRAFFIC_LIGHTS_BOX, 0d, 33d, 67d);\r
+//        cr = cf.getRule(1);\r
+//        assertEquals(ConditionType.FORMULA, cr.getConditionTypeType());\r
+//        assertEquals(ComparisonOperator.NO_COMPARISON, cr.getComparisonOperation());\r
+//        // TODO Why aren't these two the same between formats?\r
+//        if (cr instanceof HSSFConditionalFormattingRule) {\r
+//            assertEquals("MOD(ROW($T1),2)=1", cr.getFormula1());\r
+//        } else {\r
+//            assertEquals("MOD(ROW($T2),2)=1", cr.getFormula1());\r
+//        }\r
+//        assertEquals(null, cr.getFormula2());\r
+        \r
+        \r
         // Mixed icons - Column U\r
-\r
+        // TODO Support EXT formattings\r
     }\r
     private void assertIconSetPercentages(ConditionalFormatting cf, IconSet iconset, Double...vals) {\r
         assertEquals(1, cf.getNumberOfRules());\r
         ConditionalFormattingRule cr = cf.getRule(0);\r
-        \r
+        assertIconSetPercentages(cr, iconset, vals);\r
+    }        \r
+    private void assertIconSetPercentages(ConditionalFormattingRule cr, IconSet iconset, Double...vals) {\r
         assertEquals(ConditionType.ICON_SET, cr.getConditionTypeType());\r
         assertEquals(ComparisonOperator.NO_COMPARISON, cr.getComparisonOperation());\r
         assertEquals(null, cr.getFormula1());\r