1 32 package net.sf.retrotranslator.runtime.java.text; 33 34 import java.math.BigDecimal ; 35 import java.text.*; 36 import java.util.Locale ; 37 import junit.framework.TestCase; 38 39 42 public class _DecimalFormatTestCase extends TestCase { 43 44 public void testIsParseBigDecimal() throws Exception { 45 DecimalFormat format = new DecimalFormat(); 46 assertFalse(format.isParseBigDecimal()); 47 format.setParseBigDecimal(true); 48 assertTrue(format.isParseBigDecimal()); 49 format.setParseBigDecimal(false); 50 assertFalse(format.isParseBigDecimal()); 51 } 52 53 public void testSetParseBigDecimal() throws Exception { 54 DecimalFormat format = (DecimalFormat) DecimalFormat.getInstance(Locale.US); 55 assertParse(new Double ("1.2345"), format, "1.2345"); 56 assertSpecial(format); 57 format.setParseBigDecimal(true); 58 assertParse(new BigDecimal ("1.2345"), format, "1.2345"); 59 assertSpecial(format); 60 } 61 62 private void assertSpecial(DecimalFormat format) throws ParseException { 63 assertParse(Double.NaN, format, format.getDecimalFormatSymbols().getNaN()); 64 assertParse(Double.POSITIVE_INFINITY, format, format.getDecimalFormatSymbols().getInfinity()); 65 assertParse(Double.NEGATIVE_INFINITY, format, "-" + format.getDecimalFormatSymbols().getInfinity()); 66 assertParse(null, format, "unparsable"); 67 } 68 69 private void assertParse(Object expected, DecimalFormat format, String source) throws ParseException { 70 assertDecimalFormat(expected, format, source); 71 assertNumberFormat(expected, format, source); 72 assertFormat(expected, format, source); 73 } 74 75 private void assertDecimalFormat(Object expected, DecimalFormat format, String source) throws ParseException { 76 assertEquals(expected, format.parse(source, new ParsePosition(0))); 77 assertEquals(expected, format.parseObject(source, new ParsePosition(0))); 78 if (expected != null) { 79 assertEquals(expected, format.parse(source)); 80 assertEquals(expected, format.parseObject(source)); 81 } else { 82 try { 83 format.parse(source); 84 fail(); 85 } catch (ParseException e) { 86 } 88 try { 89 format.parseObject(source); 90 fail(); 91 } catch (ParseException e) { 92 } 94 } 95 } 96 97 private void assertNumberFormat(Object expected, NumberFormat format, String source) throws ParseException { 98 assertEquals(expected, format.parse(source, new ParsePosition(0))); 99 assertEquals(expected, format.parseObject(source, new ParsePosition(0))); 100 if (expected != null) { 101 assertEquals(expected, format.parse(source)); 102 assertEquals(expected, format.parseObject(source)); 103 } else { 104 try { 105 format.parse(source); 106 fail(); 107 } catch (ParseException e) { 108 } 110 try { 111 format.parseObject(source); 112 fail(); 113 } catch (ParseException e) { 114 } 116 } 117 } 118 119 private void assertFormat(Object expected, Format format, String source) throws ParseException { 120 assertEquals(expected, format.parseObject(source, new ParsePosition(0))); 121 if (expected != null) { 122 assertEquals(expected, format.parseObject(source)); 123 } else { 124 try { 125 format.parseObject(source); 126 fail(); 127 } catch (ParseException e) { 128 } 130 } 131 } 132 133 } | Popular Tags |