diff options
Diffstat (limited to 'src/testcases')
-rw-r--r-- | src/testcases/org/apache/poi/hssf/usermodel/TestHSSFDateUtil.java | 4 | ||||
-rw-r--r-- | src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java | 140 |
2 files changed, 133 insertions, 11 deletions
diff --git a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFDateUtil.java b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFDateUtil.java index cab1467d8f..926572b1a8 100644 --- a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFDateUtil.java +++ b/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFDateUtil.java @@ -271,7 +271,8 @@ public final class TestHSSFDateUtil extends TestCase { "mm/dd HH:MM PM", "mm/dd HH:MM pm", "m/d/yy h:mm AM/PM", "hh:mm:ss", "hh:mm:ss.0", "mm:ss.0", - + //support elapsed time [h],[m],[s] + "[hh]", "[mm]", "[ss]", "[SS]", "[red][hh]" }; for(int i=0; i<formats.length; i++) { assertTrue( @@ -286,6 +287,7 @@ public final class TestHSSFDateUtil extends TestCase { "0.0", "0.000", "0%", "0.0%", "[]Foo", "[BLACK]0.00%", + "[ms]", "[Mh]", "", null }; for(int i=0; i<formats.length; i++) { diff --git a/src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java b/src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java index 06abd6c502..41c220c5d3 100644 --- a/src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java +++ b/src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java @@ -27,7 +27,7 @@ import org.apache.poi.hssf.usermodel.TestHSSFDataFormatter; /** * Tests of {@link DataFormatter} * - * See {@link TestHSSFDataFormatter} too for + * See {@link TestHSSFDataFormatter} too for * more tests. */ public class TestDataFormatter extends TestCase { @@ -180,6 +180,38 @@ public class TestDataFormatter extends TestCase { } /** + * DataFormatter is the CSV mode preserves spaces + */ + public void testPaddingSpacesCSV() { + DataFormatter dfUS = new DataFormatter(Locale.US, true); + assertEquals("12.34 ", dfUS.formatRawCellContents(12.343, -1, "##.##_ ")); + assertEquals("-12.34 ", dfUS.formatRawCellContents(-12.343, -1, "##.##_ ")); + assertEquals(". ", dfUS.formatRawCellContents(0.0, -1, "##.##_ ")); + assertEquals("12.34 ", dfUS.formatRawCellContents(12.343, -1, "##.##_1")); + assertEquals("-12.34 ", dfUS.formatRawCellContents(-12.343, -1, "##.##_1")); + assertEquals(". ", dfUS.formatRawCellContents(0.0, -1, "##.##_1")); + assertEquals("12.34 ", dfUS.formatRawCellContents(12.343, -1, "##.##_)")); + assertEquals("-12.34 ", dfUS.formatRawCellContents(-12.343, -1, "##.##_)")); + assertEquals(". ", dfUS.formatRawCellContents(0.0, -1, "##.##_)")); + assertEquals(" 12.34", dfUS.formatRawCellContents(12.343, -1, "_-##.##")); + assertEquals("- 12.34", dfUS.formatRawCellContents(-12.343, -1, "_-##.##")); + assertEquals(" .", dfUS.formatRawCellContents(0.0, -1, "_-##.##")); + + assertEquals("12.34", dfUS.formatRawCellContents(12.343, -1, "##.##* ")); + assertEquals("-12.34", dfUS.formatRawCellContents(-12.343, -1, "##.##* ")); + assertEquals(".", dfUS.formatRawCellContents(0.0, -1, "##.##* ")); + assertEquals("12.34", dfUS.formatRawCellContents(12.343, -1, "##.##*1")); + assertEquals("-12.34", dfUS.formatRawCellContents(-12.343, -1, "##.##*1")); + assertEquals(".", dfUS.formatRawCellContents(0.0, -1, "##.##*1")); + assertEquals("12.34", dfUS.formatRawCellContents(12.343, -1, "##.##*)")); + assertEquals("-12.34", dfUS.formatRawCellContents(-12.343, -1, "##.##*)")); + assertEquals(".", dfUS.formatRawCellContents(0.0, -1, "##.##*)")); + assertEquals("12.34", dfUS.formatRawCellContents(12.343, -1, "*-##.##")); + assertEquals("-12.34", dfUS.formatRawCellContents(-12.343, -1, "*-##.##")); + assertEquals(".", dfUS.formatRawCellContents(0.0, -1, "*-##.##")); + } + + /** * Test that the special Excel month format MMMMM * gets turned into the first letter of the month */ @@ -196,14 +228,14 @@ public class TestDataFormatter extends TestCase { } /** - * Test that we can handle elapsed time, + * Test that we can handle elapsed time, * eg formatting 1 day 4 hours as 28 hours */ public void testElapsedTime() { DataFormatter dfUS = new DataFormatter(Locale.US); - + double hour = 1.0/24.0; - + assertEquals("01:00", dfUS.formatRawCellContents(1*hour, -1, "hh:mm")); assertEquals("05:00", dfUS.formatRawCellContents(5*hour, -1, "hh:mm")); assertEquals("20:00", dfUS.formatRawCellContents(20*hour, -1, "hh:mm")); @@ -212,7 +244,7 @@ public class TestDataFormatter extends TestCase { assertEquals("02:00", dfUS.formatRawCellContents(26*hour, -1, "hh:mm")); assertEquals("20:00", dfUS.formatRawCellContents(44*hour, -1, "hh:mm")); assertEquals("02:00", dfUS.formatRawCellContents(50*hour, -1, "hh:mm")); - + assertEquals("01:00", dfUS.formatRawCellContents(1*hour, -1, "[hh]:mm")); assertEquals("05:00", dfUS.formatRawCellContents(5*hour, -1, "[hh]:mm")); assertEquals("20:00", dfUS.formatRawCellContents(20*hour, -1, "[hh]:mm")); @@ -221,12 +253,73 @@ public class TestDataFormatter extends TestCase { assertEquals("26:00", dfUS.formatRawCellContents(26*hour, -1, "[hh]:mm")); assertEquals("44:00", dfUS.formatRawCellContents(44*hour, -1, "[hh]:mm")); assertEquals("50:00", dfUS.formatRawCellContents(50*hour, -1, "[hh]:mm")); - - assertEquals("30:00", dfUS.formatRawCellContents(0.5*hour, -1, "[mm]:ss")); - assertEquals("60:00", dfUS.formatRawCellContents(1*hour, -1, "[mm]:ss")); - assertEquals("120:00", dfUS.formatRawCellContents(2*hour, -1, "[mm]:ss")); + + assertEquals("01", dfUS.formatRawCellContents(1*hour, -1, "[hh]")); + assertEquals("05", dfUS.formatRawCellContents(5*hour, -1, "[hh]")); + assertEquals("20", dfUS.formatRawCellContents(20*hour, -1, "[hh]")); + assertEquals("23", dfUS.formatRawCellContents(23*hour, -1, "[hh]")); + assertEquals("24", dfUS.formatRawCellContents(24*hour, -1, "[hh]")); + assertEquals("26", dfUS.formatRawCellContents(26*hour, -1, "[hh]")); + assertEquals("44", dfUS.formatRawCellContents(44*hour, -1, "[hh]")); + assertEquals("50", dfUS.formatRawCellContents(50*hour, -1, "[hh]")); + + double minute = 1.0/24.0/60.0; + assertEquals("01:00", dfUS.formatRawCellContents(1*minute, -1, "[mm]:ss")); + assertEquals("05:00", dfUS.formatRawCellContents(5*minute, -1, "[mm]:ss")); + assertEquals("20:00", dfUS.formatRawCellContents(20*minute, -1, "[mm]:ss")); + assertEquals("23:00", dfUS.formatRawCellContents(23*minute, -1, "[mm]:ss")); + assertEquals("24:00", dfUS.formatRawCellContents(24*minute, -1, "[mm]:ss")); + assertEquals("26:00", dfUS.formatRawCellContents(26*minute, -1, "[mm]:ss")); + assertEquals("44:00", dfUS.formatRawCellContents(44*minute, -1, "[mm]:ss")); + assertEquals("50:00", dfUS.formatRawCellContents(50*minute, -1, "[mm]:ss")); + assertEquals("59:00", dfUS.formatRawCellContents(59*minute, -1, "[mm]:ss")); + assertEquals("60:00", dfUS.formatRawCellContents(60*minute, -1, "[mm]:ss")); + assertEquals("61:00", dfUS.formatRawCellContents(61*minute, -1, "[mm]:ss")); + assertEquals("119:00", dfUS.formatRawCellContents(119*minute, -1, "[mm]:ss")); + assertEquals("120:00", dfUS.formatRawCellContents(120*minute, -1, "[mm]:ss")); + assertEquals("121:00", dfUS.formatRawCellContents(121*minute, -1, "[mm]:ss")); + + assertEquals("01", dfUS.formatRawCellContents(1*minute, -1, "[mm]")); + assertEquals("05", dfUS.formatRawCellContents(5*minute, -1, "[mm]")); + assertEquals("20", dfUS.formatRawCellContents(20*minute, -1, "[mm]")); + assertEquals("23", dfUS.formatRawCellContents(23*minute, -1, "[mm]")); + assertEquals("24", dfUS.formatRawCellContents(24*minute, -1, "[mm]")); + assertEquals("26", dfUS.formatRawCellContents(26*minute, -1, "[mm]")); + assertEquals("44", dfUS.formatRawCellContents(44*minute, -1, "[mm]")); + assertEquals("50", dfUS.formatRawCellContents(50*minute, -1, "[mm]")); + assertEquals("59", dfUS.formatRawCellContents(59*minute, -1, "[mm]")); + assertEquals("60", dfUS.formatRawCellContents(60*minute, -1, "[mm]")); + assertEquals("61", dfUS.formatRawCellContents(61*minute, -1, "[mm]")); + assertEquals("119", dfUS.formatRawCellContents(119*minute, -1, "[mm]")); + assertEquals("120", dfUS.formatRawCellContents(120*minute, -1, "[mm]")); + assertEquals("121", dfUS.formatRawCellContents(121*minute, -1, "[mm]")); + + double second = 1.0/24.0/60.0/60.0; + assertEquals("86400", dfUS.formatRawCellContents(86400*second, -1, "[ss]")); + assertEquals("01", dfUS.formatRawCellContents(1*second, -1, "[ss]")); + assertEquals("05", dfUS.formatRawCellContents(5*second, -1, "[ss]")); + assertEquals("20", dfUS.formatRawCellContents(20*second, -1, "[ss]")); + assertEquals("23", dfUS.formatRawCellContents(23*second, -1, "[ss]")); + assertEquals("24", dfUS.formatRawCellContents(24*second, -1, "[ss]")); + assertEquals("26", dfUS.formatRawCellContents(26*second, -1, "[ss]")); + assertEquals("44", dfUS.formatRawCellContents(44*second, -1, "[ss]")); + assertEquals("50", dfUS.formatRawCellContents(50*second, -1, "[ss]")); + assertEquals("59", dfUS.formatRawCellContents(59*second, -1, "[ss]")); + assertEquals("60", dfUS.formatRawCellContents(60*second, -1, "[ss]")); + assertEquals("61", dfUS.formatRawCellContents(61*second, -1, "[ss]")); + assertEquals("119", dfUS.formatRawCellContents(119*second, -1, "[ss]")); + assertEquals("120", dfUS.formatRawCellContents(120*second, -1, "[ss]")); + assertEquals("121", dfUS.formatRawCellContents(121*second, -1, "[ss]")); + + assertEquals("28:48:00",dfUS.formatRawCellContents(1.2, -1, "[h]:mm:ss")); + + assertEquals("57:07.2", dfUS.formatRawCellContents(.123, -1, "mm:ss.0;@")); + assertEquals("57:41.8", dfUS.formatRawCellContents(.1234, -1, "mm:ss.0;@")); + assertEquals("57:41.76", dfUS.formatRawCellContents(.1234, -1, "mm:ss.00;@")); + assertEquals("57:41.760", dfUS.formatRawCellContents(.1234, -1, "mm:ss.000;@")); + assertEquals("24:00.0", dfUS.formatRawCellContents(123456.6, -1, "mm:ss.0")); } - + public void testDateWindowing() { DataFormatter dfUS = new DataFormatter(Locale.US); @@ -234,4 +327,31 @@ public class TestDataFormatter extends TestCase { assertEquals("1899-12-31 00:00:00", dfUS.formatRawCellContents(0.0, -1, "yyyy-mm-dd hh:mm:ss", false)); assertEquals("1904-01-01 00:00:00", dfUS.formatRawCellContents(0.0, -1, "yyyy-mm-dd hh:mm:ss", true)); } + + public void testScientificNotation() { + DataFormatter dfUS = new DataFormatter(Locale.US); + + assertEquals("1.23E+01", dfUS.formatRawCellContents(12.343, -1, "0.00E+00")); + assertEquals("-1.23E+01", dfUS.formatRawCellContents(-12.343, -1, "0.00E+00")); + assertEquals("0.00E+00", dfUS.formatRawCellContents(0.0, -1, "0.00E+00")); + } + + public void testInvalidDate() { + DataFormatter df1 = new DataFormatter(Locale.US); + assertEquals("-1.0", df1.formatRawCellContents(-1, -1, "mm/dd/yyyy")); + + DataFormatter df2 = new DataFormatter(Locale.US, true); + assertEquals("###############################################################################################################################################################################################################################################################", + df2.formatRawCellContents(-1, -1, "mm/dd/yyyy")); + } + + + public void testOther() { + DataFormatter dfUS = new DataFormatter(Locale.US, true); + + assertEquals(" 12.34 ", dfUS.formatRawCellContents(12.34, -1, "_-* #,##0.00_-;-* #,##0.00_-;_-* \"-\"??_-;_-@_-")); + assertEquals("-12.34 ", dfUS.formatRawCellContents(-12.34, -1, "_-* #,##0.00_-;-* #,##0.00_-;_-* \"-\"??_-;_-@_-")); + assertEquals(" - ", dfUS.formatRawCellContents(0.0, -1, "_-* #,##0.00_-;-* #,##0.00_-;_-* \"-\"??_-;_-@_-")); + assertEquals(" $- ", dfUS.formatRawCellContents(0.0, -1, "_-$* #,##0.00_-;-$* #,##0.00_-;_-$* \"-\"??_-;_-@_-")); + } } |