KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > retrotranslator > runtime > format > HexadecimalExponentialConversionTestCase


1 /***
2  * Retrotranslator: a Java bytecode transformer that translates Java classes
3  * compiled with JDK 5.0 into classes that can be run on JVM 1.4.
4  *
5  * Copyright (c) 2005 - 2007 Taras Puchko
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  * 1. Redistributions of source code must retain the above copyright
12  * notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  * notice, this list of conditions and the following disclaimer in the
15  * documentation and/or other materials provided with the distribution.
16  * 3. Neither the name of the copyright holders nor the names of its
17  * contributors may be used to endorse or promote products derived from
18  * this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
30  * THE POSSIBILITY OF SUCH DAMAGE.
31  */

32 package net.sf.retrotranslator.runtime.format;
33
34 import java.math.BigDecimal JavaDoc;
35 import java.util.*;
36 import net.sf.retrotranslator.tests.BaseTestCase;
37
38 /**
39  * @author Taras Puchko
40  */

41 public class HexadecimalExponentialConversionTestCase extends BaseTestCase {
42
43     public void testFormat() throws Exception JavaDoc {
44         assertFormat("0x0.0p0", "%a", 0.0);
45         assertFormat("+0x0.0p0", "%+a", 0.0);
46         assertFormat("-0x0.0p0", "%a", -0.0);
47         assertFormat("0x1.8p0", "%a", 1.5);
48         assertFormat("+0x1.8p0", "%+a", 1.5);
49         assertFormat("-0x1.8p0", "%a", -1.5);
50         assertFormat("+0x1.8p0", "%+a", 1.5f);
51         assertFormat(" 0x0.00000p0", "%15.5a", 0.0);
52
53         assertFormat(" NaN", "%10.2a", Double.NaN);
54         assertFormat("Infinity", "%a", Double.POSITIVE_INFINITY);
55         assertFormat("+Infinity", "%+a", Double.POSITIVE_INFINITY);
56         assertFormat(" -Infinity", "%10.2a", Double.NEGATIVE_INFINITY);
57         assertFormat("null", "%a", (Double JavaDoc) null);
58         assertFormat(" n", "%2.1a", (Double JavaDoc) null);
59         assertFormat("0X1.ABCDEFP1", "%A", 0x1.abcdef0p1);
60
61         assertFormat("0x1.2345p1", "%a", 0x1.2345p1);
62         assertFormat("0x1.2345p-1", "%a", 0x1.2345p-1);
63         assertFormat("0x1.2p1", "%1.0a", 0x1.23456789p1);
64         assertFormat("0x1.2p1", "%1.0a", 0x1.23456789p1);
65         assertFormat("0x1.23456p1", "%1.5a", 0x1.23456789p1);
66         assertFormat("0x1.2345679p1", "%1.7a", 0x1.23456789p1);
67         assertFormat("-0x1.2345679p1", "%1.7a", -0x1.23456789p1);
68
69         assertFormat("0x1.2345678p1", "%1.7a", 0x1.234567871p1);
70         assertFormat("0x1.2345678p1", "%1.7a", 0x1.23456788p1);
71         assertFormat("0x1.2345679p1", "%1.7a", 0x1.2345678801p1);
72         assertFormat("-0x1.2345678p1", "%1.7a", -0x1.23456788p1);
73         assertFormat("-0x1.2345678p1", "%1.7a", -0x1.23456788p1);
74         assertFormat("-0x1.2345679p1", "%1.7a", -0x1.234567881p1);
75         assertFormat("0x0.12345p-1022", "%a", 0x0.12345p-1022);
76         assertFormat("0x1.23p-1026", "%1.2a", 0x0.12345p-1022);
77         assertFormat("0x1.2p-1030", "%#1.0a", 0x0.012345p-1022);
78         assertFormat("0x0.123450000000000p-1022", "%1.15a", 0x0.12345p-1022);
79         assertFormat(" 0x0.12345p-1022", "%20a", 0x0.12345p-1022);
80
81         assertFormat("0x1.fffffffffffffp1023", "%a", Double.MAX_VALUE);
82         assertFormat("0x1.0p1024", "%1.0a", Double.MAX_VALUE);
83         assertFormat("-0x1.00000p1024", "%1.5a", -Double.MAX_VALUE);
84         assertFormatException(FormatFlagsConversionMismatchException.class, "%(a");
85         assertFormatException(FormatFlagsConversionMismatchException.class, "%,a");
86         assertFormatException(IllegalFormatConversionException.class, "%a", BigDecimal.ONE);
87         assertFormatException(IllegalFormatFlagsException.class, "%-012.3a");
88         assertFormatException(IllegalFormatFlagsException.class, "%+ 12.3a");
89     }
90
91 }
Popular Tags