Home | History | Annotate | Download | only in lang
      1 /* Licensed to the Apache Software Foundation (ASF) under one or more
      2  * contributor license agreements.  See the NOTICE file distributed with
      3  * this work for additional information regarding copyright ownership.
      4  * The ASF licenses this file to You under the Apache License, Version 2.0
      5  * (the "License"); you may not use this file except in compliance with
      6  * the License.  You may obtain a copy of the License at
      7  *
      8  *     http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package org.apache.harmony.tests.java.lang;
     18 
     19 import java.util.Properties;
     20 
     21 import junit.framework.TestCase;
     22 
     23 public class IntegerTest extends TestCase {
     24     private Properties orgProps;
     25 
     26     @Override
     27     protected void setUp() {
     28         orgProps = System.getProperties();
     29     }
     30 
     31     @Override
     32     protected void tearDown() {
     33         System.setProperties(orgProps);
     34     }
     35 
     36     /**
     37      * java.lang.Integer#byteValue()
     38      */
     39     public void test_byteValue() {
     40         // Test for method byte java.lang.Integer.byteValue()
     41         assertEquals("Returned incorrect byte value", -1, new Integer(65535)
     42                 .byteValue());
     43         assertEquals("Returned incorrect byte value", 127, new Integer(127)
     44                 .byteValue());
     45     }
     46 
     47     /**
     48      * java.lang.Integer#compareTo(java.lang.Integer)
     49      */
     50     public void test_compareToLjava_lang_Integer() {
     51         // Test for method int java.lang.Integer.compareTo(java.lang.Integer)
     52         assertTrue("-2 compared to 1 gave non-negative answer", new Integer(-2)
     53                 .compareTo(new Integer(1)) < 0);
     54         assertEquals("-2 compared to -2 gave non-zero answer", 0, new Integer(-2)
     55                 .compareTo(new Integer(-2)));
     56         assertTrue("3 compared to 2 gave non-positive answer", new Integer(3)
     57                 .compareTo(new Integer(2)) > 0);
     58 
     59         try {
     60             new Integer(0).compareTo(null);
     61             fail("No NPE");
     62         } catch (NullPointerException e) {
     63         }
     64     }
     65 
     66     /**
     67      * java.lang.Integer#decode(java.lang.String)
     68      */
     69     public void test_decodeLjava_lang_String2() {
     70         // Test for method java.lang.Integer
     71         // java.lang.Integer.decode(java.lang.String)
     72         assertEquals("Failed for 132233",
     73                 132233, Integer.decode("132233").intValue());
     74         assertEquals("Failed for 07654321",
     75                 07654321, Integer.decode("07654321").intValue());
     76         assertTrue("Failed for #1234567",
     77                 Integer.decode("#1234567").intValue() == 0x1234567);
     78         assertTrue("Failed for 0xdAd",
     79                 Integer.decode("0xdAd").intValue() == 0xdad);
     80         assertEquals("Failed for -23", -23, Integer.decode("-23").intValue());
     81         assertEquals("Returned incorrect value for 0 decimal", 0, Integer
     82                 .decode("0").intValue());
     83         assertEquals("Returned incorrect value for 0 hex", 0, Integer.decode("0x0")
     84                 .intValue());
     85         assertTrue("Returned incorrect value for most negative value decimal",
     86                 Integer.decode("-2147483648").intValue() == 0x80000000);
     87         assertTrue("Returned incorrect value for most negative value hex",
     88                 Integer.decode("-0x80000000").intValue() == 0x80000000);
     89         assertTrue("Returned incorrect value for most positive value decimal",
     90                 Integer.decode("2147483647").intValue() == 0x7fffffff);
     91         assertTrue("Returned incorrect value for most positive value hex",
     92                 Integer.decode("0x7fffffff").intValue() == 0x7fffffff);
     93 
     94         boolean exception = false;
     95         try {
     96             Integer.decode("0a");
     97         } catch (NumberFormatException e) {
     98             // correct
     99             exception = true;
    100         }
    101         assertTrue("Failed to throw NumberFormatException for \"Oa\"",
    102                 exception);
    103 
    104         exception = false;
    105         try {
    106             Integer.decode("2147483648");
    107         } catch (NumberFormatException e) {
    108             // Correct
    109             exception = true;
    110         }
    111         assertTrue("Failed to throw exception for MAX_VALUE + 1", exception);
    112 
    113         exception = false;
    114         try {
    115             Integer.decode("-2147483649");
    116         } catch (NumberFormatException e) {
    117             // Correct
    118             exception = true;
    119         }
    120         assertTrue("Failed to throw exception for MIN_VALUE - 1", exception);
    121 
    122         exception = false;
    123         try {
    124             Integer.decode("0x80000000");
    125         } catch (NumberFormatException e) {
    126             // Correct
    127             exception = true;
    128         }
    129         assertTrue("Failed to throw exception for hex MAX_VALUE + 1", exception);
    130 
    131         exception = false;
    132         try {
    133             Integer.decode("-0x80000001");
    134         } catch (NumberFormatException e) {
    135             // Correct
    136             exception = true;
    137         }
    138         assertTrue("Failed to throw exception for hex MIN_VALUE - 1", exception);
    139 
    140         exception = false;
    141         try {
    142             Integer.decode("9999999999");
    143         } catch (NumberFormatException e) {
    144             // Correct
    145             exception = true;
    146         }
    147         assertTrue("Failed to throw exception for 9999999999", exception);
    148 
    149         try {
    150             Integer.decode("-");
    151             fail("Expected exception for -");
    152         } catch (NumberFormatException e) {
    153             // Expected
    154         }
    155 
    156         try {
    157             Integer.decode("0x");
    158             fail("Expected exception for 0x");
    159         } catch (NumberFormatException e) {
    160             // Expected
    161         }
    162 
    163         try {
    164             Integer.decode("#");
    165             fail("Expected exception for #");
    166         } catch (NumberFormatException e) {
    167             // Expected
    168         }
    169 
    170         try {
    171             Integer.decode("x123");
    172             fail("Expected exception for x123");
    173         } catch (NumberFormatException e) {
    174             // Expected
    175         }
    176 
    177         try {
    178             Integer.decode(null);
    179             fail("Expected exception for null");
    180         } catch (NullPointerException e) {
    181             // Expected
    182         }
    183 
    184         try {
    185             Integer.decode("");
    186             fail("Expected exception for empty string");
    187         } catch (NumberFormatException ex) {
    188             // Expected
    189         }
    190 
    191         try {
    192             Integer.decode(" ");
    193             fail("Expected exception for single space");
    194         } catch (NumberFormatException ex) {
    195             // Expected
    196         }
    197 
    198     }
    199 
    200     /**
    201      * java.lang.Integer#doubleValue()
    202      */
    203     public void test_doubleValue2() {
    204         // Test for method double java.lang.Integer.doubleValue()
    205         assertEquals("Returned incorrect double value", 2147483647.0, new Integer(2147483647)
    206                 .doubleValue(), 0.0D);
    207         assertEquals("Returned incorrect double value", -2147483647.0, new Integer(-2147483647)
    208                 .doubleValue(), 0.0D);
    209     }
    210 
    211     /**
    212      * java.lang.Integer#equals(java.lang.Object)
    213      */
    214     public void test_equalsLjava_lang_Object2() {
    215         // Test for method boolean java.lang.Integer.equals(java.lang.Object)
    216         Integer i1 = new Integer(1000);
    217         Integer i2 = new Integer(1000);
    218         Integer i3 = new Integer(-1000);
    219         assertTrue("Equality test failed", i1.equals(i2) && !(i1.equals(i3)));
    220     }
    221 
    222     /**
    223      * java.lang.Integer#floatValue()
    224      */
    225     public void test_floatValue2() {
    226         // Test for method float java.lang.Integer.floatValue()
    227         assertTrue("Returned incorrect float value", new Integer(65535)
    228                 .floatValue() == 65535.0f);
    229         assertTrue("Returned incorrect float value", new Integer(-65535)
    230                 .floatValue() == -65535.0f);
    231     }
    232 
    233     /**
    234      * java.lang.Integer#getInteger(java.lang.String)
    235      */
    236     public void test_getIntegerLjava_lang_String() {
    237         // Test for method java.lang.Integer
    238         // java.lang.Integer.getInteger(java.lang.String)
    239         Properties tProps = new Properties();
    240         tProps.put("testInt", "99");
    241         System.setProperties(tProps);
    242         assertTrue("returned incorrect Integer", Integer.getInteger("testInt")
    243                 .equals(new Integer(99)));
    244         assertNull("returned incorrect default Integer", Integer
    245                 .getInteger("ff"));
    246     }
    247 
    248     /**
    249      * java.lang.Integer#getInteger(java.lang.String, int)
    250      */
    251     public void test_getIntegerLjava_lang_StringI() {
    252         // Test for method java.lang.Integer
    253         // java.lang.Integer.getInteger(java.lang.String, int)
    254         Properties tProps = new Properties();
    255         tProps.put("testInt", "99");
    256         System.setProperties(tProps);
    257         assertTrue("returned incorrect Integer", Integer.getInteger("testInt",
    258                 4).equals(new Integer(99)));
    259         assertTrue("returned incorrect default Integer", Integer.getInteger(
    260                 "ff", 4).equals(new Integer(4)));
    261     }
    262 
    263     /**
    264      * java.lang.Integer#getInteger(java.lang.String, java.lang.Integer)
    265      */
    266     public void test_getIntegerLjava_lang_StringLjava_lang_Integer() {
    267         // Test for method java.lang.Integer
    268         // java.lang.Integer.getInteger(java.lang.String, java.lang.Integer)
    269         Properties tProps = new Properties();
    270         tProps.put("testInt", "99");
    271         System.setProperties(tProps);
    272         assertTrue("returned incorrect Integer", Integer.getInteger("testInt",
    273                 new Integer(4)).equals(new Integer(99)));
    274         assertTrue("returned incorrect default Integer", Integer.getInteger(
    275                 "ff", new Integer(4)).equals(new Integer(4)));
    276     }
    277 
    278     /**
    279      * java.lang.Integer#hashCode()
    280      */
    281     public void test_hashCode2() {
    282         // Test for method int java.lang.Integer.hashCode()
    283 
    284         Integer i1 = new Integer(1000);
    285         Integer i2 = new Integer(-1000);
    286         assertTrue("Returned incorrect hashcode", i1.hashCode() == 1000
    287                 && (i2.hashCode() == -1000));
    288     }
    289 
    290     /**
    291      * java.lang.Integer#intValue()
    292      */
    293     public void test_intValue2() {
    294         // Test for method int java.lang.Integer.intValue()
    295 
    296         Integer i = new Integer(8900);
    297         assertEquals("Returned incorrect int value", 8900, i.intValue());
    298     }
    299 
    300     /**
    301      * java.lang.Integer#longValue()
    302      */
    303     public void test_longValue2() {
    304         // Test for method long java.lang.Integer.longValue()
    305         Integer i = new Integer(8900);
    306         assertEquals("Returned incorrect long value", 8900L, i.longValue());
    307     }
    308 
    309     /**
    310      * java.lang.Integer#parseInt(java.lang.String)
    311      */
    312     public void test_parseIntLjava_lang_String2() {
    313         // Test for method int java.lang.Integer.parseInt(java.lang.String)
    314 
    315         int i = Integer.parseInt("-8900");
    316         assertEquals("Returned incorrect int", -8900, i);
    317         assertEquals("Returned incorrect value for 0", 0, Integer.parseInt("0"));
    318         assertTrue("Returned incorrect value for most negative value", Integer
    319                 .parseInt("-2147483648") == 0x80000000);
    320         assertTrue("Returned incorrect value for most positive value", Integer
    321                 .parseInt("2147483647") == 0x7fffffff);
    322 
    323         boolean exception = false;
    324         try {
    325             Integer.parseInt("999999999999");
    326         } catch (NumberFormatException e) {
    327             // Correct
    328             exception = true;
    329         }
    330         assertTrue("Failed to throw exception for value > int", exception);
    331 
    332         exception = false;
    333         try {
    334             Integer.parseInt("2147483648");
    335         } catch (NumberFormatException e) {
    336             // Correct
    337             exception = true;
    338         }
    339         assertTrue("Failed to throw exception for MAX_VALUE + 1", exception);
    340 
    341         exception = false;
    342         try {
    343             Integer.parseInt("-2147483649");
    344         } catch (NumberFormatException e) {
    345             // Correct
    346             exception = true;
    347         }
    348         assertTrue("Failed to throw exception for MIN_VALUE - 1", exception);
    349     }
    350 
    351     /**
    352      * java.lang.Integer#parseInt(java.lang.String, int)
    353      */
    354     public void test_parseIntLjava_lang_StringI2() {
    355         // Test for method int java.lang.Integer.parseInt(java.lang.String, int)
    356         assertEquals("Parsed dec val incorrectly",
    357                 -8000, Integer.parseInt("-8000", 10));
    358         assertEquals("Parsed hex val incorrectly",
    359                 255, Integer.parseInt("FF", 16));
    360         assertEquals("Parsed oct val incorrectly",
    361                 16, Integer.parseInt("20", 8));
    362         assertEquals("Returned incorrect value for 0 hex", 0, Integer.parseInt("0",
    363                 16));
    364         assertTrue("Returned incorrect value for most negative value hex",
    365                 Integer.parseInt("-80000000", 16) == 0x80000000);
    366         assertTrue("Returned incorrect value for most positive value hex",
    367                 Integer.parseInt("7fffffff", 16) == 0x7fffffff);
    368         assertEquals("Returned incorrect value for 0 decimal", 0, Integer.parseInt(
    369                 "0", 10));
    370         assertTrue("Returned incorrect value for most negative value decimal",
    371                 Integer.parseInt("-2147483648", 10) == 0x80000000);
    372         assertTrue("Returned incorrect value for most positive value decimal",
    373                 Integer.parseInt("2147483647", 10) == 0x7fffffff);
    374 
    375         boolean exception = false;
    376         try {
    377             Integer.parseInt("FFFF", 10);
    378         } catch (NumberFormatException e) {
    379             // Correct
    380             exception = true;
    381         }
    382         assertTrue(
    383                 "Failed to throw exception when passes hex string and dec parm",
    384                 exception);
    385 
    386         exception = false;
    387         try {
    388             Integer.parseInt("2147483648", 10);
    389         } catch (NumberFormatException e) {
    390             // Correct
    391             exception = true;
    392         }
    393         assertTrue("Failed to throw exception for MAX_VALUE + 1", exception);
    394 
    395         exception = false;
    396         try {
    397             Integer.parseInt("-2147483649", 10);
    398         } catch (NumberFormatException e) {
    399             // Correct
    400             exception = true;
    401         }
    402         assertTrue("Failed to throw exception for MIN_VALUE - 1", exception);
    403 
    404         exception = false;
    405         try {
    406             Integer.parseInt("80000000", 16);
    407         } catch (NumberFormatException e) {
    408             // Correct
    409             exception = true;
    410         }
    411         assertTrue("Failed to throw exception for hex MAX_VALUE + 1", exception);
    412 
    413         exception = false;
    414         try {
    415             Integer.parseInt("-80000001", 16);
    416         } catch (NumberFormatException e) {
    417             // Correct
    418             exception = true;
    419         }
    420         assertTrue("Failed to throw exception for hex MIN_VALUE + 1", exception);
    421 
    422         exception = false;
    423         try {
    424             Integer.parseInt("9999999999", 10);
    425         } catch (NumberFormatException e) {
    426             // Correct
    427             exception = true;
    428         }
    429         assertTrue("Failed to throw exception for 9999999999", exception);
    430     }
    431 
    432     /**
    433      * java.lang.Integer#shortValue()
    434      */
    435     public void test_shortValue2() {
    436         // Test for method short java.lang.Integer.shortValue()
    437         Integer i = new Integer(2147450880);
    438         assertEquals("Returned incorrect long value", -32768, i.shortValue());
    439     }
    440 
    441     /**
    442      * java.lang.Integer#toBinaryString(int)
    443      */
    444     public void test_toBinaryStringI() {
    445         // Test for method java.lang.String
    446         // java.lang.Integer.toBinaryString(int)
    447         assertEquals("Incorrect string returned", "1111111111111111111111111111111", Integer.toBinaryString(
    448                 Integer.MAX_VALUE));
    449         assertEquals("Incorrect string returned", "10000000000000000000000000000000", Integer.toBinaryString(
    450                 Integer.MIN_VALUE));
    451     }
    452 
    453     /**
    454      * java.lang.Integer#toHexString(int)
    455      */
    456     public void test_toHexStringI() {
    457         // Test for method java.lang.String java.lang.Integer.toHexString(int)
    458 
    459         String[] hexvals = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
    460                 "a", "b", "c", "d", "e", "f" };
    461 
    462         for (int i = 0; i < 16; i++) {
    463             assertTrue("Incorrect string returned " + hexvals[i], Integer
    464                     .toHexString(i).equals(hexvals[i]));
    465         }
    466 
    467         assertTrue("Returned incorrect hex string: "
    468                 + Integer.toHexString(Integer.MAX_VALUE), Integer.toHexString(
    469                 Integer.MAX_VALUE).equals("7fffffff"));
    470         assertTrue("Returned incorrect hex string: "
    471                 + Integer.toHexString(Integer.MIN_VALUE), Integer.toHexString(
    472                 Integer.MIN_VALUE).equals("80000000"));
    473     }
    474 
    475     /**
    476      * java.lang.Integer#toOctalString(int)
    477      */
    478     public void test_toOctalStringI() {
    479         // Test for method java.lang.String java.lang.Integer.toOctalString(int)
    480         // Spec states that the int arg is treated as unsigned
    481         assertEquals("Returned incorrect octal string", "17777777777", Integer.toOctalString(
    482                 Integer.MAX_VALUE));
    483         assertEquals("Returned incorrect octal string", "20000000000", Integer.toOctalString(
    484                 Integer.MIN_VALUE));
    485     }
    486 
    487     /**
    488      * java.lang.Integer#toString()
    489      */
    490     public void test_toString2() {
    491         // Test for method java.lang.String java.lang.Integer.toString()
    492 
    493         Integer i = new Integer(-80001);
    494 
    495         assertEquals("Returned incorrect String", "-80001", i.toString());
    496     }
    497 
    498     /**
    499      * java.lang.Integer#toString(int)
    500      */
    501     public void test_toStringI2() {
    502         // Test for method java.lang.String java.lang.Integer.toString(int)
    503 
    504         assertEquals("Returned incorrect String", "-80765", Integer.toString(-80765)
    505         );
    506         assertEquals("Returned incorrect octal string", "2147483647", Integer.toString(
    507                 Integer.MAX_VALUE));
    508         assertEquals("Returned incorrect octal string", "-2147483647", Integer.toString(
    509                 -Integer.MAX_VALUE));
    510         assertEquals("Returned incorrect octal string", "-2147483648", Integer.toString(
    511                 Integer.MIN_VALUE));
    512 
    513         // Test for HARMONY-6068
    514         assertEquals("Returned incorrect octal String", "-1000", Integer.toString(-1000));
    515         assertEquals("Returned incorrect octal String", "1000", Integer.toString(1000));
    516         assertEquals("Returned incorrect octal String", "0", Integer.toString(0));
    517         assertEquals("Returned incorrect octal String", "708", Integer.toString(708));
    518         assertEquals("Returned incorrect octal String", "-100", Integer.toString(-100));
    519         assertEquals("Returned incorrect octal String", "-1000000008", Integer.toString(-1000000008));
    520         assertEquals("Returned incorrect octal String", "2000000008", Integer.toString(2000000008));
    521     }
    522 
    523     /**
    524      * java.lang.Integer#toString(int, int)
    525      */
    526     public void test_toStringII() {
    527         // Test for method java.lang.String java.lang.Integer.toString(int, int)
    528         assertEquals("Returned incorrect octal string", "17777777777", Integer.toString(
    529                 2147483647, 8));
    530         assertTrue("Returned incorrect hex string--wanted 7fffffff but got: "
    531                 + Integer.toString(2147483647, 16), Integer.toString(
    532                 2147483647, 16).equals("7fffffff"));
    533         assertEquals("Incorrect string returned", "1111111111111111111111111111111", Integer.toString(2147483647, 2)
    534         );
    535         assertEquals("Incorrect string returned", "2147483647", Integer
    536                 .toString(2147483647, 10));
    537 
    538         assertEquals("Returned incorrect octal string", "-17777777777", Integer.toString(
    539                 -2147483647, 8));
    540         assertTrue("Returned incorrect hex string--wanted -7fffffff but got: "
    541                 + Integer.toString(-2147483647, 16), Integer.toString(
    542                 -2147483647, 16).equals("-7fffffff"));
    543         assertEquals("Incorrect string returned",
    544                 "-1111111111111111111111111111111", Integer
    545                 .toString(-2147483647, 2));
    546         assertEquals("Incorrect string returned", "-2147483647", Integer.toString(-2147483647,
    547                 10));
    548 
    549         assertEquals("Returned incorrect octal string", "-20000000000", Integer.toString(
    550                 -2147483648, 8));
    551         assertTrue("Returned incorrect hex string--wanted -80000000 but got: "
    552                 + Integer.toString(-2147483648, 16), Integer.toString(
    553                 -2147483648, 16).equals("-80000000"));
    554         assertEquals("Incorrect string returned",
    555                 "-10000000000000000000000000000000", Integer
    556                 .toString(-2147483648, 2));
    557         assertEquals("Incorrect string returned", "-2147483648", Integer.toString(-2147483648,
    558                 10));
    559     }
    560 
    561     /**
    562      * java.lang.Integer#valueOf(java.lang.String)
    563      */
    564     public void test_valueOfLjava_lang_String2() {
    565         // Test for method java.lang.Integer
    566         // java.lang.Integer.valueOf(java.lang.String)
    567         assertEquals("Returned incorrect int", 8888888, Integer.valueOf("8888888")
    568                 .intValue());
    569         assertTrue("Returned incorrect int", Integer.valueOf("2147483647")
    570                 .intValue() == Integer.MAX_VALUE);
    571         assertTrue("Returned incorrect int", Integer.valueOf("-2147483648")
    572                 .intValue() == Integer.MIN_VALUE);
    573 
    574         boolean exception = false;
    575         try {
    576             Integer.valueOf("2147483648");
    577         } catch (NumberFormatException e) {
    578             // Correct
    579             exception = true;
    580         }
    581         assertTrue("Failed to throw exception with MAX_VALUE + 1", exception);
    582 
    583         exception = false;
    584         try {
    585             Integer.valueOf("-2147483649");
    586         } catch (NumberFormatException e) {
    587             // Correct
    588             exception = true;
    589         }
    590         assertTrue("Failed to throw exception with MIN_VALUE - 1", exception);
    591     }
    592 
    593     /**
    594      * java.lang.Integer#valueOf(java.lang.String, int)
    595      */
    596     public void test_valueOfLjava_lang_StringI2() {
    597         // Test for method java.lang.Integer
    598         // java.lang.Integer.valueOf(java.lang.String, int)
    599         assertEquals("Returned incorrect int for hex string", 255, Integer.valueOf(
    600                 "FF", 16).intValue());
    601         assertEquals("Returned incorrect int for oct string", 16, Integer.valueOf(
    602                 "20", 8).intValue());
    603         assertEquals("Returned incorrect int for bin string", 4, Integer.valueOf(
    604                 "100", 2).intValue());
    605 
    606         assertEquals("Returned incorrect int for - hex string", -255, Integer.valueOf(
    607                 "-FF", 16).intValue());
    608         assertEquals("Returned incorrect int for - oct string", -16, Integer.valueOf(
    609                 "-20", 8).intValue());
    610         assertEquals("Returned incorrect int for - bin string", -4, Integer.valueOf(
    611                 "-100", 2).intValue());
    612         assertTrue("Returned incorrect int", Integer.valueOf("2147483647", 10)
    613                 .intValue() == Integer.MAX_VALUE);
    614         assertTrue("Returned incorrect int", Integer.valueOf("-2147483648", 10)
    615                 .intValue() == Integer.MIN_VALUE);
    616         assertTrue("Returned incorrect int", Integer.valueOf("7fffffff", 16)
    617                 .intValue() == Integer.MAX_VALUE);
    618         assertTrue("Returned incorrect int", Integer.valueOf("-80000000", 16)
    619                 .intValue() == Integer.MIN_VALUE);
    620 
    621         boolean exception = false;
    622         try {
    623             Integer.valueOf("FF", 2);
    624         } catch (NumberFormatException e) {
    625             // Correct
    626             exception = true;
    627         }
    628         assertTrue(
    629                 "Failed to throw exception with hex string and base 2 radix",
    630                 exception);
    631 
    632         exception = false;
    633         try {
    634             Integer.valueOf("2147483648", 10);
    635         } catch (NumberFormatException e) {
    636             // Correct
    637             exception = true;
    638         }
    639         assertTrue("Failed to throw exception with MAX_VALUE + 1", exception);
    640 
    641         exception = false;
    642         try {
    643             Integer.valueOf("-2147483649", 10);
    644         } catch (NumberFormatException e) {
    645             // Correct
    646             exception = true;
    647         }
    648         assertTrue("Failed to throw exception with MIN_VALUE - 1", exception);
    649 
    650         exception = false;
    651         try {
    652             Integer.valueOf("80000000", 16);
    653         } catch (NumberFormatException e) {
    654             // Correct
    655             exception = true;
    656         }
    657         assertTrue("Failed to throw exception with hex MAX_VALUE + 1",
    658                 exception);
    659 
    660         exception = false;
    661         try {
    662             Integer.valueOf("-80000001", 16);
    663         } catch (NumberFormatException e) {
    664             // Correct
    665             exception = true;
    666         }
    667         assertTrue("Failed to throw exception with hex MIN_VALUE - 1",
    668                 exception);
    669     }
    670 
    671     /**
    672      * java.lang.Integer#valueOf(byte)
    673      */
    674     public void test_valueOfI() {
    675         assertEquals(new Integer(Integer.MIN_VALUE), Integer.valueOf(Integer.MIN_VALUE));
    676         assertEquals(new Integer(Integer.MAX_VALUE), Integer.valueOf(Integer.MAX_VALUE));
    677         assertEquals(new Integer(0), Integer.valueOf(0));
    678 
    679         short s = -128;
    680         while (s < 128) {
    681             assertEquals(new Integer(s), Integer.valueOf(s));
    682             assertSame(Integer.valueOf(s), Integer.valueOf(s));
    683             s++;
    684         }
    685     }
    686 
    687     /**
    688      * java.lang.Integer#hashCode()
    689      */
    690     public void test_hashCode() {
    691         assertEquals(1, new Integer(1).hashCode());
    692         assertEquals(2, new Integer(2).hashCode());
    693         assertEquals(0, new Integer(0).hashCode());
    694         assertEquals(-1, new Integer(-1).hashCode());
    695     }
    696 
    697     /**
    698      * java.lang.Integer#Integer(String)
    699      */
    700     public void test_ConstructorLjava_lang_String() {
    701         assertEquals(new Integer(0), new Integer("0"));
    702         assertEquals(new Integer(1), new Integer("1"));
    703         assertEquals(new Integer(-1), new Integer("-1"));
    704 
    705         try {
    706             new Integer("0x1");
    707             fail("Expected NumberFormatException with hex string.");
    708         } catch (NumberFormatException e) {
    709         }
    710 
    711         try {
    712             new Integer("9.2");
    713             fail("Expected NumberFormatException with floating point string.");
    714         } catch (NumberFormatException e) {
    715         }
    716 
    717         try {
    718             new Integer("");
    719             fail("Expected NumberFormatException with empty string.");
    720         } catch (NumberFormatException e) {
    721         }
    722 
    723         try {
    724             new Integer(null);
    725             fail("Expected NumberFormatException with null string.");
    726         } catch (NumberFormatException e) {
    727         }
    728     }
    729 
    730     /**
    731      * java.lang.Integer#Integer
    732      */
    733     public void test_ConstructorI() {
    734         assertEquals(1, new Integer(1).intValue());
    735         assertEquals(2, new Integer(2).intValue());
    736         assertEquals(0, new Integer(0).intValue());
    737         assertEquals(-1, new Integer(-1).intValue());
    738 
    739         Integer i = new Integer(-89000);
    740         assertEquals("Incorrect Integer created", -89000, i.intValue());
    741     }
    742 
    743     /**
    744      * java.lang.Integer#byteValue()
    745      */
    746     public void test_booleanValue() {
    747         assertEquals(1, new Integer(1).byteValue());
    748         assertEquals(2, new Integer(2).byteValue());
    749         assertEquals(0, new Integer(0).byteValue());
    750         assertEquals(-1, new Integer(-1).byteValue());
    751     }
    752 
    753     /**
    754      * java.lang.Integer#equals(Object)
    755      */
    756     public void test_equalsLjava_lang_Object() {
    757         assertEquals(new Integer(0), Integer.valueOf(0));
    758         assertEquals(new Integer(1), Integer.valueOf(1));
    759         assertEquals(new Integer(-1), Integer.valueOf(-1));
    760 
    761         Integer fixture = new Integer(25);
    762         assertEquals(fixture, fixture);
    763         assertFalse(fixture.equals(null));
    764         assertFalse(fixture.equals("Not a Integer"));
    765     }
    766 
    767     /**
    768      * java.lang.Integer#toString()
    769      */
    770     public void test_toString() {
    771         assertEquals("-1", new Integer(-1).toString());
    772         assertEquals("0", new Integer(0).toString());
    773         assertEquals("1", new Integer(1).toString());
    774         assertEquals("-1", new Integer(0xFFFFFFFF).toString());
    775     }
    776 
    777     /**
    778      * java.lang.Integer#toString
    779      */
    780     public void test_toStringI() {
    781         assertEquals("-1", Integer.toString(-1));
    782         assertEquals("0", Integer.toString(0));
    783         assertEquals("1", Integer.toString(1));
    784         assertEquals("-1", Integer.toString(0xFFFFFFFF));
    785     }
    786 
    787     /**
    788      * java.lang.Integer#valueOf(String)
    789      */
    790     public void test_valueOfLjava_lang_String() {
    791         assertEquals(new Integer(0), Integer.valueOf("0"));
    792         assertEquals(new Integer(1), Integer.valueOf("1"));
    793         assertEquals(new Integer(-1), Integer.valueOf("-1"));
    794 
    795         try {
    796             Integer.valueOf("0x1");
    797             fail("Expected NumberFormatException with hex string.");
    798         } catch (NumberFormatException e) {
    799         }
    800 
    801         try {
    802             Integer.valueOf("9.2");
    803             fail("Expected NumberFormatException with floating point string.");
    804         } catch (NumberFormatException e) {
    805         }
    806 
    807         try {
    808             Integer.valueOf("");
    809             fail("Expected NumberFormatException with empty string.");
    810         } catch (NumberFormatException e) {
    811         }
    812 
    813         try {
    814             Integer.valueOf(null);
    815             fail("Expected NumberFormatException with null string.");
    816         } catch (NumberFormatException e) {
    817         }
    818     }
    819 
    820     /**
    821      * java.lang.Integer#valueOf(String, int)
    822      */
    823     public void test_valueOfLjava_lang_StringI() {
    824         assertEquals(new Integer(0), Integer.valueOf("0", 10));
    825         assertEquals(new Integer(1), Integer.valueOf("1", 10));
    826         assertEquals(new Integer(-1), Integer.valueOf("-1", 10));
    827 
    828         //must be consistent with Character.digit()
    829         assertEquals(Character.digit('1', 2), Integer.valueOf("1", 2).byteValue());
    830         assertEquals(Character.digit('F', 16), Integer.valueOf("F", 16).byteValue());
    831 
    832         try {
    833             Integer.valueOf("0x1", 10);
    834             fail("Expected NumberFormatException with hex string.");
    835         } catch (NumberFormatException e) {
    836         }
    837 
    838         try {
    839             Integer.valueOf("9.2", 10);
    840             fail("Expected NumberFormatException with floating point string.");
    841         } catch (NumberFormatException e) {
    842         }
    843 
    844         try {
    845             Integer.valueOf("", 10);
    846             fail("Expected NumberFormatException with empty string.");
    847         } catch (NumberFormatException e) {
    848         }
    849 
    850         try {
    851             Integer.valueOf(null, 10);
    852             fail("Expected NumberFormatException with null string.");
    853         } catch (NumberFormatException e) {
    854         }
    855     }
    856 
    857     /**
    858      * java.lang.Integer#parseInt(String)
    859      */
    860     public void test_parseIntLjava_lang_String() {
    861         assertEquals(0, Integer.parseInt("0"));
    862         assertEquals(1, Integer.parseInt("1"));
    863         assertEquals(-1, Integer.parseInt("-1"));
    864 
    865         try {
    866             Integer.parseInt("0x1");
    867             fail("Expected NumberFormatException with hex string.");
    868         } catch (NumberFormatException e) {
    869         }
    870 
    871         try {
    872             Integer.parseInt("9.2");
    873             fail("Expected NumberFormatException with floating point string.");
    874         } catch (NumberFormatException e) {
    875         }
    876 
    877         try {
    878             Integer.parseInt("");
    879             fail("Expected NumberFormatException with empty string.");
    880         } catch (NumberFormatException e) {
    881         }
    882 
    883         try {
    884             Integer.parseInt(null);
    885             fail("Expected NumberFormatException with null string.");
    886         } catch (NumberFormatException e) {
    887         }
    888     }
    889 
    890     /**
    891      * java.lang.Integer#parseInt(String, int)
    892      */
    893     public void test_parseIntLjava_lang_StringI() {
    894         assertEquals(0, Integer.parseInt("0", 10));
    895         assertEquals(1, Integer.parseInt("1", 10));
    896         assertEquals(-1, Integer.parseInt("-1", 10));
    897 
    898         //must be consistent with Character.digit()
    899         assertEquals(Character.digit('1', 2), Integer.parseInt("1", 2));
    900         assertEquals(Character.digit('F', 16), Integer.parseInt("F", 16));
    901 
    902         try {
    903             Integer.parseInt("0x1", 10);
    904             fail("Expected NumberFormatException with hex string.");
    905         } catch (NumberFormatException e) {
    906         }
    907 
    908         try {
    909             Integer.parseInt("9.2", 10);
    910             fail("Expected NumberFormatException with floating point string.");
    911         } catch (NumberFormatException e) {
    912         }
    913 
    914         try {
    915             Integer.parseInt("", 10);
    916             fail("Expected NumberFormatException with empty string.");
    917         } catch (NumberFormatException e) {
    918         }
    919 
    920         try {
    921             Integer.parseInt(null, 10);
    922             fail("Expected NumberFormatException with null string.");
    923         } catch (NumberFormatException e) {
    924         }
    925     }
    926 
    927     /**
    928      * java.lang.Integer#decode(String)
    929      */
    930     public void test_decodeLjava_lang_String() {
    931         assertEquals(new Integer(0), Integer.decode("0"));
    932         assertEquals(new Integer(1), Integer.decode("1"));
    933         assertEquals(new Integer(-1), Integer.decode("-1"));
    934         assertEquals(new Integer(0xF), Integer.decode("0xF"));
    935         assertEquals(new Integer(0xF), Integer.decode("#F"));
    936         assertEquals(new Integer(0xF), Integer.decode("0XF"));
    937         assertEquals(new Integer(07), Integer.decode("07"));
    938 
    939         try {
    940             Integer.decode("9.2");
    941             fail("Expected NumberFormatException with floating point string.");
    942         } catch (NumberFormatException e) {
    943         }
    944 
    945         try {
    946             Integer.decode("");
    947             fail("Expected NumberFormatException with empty string.");
    948         } catch (NumberFormatException e) {
    949         }
    950 
    951         try {
    952             Integer.decode(null);
    953             //undocumented NPE, but seems consistent across JREs
    954             fail("Expected NullPointerException with null string.");
    955         } catch (NullPointerException e) {
    956         }
    957     }
    958 
    959     /**
    960      * java.lang.Integer#doubleValue()
    961      */
    962     public void test_doubleValue() {
    963         assertEquals(-1D, new Integer(-1).doubleValue(), 0D);
    964         assertEquals(0D, new Integer(0).doubleValue(), 0D);
    965         assertEquals(1D, new Integer(1).doubleValue(), 0D);
    966     }
    967 
    968     /**
    969      * java.lang.Integer#floatValue()
    970      */
    971     public void test_floatValue() {
    972         assertEquals(-1F, new Integer(-1).floatValue(), 0F);
    973         assertEquals(0F, new Integer(0).floatValue(), 0F);
    974         assertEquals(1F, new Integer(1).floatValue(), 0F);
    975     }
    976 
    977     /**
    978      * java.lang.Integer#intValue()
    979      */
    980     public void test_intValue() {
    981         assertEquals(-1, new Integer(-1).intValue());
    982         assertEquals(0, new Integer(0).intValue());
    983         assertEquals(1, new Integer(1).intValue());
    984     }
    985 
    986     /**
    987      * java.lang.Integer#longValue()
    988      */
    989     public void test_longValue() {
    990         assertEquals(-1L, new Integer(-1).longValue());
    991         assertEquals(0L, new Integer(0).longValue());
    992         assertEquals(1L, new Integer(1).longValue());
    993     }
    994 
    995     /**
    996      * java.lang.Integer#shortValue()
    997      */
    998     public void test_shortValue() {
    999         assertEquals(-1, new Integer(-1).shortValue());
   1000         assertEquals(0, new Integer(0).shortValue());
   1001         assertEquals(1, new Integer(1).shortValue());
   1002     }
   1003 
   1004     /**
   1005      * java.lang.Integer#highestOneBit(int)
   1006      */
   1007     public void test_highestOneBitI() {
   1008         assertEquals(0x08, Integer.highestOneBit(0x0A));
   1009         assertEquals(0x08, Integer.highestOneBit(0x0B));
   1010         assertEquals(0x08, Integer.highestOneBit(0x0C));
   1011         assertEquals(0x08, Integer.highestOneBit(0x0F));
   1012         assertEquals(0x80, Integer.highestOneBit(0xFF));
   1013 
   1014         assertEquals(0x080000, Integer.highestOneBit(0x0F1234));
   1015         assertEquals(0x800000, Integer.highestOneBit(0xFF9977));
   1016 
   1017         assertEquals(0x80000000, Integer.highestOneBit(0xFFFFFFFF));
   1018 
   1019         assertEquals(0, Integer.highestOneBit(0));
   1020         assertEquals(1, Integer.highestOneBit(1));
   1021         assertEquals(0x80000000, Integer.highestOneBit(-1));
   1022     }
   1023 
   1024     /**
   1025      * java.lang.Integer#lowestOneBit(int)
   1026      */
   1027     public void test_lowestOneBitI() {
   1028         assertEquals(0x10, Integer.lowestOneBit(0xF0));
   1029 
   1030         assertEquals(0x10, Integer.lowestOneBit(0x90));
   1031         assertEquals(0x10, Integer.lowestOneBit(0xD0));
   1032 
   1033         assertEquals(0x10, Integer.lowestOneBit(0x123490));
   1034         assertEquals(0x10, Integer.lowestOneBit(0x1234D0));
   1035 
   1036         assertEquals(0x100000, Integer.lowestOneBit(0x900000));
   1037         assertEquals(0x100000, Integer.lowestOneBit(0xD00000));
   1038 
   1039         assertEquals(0x40, Integer.lowestOneBit(0x40));
   1040         assertEquals(0x40, Integer.lowestOneBit(0xC0));
   1041 
   1042         assertEquals(0x4000, Integer.lowestOneBit(0x4000));
   1043         assertEquals(0x4000, Integer.lowestOneBit(0xC000));
   1044 
   1045         assertEquals(0x4000, Integer.lowestOneBit(0x99994000));
   1046         assertEquals(0x4000, Integer.lowestOneBit(0x9999C000));
   1047 
   1048         assertEquals(0, Integer.lowestOneBit(0));
   1049         assertEquals(1, Integer.lowestOneBit(1));
   1050         assertEquals(1, Integer.lowestOneBit(-1));
   1051     }
   1052 
   1053     /**
   1054      * java.lang.Integer#numberOfLeadingZeros(int)
   1055      */
   1056     public void test_numberOfLeadingZerosI() {
   1057         assertEquals(32, Integer.numberOfLeadingZeros(0x0));
   1058         assertEquals(31, Integer.numberOfLeadingZeros(0x1));
   1059         assertEquals(30, Integer.numberOfLeadingZeros(0x2));
   1060         assertEquals(30, Integer.numberOfLeadingZeros(0x3));
   1061         assertEquals(29, Integer.numberOfLeadingZeros(0x4));
   1062         assertEquals(29, Integer.numberOfLeadingZeros(0x5));
   1063         assertEquals(29, Integer.numberOfLeadingZeros(0x6));
   1064         assertEquals(29, Integer.numberOfLeadingZeros(0x7));
   1065         assertEquals(28, Integer.numberOfLeadingZeros(0x8));
   1066         assertEquals(28, Integer.numberOfLeadingZeros(0x9));
   1067         assertEquals(28, Integer.numberOfLeadingZeros(0xA));
   1068         assertEquals(28, Integer.numberOfLeadingZeros(0xB));
   1069         assertEquals(28, Integer.numberOfLeadingZeros(0xC));
   1070         assertEquals(28, Integer.numberOfLeadingZeros(0xD));
   1071         assertEquals(28, Integer.numberOfLeadingZeros(0xE));
   1072         assertEquals(28, Integer.numberOfLeadingZeros(0xF));
   1073         assertEquals(27, Integer.numberOfLeadingZeros(0x10));
   1074         assertEquals(24, Integer.numberOfLeadingZeros(0x80));
   1075         assertEquals(24, Integer.numberOfLeadingZeros(0xF0));
   1076         assertEquals(23, Integer.numberOfLeadingZeros(0x100));
   1077         assertEquals(20, Integer.numberOfLeadingZeros(0x800));
   1078         assertEquals(20, Integer.numberOfLeadingZeros(0xF00));
   1079         assertEquals(19, Integer.numberOfLeadingZeros(0x1000));
   1080         assertEquals(16, Integer.numberOfLeadingZeros(0x8000));
   1081         assertEquals(16, Integer.numberOfLeadingZeros(0xF000));
   1082         assertEquals(15, Integer.numberOfLeadingZeros(0x10000));
   1083         assertEquals(12, Integer.numberOfLeadingZeros(0x80000));
   1084         assertEquals(12, Integer.numberOfLeadingZeros(0xF0000));
   1085         assertEquals(11, Integer.numberOfLeadingZeros(0x100000));
   1086         assertEquals(8, Integer.numberOfLeadingZeros(0x800000));
   1087         assertEquals(8, Integer.numberOfLeadingZeros(0xF00000));
   1088         assertEquals(7, Integer.numberOfLeadingZeros(0x1000000));
   1089         assertEquals(4, Integer.numberOfLeadingZeros(0x8000000));
   1090         assertEquals(4, Integer.numberOfLeadingZeros(0xF000000));
   1091         assertEquals(3, Integer.numberOfLeadingZeros(0x10000000));
   1092         assertEquals(0, Integer.numberOfLeadingZeros(0x80000000));
   1093         assertEquals(0, Integer.numberOfLeadingZeros(0xF0000000));
   1094 
   1095         assertEquals(1, Integer.numberOfLeadingZeros(Integer.MAX_VALUE));
   1096         assertEquals(0, Integer.numberOfLeadingZeros(Integer.MIN_VALUE));
   1097     }
   1098 
   1099     /**
   1100      * java.lang.Integer#numberOfTrailingZeros(int)
   1101      */
   1102     public void test_numberOfTrailingZerosI() {
   1103         assertEquals(32, Integer.numberOfTrailingZeros(0x0));
   1104         assertEquals(31, Integer.numberOfTrailingZeros(Integer.MIN_VALUE));
   1105         assertEquals(0, Integer.numberOfTrailingZeros(Integer.MAX_VALUE));
   1106 
   1107         assertEquals(0, Integer.numberOfTrailingZeros(0x1));
   1108         assertEquals(3, Integer.numberOfTrailingZeros(0x8));
   1109         assertEquals(0, Integer.numberOfTrailingZeros(0xF));
   1110 
   1111         assertEquals(4, Integer.numberOfTrailingZeros(0x10));
   1112         assertEquals(7, Integer.numberOfTrailingZeros(0x80));
   1113         assertEquals(4, Integer.numberOfTrailingZeros(0xF0));
   1114 
   1115         assertEquals(8, Integer.numberOfTrailingZeros(0x100));
   1116         assertEquals(11, Integer.numberOfTrailingZeros(0x800));
   1117         assertEquals(8, Integer.numberOfTrailingZeros(0xF00));
   1118 
   1119         assertEquals(12, Integer.numberOfTrailingZeros(0x1000));
   1120         assertEquals(15, Integer.numberOfTrailingZeros(0x8000));
   1121         assertEquals(12, Integer.numberOfTrailingZeros(0xF000));
   1122 
   1123         assertEquals(16, Integer.numberOfTrailingZeros(0x10000));
   1124         assertEquals(19, Integer.numberOfTrailingZeros(0x80000));
   1125         assertEquals(16, Integer.numberOfTrailingZeros(0xF0000));
   1126 
   1127         assertEquals(20, Integer.numberOfTrailingZeros(0x100000));
   1128         assertEquals(23, Integer.numberOfTrailingZeros(0x800000));
   1129         assertEquals(20, Integer.numberOfTrailingZeros(0xF00000));
   1130 
   1131         assertEquals(24, Integer.numberOfTrailingZeros(0x1000000));
   1132         assertEquals(27, Integer.numberOfTrailingZeros(0x8000000));
   1133         assertEquals(24, Integer.numberOfTrailingZeros(0xF000000));
   1134 
   1135         assertEquals(28, Integer.numberOfTrailingZeros(0x10000000));
   1136         assertEquals(31, Integer.numberOfTrailingZeros(0x80000000));
   1137         assertEquals(28, Integer.numberOfTrailingZeros(0xF0000000));
   1138     }
   1139 
   1140     /**
   1141      * java.lang.Integer#bitCount(int)
   1142      */
   1143     public void test_bitCountI() {
   1144         assertEquals(0, Integer.bitCount(0x0));
   1145         assertEquals(1, Integer.bitCount(0x1));
   1146         assertEquals(1, Integer.bitCount(0x2));
   1147         assertEquals(2, Integer.bitCount(0x3));
   1148         assertEquals(1, Integer.bitCount(0x4));
   1149         assertEquals(2, Integer.bitCount(0x5));
   1150         assertEquals(2, Integer.bitCount(0x6));
   1151         assertEquals(3, Integer.bitCount(0x7));
   1152         assertEquals(1, Integer.bitCount(0x8));
   1153         assertEquals(2, Integer.bitCount(0x9));
   1154         assertEquals(2, Integer.bitCount(0xA));
   1155         assertEquals(3, Integer.bitCount(0xB));
   1156         assertEquals(2, Integer.bitCount(0xC));
   1157         assertEquals(3, Integer.bitCount(0xD));
   1158         assertEquals(3, Integer.bitCount(0xE));
   1159         assertEquals(4, Integer.bitCount(0xF));
   1160 
   1161         assertEquals(8, Integer.bitCount(0xFF));
   1162         assertEquals(12, Integer.bitCount(0xFFF));
   1163         assertEquals(16, Integer.bitCount(0xFFFF));
   1164         assertEquals(20, Integer.bitCount(0xFFFFF));
   1165         assertEquals(24, Integer.bitCount(0xFFFFFF));
   1166         assertEquals(28, Integer.bitCount(0xFFFFFFF));
   1167         assertEquals(32, Integer.bitCount(0xFFFFFFFF));
   1168     }
   1169 
   1170     /**
   1171      * java.lang.Integer#rotateLeft(int, int)
   1172      */
   1173     public void test_rotateLeftII() {
   1174         assertEquals(0xF, Integer.rotateLeft(0xF, 0));
   1175         assertEquals(0xF0, Integer.rotateLeft(0xF, 4));
   1176         assertEquals(0xF00, Integer.rotateLeft(0xF, 8));
   1177         assertEquals(0xF000, Integer.rotateLeft(0xF, 12));
   1178         assertEquals(0xF0000, Integer.rotateLeft(0xF, 16));
   1179         assertEquals(0xF00000, Integer.rotateLeft(0xF, 20));
   1180         assertEquals(0xF000000, Integer.rotateLeft(0xF, 24));
   1181         assertEquals(0xF0000000, Integer.rotateLeft(0xF, 28));
   1182         assertEquals(0xF0000000, Integer.rotateLeft(0xF0000000, 32));
   1183     }
   1184 
   1185     /**
   1186      * java.lang.Integer#rotateRight(int, int)
   1187      */
   1188     public void test_rotateRightII() {
   1189         assertEquals(0xF, Integer.rotateRight(0xF0, 4));
   1190         assertEquals(0xF, Integer.rotateRight(0xF00, 8));
   1191         assertEquals(0xF, Integer.rotateRight(0xF000, 12));
   1192         assertEquals(0xF, Integer.rotateRight(0xF0000, 16));
   1193         assertEquals(0xF, Integer.rotateRight(0xF00000, 20));
   1194         assertEquals(0xF, Integer.rotateRight(0xF000000, 24));
   1195         assertEquals(0xF, Integer.rotateRight(0xF0000000, 28));
   1196         assertEquals(0xF0000000, Integer.rotateRight(0xF0000000, 32));
   1197         assertEquals(0xF0000000, Integer.rotateRight(0xF0000000, 0));
   1198 
   1199     }
   1200 
   1201     /**
   1202      * java.lang.Integer#reverseBytes(int)
   1203      */
   1204     public void test_reverseBytesI() {
   1205         assertEquals(0xAABBCCDD, Integer.reverseBytes(0xDDCCBBAA));
   1206         assertEquals(0x11223344, Integer.reverseBytes(0x44332211));
   1207         assertEquals(0x00112233, Integer.reverseBytes(0x33221100));
   1208         assertEquals(0x20000002, Integer.reverseBytes(0x02000020));
   1209     }
   1210 
   1211     /**
   1212      * java.lang.Integer#reverse(int)
   1213      */
   1214     public void test_reverseI() {
   1215         assertEquals(-1, Integer.reverse(-1));
   1216         assertEquals(0x80000000, Integer.reverse(1));
   1217     }
   1218 
   1219     /**
   1220      * java.lang.Integer#signum(int)
   1221      */
   1222     public void test_signumI() {
   1223         for (int i = -128; i < 0; i++) {
   1224             assertEquals(-1, Integer.signum(i));
   1225         }
   1226         assertEquals(0, Integer.signum(0));
   1227         for (int i = 1; i <= 127; i++) {
   1228             assertEquals(1, Integer.signum(i));
   1229         }
   1230     }
   1231 }
   1232