1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* Licensed to the Apache Software Foundation (ASF) under one or more 2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements. See the NOTICE file distributed with 3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership. 4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0 5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with 6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License. You may obtain a copy of the License at 7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * http://www.apache.org/licenses/LICENSE-2.0 9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * 10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software 11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS, 12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and 14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License. 15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.luni.tests.java.lang; 18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Locale; 20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport junit.framework.TestCase; 22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class DoubleTest extends TestCase { 24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final long rawBitsFor3_4en324ToN1[] = { 0x1L, 0x7L, 0x45L, 0x2b0L, 0x1ae2L, 25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x10cd1L, 0xa8028L, 0x69018dL, 0x41a0f7eL, 0x29049aedL, 0x19a2e0d44L, 26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1005cc84acL, 0xa039fd2ebdL, 0x64243e3d361L, 0x3e96a6e641c6L, 0x271e284fe91b8L, 27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1872d931f1b131L, 0x4e8f8f7e6e1d7dL, 0x8319b9af04d26eL, 0xb7e0281ac6070aL, 28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xedd832217788ccL, 0x122a71f54eab580L, 0x15750e72a2562e0L, 0x18d2520f4aebb98L, 29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1c2373498ed353fL, 0x1f6c501bf28828eL, 0x22c76422ef2a332L, 0x261c9e95d57a5ffL, 30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x2963c63b4ad8f7fL, 0x2cbcb7ca1d8f35fL, 0x3015f2de527981bL, 0x335b6f95e717e22L, 31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x36b24b7b60dddabL, 0x3a0f6f2d1c8aa8bL, 0x3d534af863ad52dL, 0x40a81db67c98a79L, 32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x440912920ddf68bL, 0x474b5736915742eL, 0x4a9e2d0435ad13aL, 0x4e02dc22a18c2c4L, 33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x5143932b49ef375L, 0x549477f61c6b052L, 0x57f995f3a385c67L, 0x5b3bfdb846339c0L, 34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x5e8afd2657c0830L, 0x61edbc6fedb0a3dL, 0x653495c5f48e666L, 0x6881bb3771b1fffL, 35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x6be22a054e1e7ffL, 0x6f2d5a4350d30ffL, 0x7278b0d42507d3fL, 0x75d6dd092e49c8fL, 36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x79264a25bcee1daL, 0x7c6fdcaf2c29a50L, 0x7fcbd3daf7340e4L, 0x831f6468da8088eL, 37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x86673d831120ab2L, 0x89c10ce3d568d5fL, 0x8d18a80e656185bL, 0x905ed211feb9e72L, 38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x93b686967e6860eL, 0x9712141e0f013c9L, 0x9a56992592c18bbL, 0x9dac3f6ef771eeaL, 39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xa10ba7a55aa7352L, 0xa44e918eb151027L, 0xa7a235f25da5430L, 0xab0561b77a8749eL, 40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xae46ba2559291c6L, 0xb19868aeaf73637L, 0xb4fe82da5b503c5L, 0xb83f11c8791225bL, 41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xbb8ed63a9756af2L, 0xbef28bc93d2c5afL, 0xc237975dc63bb8dL, 0xc5857d3537caa70L, 42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xc8e6dc8285bd50cL, 0xcc3049d19396528L, 0xcf7c5c45f87be72L, 0xd2db7357769ae0eL, 43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xd6292816aa20cc9L, 0xd973721c54a8ffbL, 0xdcd04ea369d33faL, 0xe0223126222407cL, 44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xe36abd6faaad09bL, 0xe6c56ccb95584c2L, 0xea1b63ff3d572f9L, 0xed623cff0cacfb8L, 45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xf0bacc3ecfd83a5L, 0xf414bfa741e7247L, 0xf759ef911260ed9L, 0xfab06b7556f9290L, 46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xfe0e4329565bb9aL, 0x10151d3f3abf2a80L, 0x104a648f096ef520L, 0x10807ed965e55934L, 47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x10b49e8fbf5eaf81L, 0x10e9c633af365b61L, 0x11201be04d81f91dL, 0x115422d860e27764L, 48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x11892b8e791b153dL, 0x11bf76721761da8cL, 0x11f3aa074e9d2898L, 0x12289489224472beL, 49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x125eb9ab6ad58f6dL, 0x1293340b22c579a4L, 0x12c8010deb76d80dL, 0x12fe015166548e11L, 50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1332c0d2dff4d8caL, 0x1367710797f20efdL, 0x139d4d497dee92bcL, 0x13d2504deeb51bb6L, 51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1406e4616a6262a3L, 0x143c9d79c4fafb4cL, 0x1471e26c1b1cdd0fL, 0x14a65b0721e41453L, 52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x14dbf1c8ea5d1968L, 0x1511771d927a2fe1L, 0x1545d4e4f718bbd9L, 0x157b4a1e34deead0L, 53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x15b10e52e10b52c2L, 0x15e551e7994e2772L, 0x161aa6617fa1b14fL, 0x1650a7fcefc50ed1L, 54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1684d1fc2bb65286L, 0x16ba067b36a3e727L, 0x16f0440d02267078L, 0x1724551042b00c96L, 55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x17596a54535c0fbcL, 0x178fc4e9683313abL, 0x17c3db11e11fec4bL, 0x17f8d1d65967e75eL, 56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x182f064befc1e135L, 0x186363ef75d92cc1L, 0x18983ceb534f77f1L, 0x18ce4c26282355eeL, 57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1902ef97d91615b5L, 0x1937ab7dcf5b9b22L, 0x196d965d433281eaL, 0x19a27dfa49ff9132L, 58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x19d71d78dc7f757fL, 0x1a0ce4d7139f52dfL, 0x1a420f066c4393cbL, 0x1a7692c8075478beL, 59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1aac377a092996edL, 0x1ae1a2ac45b9fe54L, 0x1b160b5757287de9L, 0x1b4b8e2d2cf29d64L, 60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1b8138dc3c17a25eL, 0x1bb587134b1d8af6L, 0x1beae8d81de4edb4L, 0x1c20d18712af1490L, 61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1c5505e8d75ad9b4L, 0x1c8a47630d319021L, 0x1cc06c9de83efa15L, 0x1cf487c5624eb89aL, 62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1d29a9b6bae266c1L, 0x1d600a1234cd8038L, 0x1d940c96c200e046L, 0x1dc90fbc72811858L, 63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1dff53ab8f215e6eL, 0x1e33944b3974db05L, 0x1e68795e07d211c6L, 0x1e9e97b589c69637L, 64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1ed31ed1761c1de3L, 0x1f07e685d3a3255bL, 0x1f3de027488beeb2L, 0x1f72ac188d57752fL, 65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1fa7571eb0ad527bL, 0x1fdd2ce65cd8a71aL, 0x20123c0ffa076870L, 0x2046cb13f889428cL, 66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x207c7dd8f6ab932fL, 0x20b1cea79a2b3bfeL, 0x20e6425180b60afdL, 0x211bd2e5e0e38dbcL, 67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x215163cfac8e3896L, 0x2185bcc397b1c6bbL, 0x21bb2bf47d9e386aL, 0x21f0fb78ce82e342L, 68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x22253a5702239c13L, 0x225a88ecc2ac8317L, 0x22909593f9abd1efL, 0x22c4baf8f816c66aL, 69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x22f9e9b7361c7805L, 0x2330321281d1cb03L, 0x23643e9722463dc4L, 0x23994e3cead7cd35L, 70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x23cfa1cc258dc082L, 0x2403c51f97789851L, 0x2438b6677d56be65L, 0x246ee4015cac6dffL, 71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x24a34e80d9ebc4bfL, 0x24d822211066b5efL, 0x250e2aa95480636bL, 0x2542daa9d4d03e23L, 72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x257791544a044dabL, 0x25ad75a95c856116L, 0x25e26989d9d35caeL, 0x261703ec504833d9L, 73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x264cc4e7645a40d0L, 0x2681fb109eb86882L, 0x26b679d4c66682a2L, 0x26ec1849f800234bL, 74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x27218f2e3b00160fL, 0x2755f2f9c9c01b93L, 0x278b6fb83c302277L, 0x27c125d3259e158bL, 75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x27f56f47ef059aedL, 0x282acb19eac701a8L, 0x2860bef032bc6109L, 0x2894eeac3f6b794cL, 76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x28ca2a574f46579eL, 0x29005a76918bf6c3L, 0x2934711435eef474L, 0x29698d59436ab191L, 77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x299ff0af94455df5L, 0x29d3f66dbcab5ab9L, 0x2a08f4092bd63167L, 0x2a3f310b76cbbdc1L, 78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x2a737ea72a3f5699L, 0x2aa85e50f4cf2c3fL, 0x2ade75e53202f74fL, 0x2b1309af3f41da91L, 79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x2b47cc1b0f125135L, 0x2b7dbf21d2d6e583L, 0x2bb2977523c64f72L, 0x2be73d526cb7e34eL, 80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x2c1d0ca707e5dc22L, 0x2c5227e864efa995L, 0x2c86b1e27e2b93faL, 0x2cbc5e5b1db678f9L, 81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x2cf1baf8f2920b9cL, 0x2d2629b72f368e83L, 0x2d5bb424fb043223L, 0x2d9150971ce29f56L, 82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x2dc5a4bce41b472bL, 0x2dfb0dec1d2218f6L, 0x2e30e8b392354f9aL, 0x2e6522e076c2a380L, 83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x2e9a6b9894734c61L, 0x2ed0833f5cc80fbcL, 0x2f04a40f33fa13abL, 0x2f39cd1300f89896L, 84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x2f70202be09b5f5eL, 0x2fa42836d8c23735L, 0x2fd932448ef2c503L, 0x300f7ed5b2af7643L, 85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x3043af458fada9eaL, 0x30789b16f3991465L, 0x30aec1dcb07f597eL, 0x30e33929ee4f97efL, 86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x3118077469e37deaL, 0x314e0951845c5d65L, 0x3182c5d2f2b9ba5fL, 0x31b77747af6828f7L, 87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x31ed55199b423335L, 0x3222553001096001L, 0x3256ea7c014bb801L, 0x328ca51b019ea601L, 88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x32c1e730e10327c1L, 0x32f660fd1943f1b1L, 0x332bf93c5f94ee1dL, 0x33617bc5bbbd14d2L, 89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x3395dab72aac5a07L, 0x33cb5164f5577089L, 0x340112df1956a655L, 0x34355796dfac4febL, 90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x346aad7c979763e5L, 0x34a0ac6ddebe9e6fL, 0x34d4d789566e460bL, 0x350a0d6bac09d78eL, 91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x354048634b8626b9L, 0x35745a7c1e67b067L, 0x35a9711b26019c81L, 0x35dfcd61ef8203a1L, 92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x3613e05d35b14245L, 0x3648d874831d92d6L, 0x367f0e91a3e4f78bL, 0x36b3691b066f1ab7L, 93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x36e84361c80ae165L, 0x371e543a3a0d99beL, 0x3752f4a464488017L, 0x3787b1cd7d5aa01cL, 94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x37bd9e40dcb14823L, 0x37f282e889eecd16L, 0x382723a2ac6a805cL, 0x385cec8b57852073L, 95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x389213d716b33448L, 0x38c698ccdc60015aL, 0x38fc3f00137801b0L, 0x3931a7600c2b010eL, 96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x396611380f35c151L, 0x399b9586130331a6L, 0x39d13d73cbe1ff08L, 0x3a058cd0beda7ec9L, 97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x3a3af004ee911e7cL, 0x3a70d603151ab30dL, 0x3aa50b83da615fd1L, 0x3ada4e64d0f9b7c5L, 98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x3b1070ff029c12dbL, 0x3b448d3ec3431792L, 0x3b79b08e7413dd76L, 0x3bb00e59088c6a6aL, 99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x3be411ef4aaf8504L, 0x3c19166b1d5b6646L, 0x3c4f5c05e4b23fd7L, 0x3c839983aeef67e6L, 100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x3cb87fe49aab41e0L, 0x3cee9fddc1561258L, 0x3d2323ea98d5cb77L, 0x3d57ece53f0b3e55L, 101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x3d8de81e8ece0deaL, 0x3dc2b1131940c8b2L, 0x3df75d57df90fadfL, 0x3e2d34add7753996L, 102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x3e6240eca6a943feL, 0x3e96d127d05394fdL, 0x3ecc8571c4687a3dL, 0x3f01d3671ac14c66L, 103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x3f364840e1719f80L, 0x3f6bda5119ce075fL, 0x3fa16872b020c49cL, 0x3fd5c28f5c28f5c3L, 104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x400B333333333333L }; 105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private static final long rawBitsFor1_2e0To309[] = { 0x3ff3333333333333L, 0x4028000000000000L, 107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x405e000000000000L, 0x4092c00000000000L, 0x40c7700000000000L, 0x40fd4c0000000000L, 108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x41324f8000000000L, 0x4166e36000000000L, 0x419c9c3800000000L, 0x41d1e1a300000000L, 109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x42065a0bc0000000L, 0x423bf08eb0000000L, 0x427176592e000000L, 0x42a5d3ef79800000L, 110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x42db48eb57e00000L, 0x43110d9316ec0000L, 0x434550f7dca70000L, 0x437aa535d3d0c000L, 111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x43b0a741a4627800L, 0x43e4d1120d7b1600L, 0x441a055690d9db80L, 0x445043561a882930L, 112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x4484542ba12a337cL, 0x44b969368974c05bL, 0x44efc3842bd1f072L, 0x4523da329b633647L, 113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x4558d0bf423c03d9L, 0x458f04ef12cb04cfL, 0x45c363156bbee301L, 0x45f83bdac6ae9bc2L, 114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x462e4ad1785a42b2L, 0x4662eec2eb3869afL, 0x4697aa73a606841bL, 0x46cd95108f882522L, 115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x47027d2a59b51735L, 0x47371c74f0225d03L, 0x476ce3922c2af443L, 0x47a20e3b5b9ad8aaL, 116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x47d691ca32818ed5L, 0x480c363cbf21f28aL, 0x4841a1e5f7753796L, 0x48760a5f7552857cL, 117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x48ab8cf752a726daL, 0x48e1381a93a87849L, 0x491586213892965bL, 0x494ae7a986b73bf1L, 118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x4980d0c9f4328577L, 0x49b504fc713f26d5L, 0x49ea463b8d8ef08aL, 0x4a206be538795656L, 119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x4a5486de8697abecL, 0x4a89a896283d96e6L, 0x4ac0095dd9267e50L, 0x4af40bb54f701de4L, 120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x4b290ea2a34c255dL, 0x4b5f524b4c1f2eb4L, 0x4b93936f0f937d31L, 0x4bc8784ad3785c7dL, 121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x4bfe965d8856739cL, 0x4c331dfa75360842L, 0x4c67e57912838a52L, 0x4c9dded757246ce6L, 122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x4cd2ab469676c410L, 0x4d0756183c147514L, 0x4d3d2b9e4b199259L, 0x4d723b42eeeffb78L, 123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x4da6ca13aaabfa56L, 0x4ddc7c989556f8ebL, 0x4e11cddf5d565b93L, 0x4e46415734abf278L, 124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x4e7bd1ad01d6ef15L, 0x4eb1630c2126556dL, 0x4ee5bbcf296feac9L, 0x4f1b2ac2f3cbe57bL, 125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x4f50fab9d85f6f6dL, 0x4f8539684e774b48L, 0x4fba87c262151e1aL, 0x4ff094d97d4d32d0L, 126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x5024ba0fdca07f84L, 0x5059e893d3c89f65L, 0x5090315c645d639fL, 0x50c43db37d74bc87L, 127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x50f94d205cd1eba9L, 0x512fa06874066693L, 0x5163c4414884001cL, 0x5198b5519aa50023L, 128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x51cee2a6014e402cL, 0x52034da7c0d0e81bL, 0x52382111b1052222L, 0x526e29561d466aabL, 129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x52a2d9d5d24c02abL, 0x52d7904b46df0355L, 0x530d745e1896c42bL, 0x534268bacf5e3a9bL, 130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x537702e98335c941L, 0x53acc3a3e4033b92L, 0x53e1fa466e82053bL, 0x541678d80a22868aL, 131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x544c170e0cab282cL, 0x54818e68c7eaf91cL, 0x54b5f202f9e5b763L, 0x54eb6e83b85f253bL, 132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x55212512533b7745L, 0x55556e56e80a5516L, 0x558ac9eca20cea5cL, 0x55c0be33e5481279L, 133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x55f4edc0de9a1718L, 0x562a293116409cdeL, 0x566059beade8620bL, 0x5694702e59627a8dL, 134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x56c98c39efbb1931L, 0x56ffef486ba9df7dL, 0x5733f58d434a2baeL, 0x5768f2f0941cb699L, 135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x579f2facb923e440L, 0x57d37dcbf3b66ea8L, 0x58085d3ef0a40a52L, 0x583e748eaccd0ce6L, 136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x587308d92c002810L, 0x58a7cb0f77003214L, 0x58ddbdd354c03e99L, 0x591296a414f82720L, 137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x59473c4d1a3630e8L, 0x597d0b6060c3bd21L, 0x59b2271c3c7a5635L, 0x59e6b0e34b98ebc2L, 138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x5a1c5d1c1e7f26b3L, 0x5a51ba31930f7830L, 0x5a8628bdf7d3563cL, 0x5abbb2ed75c82bcaL, 139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x5af14fd4699d1b5fL, 0x5b25a3c984046236L, 0x5b5b0cbbe5057ac4L, 0x5b90e7f56f236cbaL, 140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x5bc521f2caec47e9L, 0x5bfa6a6f7da759e3L, 0x5c308285ae88982eL, 0x5c64a3271a2abe39L, 141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x5c99cbf0e0b56dc8L, 0x5cd01f768c71649dL, 0x5d0427542f8dbdc4L, 0x5d3931293b712d35L, 142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x5d6f7d738a4d7882L, 0x5da3ae6836706b51L, 0x5dd89a02440c8626L, 0x5e0ec082d50fa7afL, 143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x5e433851c529c8ceL, 0x5e78066636743b01L, 0x5eae07ffc41149c1L, 0x5ee2c4ffda8ace19L, 144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x5f17763fd12d819fL, 0x5f4d53cfc578e207L, 0x5f825461db6b8d44L, 0x5fb6e97a52467095L, 145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x5feca3d8e6d80cbbL, 0x6021e667904707f5L, 0x605660017458c9f2L, 0x608bf801d16efc6eL, 146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x60c17b0122e55dc5L, 0x60f5d9c16b9eb536L, 0x612b5031c6866284L, 0x6161121f1c13fd92L, 147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x619556a6e318fcf7L, 0x61caac509bdf3c34L, 0x6200abb2616b85a1L, 0x6234d69ef9c66709L, 148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x626a0c46b83800cbL, 0x62a047ac3323007fL, 0x62d459973febc09fL, 0x63096ffd0fe6b0c6L, 149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x633fcbfc53e05cf8L, 0x6373df7db46c3a1bL, 0x63a8d75d218748a2L, 0x63df0d3469e91acaL, 150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x64136840c231b0beL, 0x64484250f2be1ceeL, 0x647e52e52f6da42aL, 0x64b2f3cf3da4869aL, 151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x64e7b0c30d0da840L, 0x651d9cf3d0511251L, 0x655282186232ab72L, 0x6587229e7abf564fL, 152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x65bceb46196f2be3L, 0x65f2130bcfe57b6eL, 0x662697cec3deda49L, 0x665c3dc274d690dbL, 153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x6691a69989061a89L, 0x66c6103feb47a12bL, 0x66fb944fe6198976L, 0x67313cb1efcff5eaL, 154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x67658bde6bc3f364L, 0x679aeed606b4f03dL, 0x67d0d545c4311626L, 0x68050a97353d5bb0L, 155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x683a4d3d028cb29cL, 0x687070462197efa2L, 0x68a48c57a9fdeb8aL, 0x68d9af6d947d666cL, 156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x69100da47cce6004L, 0x6944110d9c01f805L, 0x6979155103027606L, 0x69af5aa543c31387L, 157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x69e398a74a59ec35L, 0x6a187ed11cf06742L, 0x6a4e9e85642c8112L, 0x6a8323135e9bd0abL, 158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x6ab7ebd83642c4d6L, 0x6aede6ce43d3760cL, 0x6b22b040ea6429c7L, 0x6b575c5124fd3439L, 159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x6b8d33656e3c8147L, 0x6bc2401f64e5d0cdL, 0x6bf6d0273e1f4500L, 0x6c2c84310da71640L, 160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x6c61d29ea8886de8L, 0x6c96474652aa8962L, 0x6ccbd917e7552bbaL, 0x6d0167aef0953b54L, 161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x6d35c19aacba8a29L, 0x6d6b320157e92cb4L, 0x6da0ff40d6f1bbf0L, 0x6dd53f110cae2aedL, 162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x6e0a8ed54fd9b5a8L, 0x6e40994551e81189L, 0x6e74bf96a66215ebL, 0x6ea9ef7c4ffa9b66L, 163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x6ee035adb1fca120L, 0x6f1443191e7bc967L, 0x6f4953df661abbc1L, 0x6f7fa8d73fa16ab2L, 164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x6fb3c98687c4e2afL, 0x6fe8bbe829b61b5bL, 0x701eeae23423a232L, 0x705352cd6096455fL, 165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x70882780b8bbd6b7L, 0x70be3160e6eacc64L, 0x70f2dedc9052bfbfL, 0x71279693b4676faeL, 166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x715d7c38a1814b9aL, 0x71926da364f0cf40L, 0x71c7090c3e2d0310L, 0x71fccb4f4db843d4L, 167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7231ff1190932a65L, 0x72667ed5f4b7f4feL, 0x729c1e8b71e5f23dL, 0x72d19317272fb766L, 168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7305f7dcf0fba540L, 0x733b75d42d3a8e90L, 0x737129a49c44991aL, 0x73a5740dc355bf60L, 169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x73dad111342b2f39L, 0x7410c2aac09afd83L, 0x7444f35570c1bce4L, 0x747a302accf22c1dL, 170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x74b05e1ac0175b92L, 0x74e475a1701d3277L, 0x75199309cc247f15L, 0x754ff7cc3f2d9edaL, 171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7583fadfa77c8348L, 0x75b8f997915ba41aL, 0x75ef37fd75b28d21L, 0x762382fe698f9834L, 172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x765863be03f37e41L, 0x768e7cad84f05dd2L, 0x76c30dec73163aa3L, 0x76f7d1678fdbc94cL, 173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x772dc5c173d2bb9fL, 0x77629b98e863b543L, 0x7797427f227ca294L, 0x77cd131eeb1bcb39L, 174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x78022bf352f15f04L, 0x7836b6f027adb6c5L, 0x786c64ac31992476L, 0x78a1beeb9effb6caL, 175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x78d62ea686bfa47cL, 0x790bba50286f8d9bL, 0x794154721945b881L, 0x7975a98e9f9726a1L, 176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x79ab13f2477cf049L, 0x79e0ec776cae162eL, 0x7a15279547d99bb9L, 0x7a4a717a99d002a8L, 177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7a8086eca02201a9L, 0x7ab4a8a7c82a8213L, 0x7ae9d2d1ba352298L, 0x7b2023c31461359fL, 178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7b542cb3d9798307L, 0x7b8937e0cfd7e3c8L, 0x7bbf85d903cddcbaL, 0x7bf3b3a7a260a9f4L, 179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7c28a0918af8d472L, 0x7c5ec8b5edb7098eL, 0x7c933d71b49265f9L, 0x7cc80cce21b6ff77L, 180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7cfe1001aa24bf55L, 0x7d32ca010a56f795L, 0x7d677c814cecb57aL, 0x7d9d5ba1a027e2d9L, 181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7dd259450418edc7L, 0x7e06ef96451f2939L, 0x7e3cab7bd666f388L, 0x7e71eb2d66005835L, 182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7ea665f8bf806e42L, 0x7edbff76ef6089d2L, 0x7f117faa559c5623L, 0x7f45df94eb036bacL, 183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7f7b577a25c44697L, 0x7fb116ac579aac1fL, 0x7fe55c576d815726L, 0x7ff0000000000000L }; 184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private void doTestCompareRawBits(String originalDoubleString, long expectedRawBits, 186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String expectedString) { 187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double result; 188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes long rawBits; 189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String convertedString; 190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes result = Double.parseDouble(originalDoubleString); 191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes rawBits = Double.doubleToLongBits(result); 192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes convertedString = new Double(result).toString(); 193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(expectedRawBits, rawBits); 194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(expectedString.toLowerCase(Locale.US), convertedString 195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .toLowerCase(Locale.US)); 196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes private void test_toString(double dd, String answer) { 199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(answer, Double.toString(dd)); 200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double d = new Double(dd); 201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(answer, Double.toString(d.doubleValue())); 202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(answer, d.toString()); 203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#Double(double) 207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ConstructorD() { 209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double d = new Double(39089.88888888888888888888888888888888); 210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Created incorrect double", 39089.88888888888888888888888888888888, d 211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .doubleValue(), 0D); 212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#Double(java.lang.String) 216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_ConstructorLjava_lang_String() { 218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double d = new Double("39089.88888888888888888888888888888888"); 219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Created incorrect double", 39089.88888888888888888888888888888888, d 220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .doubleValue(), 0D); 221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression test for HARMONY-489 223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = new Double("1E+-20"); 225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("new Double(\"1E+-20\") should throw exception"); 226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NumberFormatException e) { 227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Regression test for HARMONY-329 231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.parseDouble("-1.233999999999999965116738099630936817275852021384209929081813042837802886790127428328465579708849276001782791006814286802871737087810957327493372866733334925806221045495205250590286471187577636646208155890426896101636282423463443661040209738873506655844025580428394216030152374941053494694642722606658935546875E-112"); 232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Failed to parse long string", -1.234E-112D, d.doubleValue(), 0D); 233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#byteValue() 237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_byteValue() { 239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double d = new Double(1923311.47712); 240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect byte value", (byte) -17, d.byteValue()); 241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#compareTo(java.lang.Double) 245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#compare(double, double) 246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_compare() { 248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double[] values = new double[] { Double.NEGATIVE_INFINITY, -Double.MAX_VALUE, -2d, 249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes -Double.MIN_VALUE, -0d, 0d, Double.MIN_VALUE, 2d, Double.MAX_VALUE, 250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.POSITIVE_INFINITY, Double.NaN }; 251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < values.length; i++) { 252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double d1 = values[i]; 253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("compare() should be equal: " + d1, Double.compare(d1, d1) == 0); 254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double D1 = new Double(d1); 255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("compareTo() should be equal: " + d1, D1.compareTo(D1) == 0); 256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int j = i + 1; j < values.length; j++) { 257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double d2 = values[j]; 258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("compare() " + d1 + " should be less " + d2, 259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.compare(d1, d2) == -1); 260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("compare() " + d2 + " should be greater " + d1, Double.compare(d2, 261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d1) == 1); 262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double D2 = new Double(d2); 263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("compareTo() " + d1 + " should be less " + d2, 264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes D1.compareTo(D2) == -1); 265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("compareTo() " + d2 + " should be greater " + d1, 266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes D2.compareTo(D1) == 1); 267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Double(0.0D).compareTo(null); 272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("No NPE"); 273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#doubleToLongBits(double) 279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_doubleToLongBitsD() { 281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method long java.lang.Double.doubleToLongBits(double) 282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double d = new Double(Double.MAX_VALUE); 283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes long lbits = Double.doubleToLongBits(d.doubleValue()); 284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double r = Double.longBitsToDouble(lbits); 285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Bit conversion failed", d.doubleValue() == r); 287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#doubleToRawLongBits(double) 291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_doubleToRawLongBitsD() { 293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes long l = 0x7ff80000000004d2L; 294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double d = Double.longBitsToDouble(l); 295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong raw bits", Double.doubleToRawLongBits(d) == l); 296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#doubleValue() 300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_doubleValue() { 302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect double value returned", 999999999999999.9999999999999, 303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Double(999999999999999.9999999999999).doubleValue(), 0D); 304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#floatValue() 308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_floatValue() { 310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method float java.lang.Double.floatValue() 311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue( 312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "Incorrect float value returned ", 313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Math 314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .abs(new Double(999999999999999.9999999999999d).floatValue() - 999999999999999.9999999999999f) < 1); 315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#hashCode() 319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_hashCode() { 321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method int java.lang.Double.hashCode() 322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = -1000; i < 1000; i++) { 323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double d = new Double(i); 324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double dd = new Double(i); 325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Should not be identical ", d != dd); 326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Should be equals 1 ", d.equals(dd)); 327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Should be equals 2 ", dd.equals(d)); 328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Should have identical values ", dd.doubleValue() == d.doubleValue()); 329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Invalid hash for equal but not identical doubles ", d.hashCode() == dd 330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .hashCode()); 331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Magic assumption hasCode (0.0) = 0 failed", 0, new Double(0.0).hashCode()); 333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#intValue() 337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_intValue() { 339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method int java.lang.Double.intValue() 340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double d = new Double(1923311.47712); 341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect int value", 1923311, d.intValue()); 342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#isInfinite() 346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_isInfinite() { 348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method boolean java.lang.Double.isInfinite() 349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("NEGATIVE_INFINITY returned false", new Double(Double.NEGATIVE_INFINITY) 350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .isInfinite()); 351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("POSITIVE_INFINITY returned false", new Double(Double.POSITIVE_INFINITY) 352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .isInfinite()); 353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Non infinite number returned true", !(new Double(1000).isInfinite())); 354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#isInfinite(double) 358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_isInfiniteD() { 360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method boolean java.lang.Double.isInfinite(double) 361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Infinity check failed", Double.isInfinite(Double.NEGATIVE_INFINITY) 362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes && (Double.isInfinite(Double.POSITIVE_INFINITY)) 363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes && !(Double.isInfinite(Double.MAX_VALUE))); 364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#isNaN() 368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_isNaN() { 370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method boolean java.lang.Double.isNaN() 371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double d = new Double(0.0 / 0.0); 372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("NAN returned false", d.isNaN()); 373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = new Double(0); 374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Non NAN returned true", !d.isNaN()); 375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#isNaN(double) 379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_isNaND() { 381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method boolean java.lang.Double.isNaN(double) 382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double d = new Double(0.0 / 0.0); 384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("NAN check failed", Double.isNaN(d.doubleValue())); 385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#longBitsToDouble(long) 389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_longBitsToDoubleJ() { 391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method double java.lang.Double.longBitsToDouble(long) 392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double d = new Double(Double.MAX_VALUE); 394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes long lbits = Double.doubleToLongBits(d.doubleValue()); 395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double r = Double.longBitsToDouble(lbits); 396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Bit conversion failed", d.doubleValue() == r); 398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#longValue() 402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_longValue() { 404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method long java.lang.Double.longValue() 405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double d = new Double(1923311.47712); 406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect long value", 1923311, d.longValue()); 407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#parseDouble(java.lang.String) 411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_parseDoubleLjava_lang_String() { 413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Incorrect double returned, expected zero.", 0.0, Double 414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .parseDouble("2.4703282292062327208828439643411e-324"), 0.0); 415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Incorrect double returned, expected minimum double.", Double 416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .parseDouble("2.4703282292062327208828439643412e-324") == Double.MIN_VALUE); 417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 324; i > 0; i--) { 419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.parseDouble("3.4e-" + i); 420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i <= 309; i++) { 422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.parseDouble("1.2e" + i); 423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The first two cases and the last four cases have to placed outside 427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the loop due to the difference in the expected output string. 428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("3.4e-324", rawBitsFor3_4en324ToN1[0], "4.9e-324"); 430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("3.4e-323", rawBitsFor3_4en324ToN1[1], "3.5e-323"); 431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 322; i > 3; i--) { 432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String testString, expectedString; 433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testString = expectedString = "3.4e-" + i; 434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits(testString, rawBitsFor3_4en324ToN1[324 - i], expectedString); 435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("3.4e-3", rawBitsFor3_4en324ToN1[321], "0.0034"); 437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("3.4e-2", rawBitsFor3_4en324ToN1[322], "0.034"); 438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("3.4e-1", rawBitsFor3_4en324ToN1[323], "0.34"); 439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("3.4e-0", rawBitsFor3_4en324ToN1[324], "3.4"); 440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("1.2e0", rawBitsFor1_2e0To309[0], "1.2"); 442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("1.2e1", rawBitsFor1_2e0To309[1], "12.0"); 443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("1.2e2", rawBitsFor1_2e0To309[2], "120.0"); 444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("1.2e3", rawBitsFor1_2e0To309[3], "1200.0"); 445561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("1.2e4", rawBitsFor1_2e0To309[4], "12000.0"); 446561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("1.2e5", rawBitsFor1_2e0To309[5], "120000.0"); 447561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("1.2e6", rawBitsFor1_2e0To309[6], "1200000.0"); 448561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 7; i <= 308; i++) { 449561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String testString, expectedString; 450561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes testString = expectedString = "1.2e" + i; 451561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits(testString, rawBitsFor1_2e0To309[i], expectedString); 452561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 453561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("1.2e309", rawBitsFor1_2e0To309[309], "Infinity"); 454561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 455561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 456561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "111222333444555666777888999000111222333444555666777888999000111222333444555666777888999000111222333444555666777888999000111222333444555666777888999000111222333444555666777888999000111222333444555666777888999000111222333444555666777888999000111222333444555666777888999000111222333444555666777888999000.92233720368547758079223372036854775807", 457561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7e054218c295e43fL, "1.1122233344455567E299"); 458561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 459561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-111222333444555666777888999000111222333444555666777888999000111222333444555666777888999000111222333444555666777888999000111222333444555666777888999000111222333444555666777888999000111222333444555666777888999000111222333444555666777888999000111222333444555666777888999000111222333444555666777888999000.92233720368547758079223372036854775807", 460561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xfe054218c295e43fL, "-1.1122233344455567E299"); 461561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 462561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("1.234123412431233E107", 0x562ae7a25fe706ebL, 463561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "1.234123412431233E107"); 464561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("1.2341234124312331E107", 0x562ae7a25fe706ecL, 465561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "1.2341234124312331E107"); 466561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("1.2341234124312332E107", 0x562ae7a25fe706ecL, 467561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "1.2341234124312331E107"); 468561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("-1.234123412431233E107", 0xd62ae7a25fe706ebL, 469561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-1.234123412431233E107"); 470561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("-1.2341234124312331E107", 0xd62ae7a25fe706ecL, 471561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-1.2341234124312331E107"); 472561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("-1.2341234124312332E107", 0xd62ae7a25fe706ecL, 473561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-1.2341234124312331E107"); 474561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 475561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("1e23", 0x44b52d02c7e14af6L, "1.0e23"); 476561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 477561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /* 478561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * These particular tests verify that the extreme boundary conditions 479561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * are converted correctly. 480561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 481561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("0.0e-309", 0L, "0.0"); 482561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("-0.0e-309", 0x8000000000000000L, "-0.0"); 483561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("0.0e309", 0L, "0.0"); 484561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("-0.0e309", 0x8000000000000000L, "-0.0"); 485561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("0.1e309", 0x7fe1ccf385ebc8a0L, "1.0e308"); 486561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("0.2e309", 0x7ff0000000000000L, "Infinity"); 487561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("65e-325", 1L, "4.9e-324"); 488561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("1000e-326", 2L, "1.0e-323"); 489561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 490561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("4.0e-306", 0x86789e3750f791L, "4.0e-306"); 491561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits("2.22507e-308", 0xffffe2e8159d0L, "2.22507e-308"); 492561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 493561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "111222333444555666777888999000111228999000.92233720368547758079223372036854775807", 494561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x48746da623f1dd8bL, "1.1122233344455567E41"); 495561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 496561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-111222333444555666777888999000111228999000.92233720368547758079223372036854775807", 497561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xc8746da623f1dd8bL, "-1.1122233344455567E41"); 498561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 499561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890.987654321098765432109876543210987654321098765432109876543210987654321098765432109876543210987654321098765432109876543210987654321098765432109876543210987654321098765432109876543210987654321098765432109876543210987654321098765432109876543210987654321098765432109876543210987654321098765432109876543210", 500561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x54820fe0ba17f469L, "1.2345678901234567E99"); 501561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 502561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890.987654321098765432109876543210987654321098765432109876543210987654321098765432109876543210987654321098765432109876543210987654321098765432109876543210987654321098765432109876543210987654321098765432109876543210987654321098765432109876543210987654321098765432109876543210987654321098765432109876543210", 503561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xd4820fe0ba17f469L, "-1.2345678901234567E99"); 504561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 505561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 506561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.01", 507561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7fefffffffffffffL, "1.7976931348623157E308"); 508561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 509561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.01", 510561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xffefffffffffffffL, "-1.7976931348623157E308"); 511561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 512561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "1112223334445556667778889990001112223334445556667778889990001112223334445556667778889990001112223334445556667778889990001112223334445556667778889990001112223334445556667778889990001112223334445556667778889990001112223334445556667778889990001112223334445556667778889990001112223334445556667778889990001234567890", 513561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7ff0000000000000L, "Infinity"); 514561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 515561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-1112223334445556667778889990001112223334445556667778889990001112223334445556667778889990001112223334445556667778889990001112223334445556667778889990001112223334445556667778889990001112223334445556667778889990001112223334445556667778889990001112223334445556667778889990001112223334445556667778889990001234567890", 516561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xfff0000000000000L, "-Infinity"); 517561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 518561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "179769313486231590000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.01", 519561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7ff0000000000000L, "Infinity"); 520561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 521561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-179769313486231590000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.01", 522561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xfff0000000000000L, "-Infinity"); 523561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 524561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017976931348623157", 525561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x2b392a32afcc661eL, "1.7976931348623157E-100"); 526561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 527561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017976931348623157", 528561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xab392a32afcc661eL, "-1.7976931348623157E-100"); 529561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 530561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017976931348623157", 531561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1b3432f0cb68e61L, "1.7976931348623157E-300"); 532561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 533561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017976931348623157", 534561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x81b3432f0cb68e61L, "-1.7976931348623157E-300"); 535561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 536561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017976931348623157", 537561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x2117b590b942L, "1.79769313486234E-310"); 538561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 539561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017976931348623157", 540561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x80002117b590b942L, "-1.79769313486234E-310"); 541561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 542561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017976931348623157", 543561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xe37L, "1.798E-320"); 544561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 545561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017976931348623157", 546561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x8000000000000e37L, "-1.798E-320"); 547561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 548561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", 549561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x2L, "1.0E-323"); 550561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 551561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", 552561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x8000000000000002L, "-1.0E-323"); 553561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 554561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055595409854908458349204328908234982349050934129878452378432452458968024357823490509341298784523784324524589680243578234905093412987845237843245245896802435782349050934129878452378432452458968024357868024357823490509341298784523784324524589680243578234905093412987845237843245245896802435786802435782349050934129878452378432452458968024357823490509341298784523784324524589680243578", 555561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1L, "4.9E-324"); 556561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes doTestCompareRawBits( 557561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055595409854908458349204328908234982349050934129878452378432452458968024357823490509341298784523784324524589680243578234905093412987845237843245245896802435782349050934129878452378432452458968024357868024357823490509341298784523784324524589680243578234905093412987845237843245245896802435786802435782349050934129878452378432452458968024357823490509341298784523784324524589680243578", 558561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x8000000000000001L, "-4.9E-324"); 559561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 560561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 561561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 562561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#parseDouble(java.lang.String) 563561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 564561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_parseDouble_LString_Illegal() { 565561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 566561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.parseDouble("0.0p0D"); 567561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NumberFormatException."); 568561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NumberFormatException e) { 569561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 570561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 571561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 572561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 573561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.parseDouble("+0x.p1d"); 574561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NumberFormatException."); 575561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NumberFormatException e) { 576561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 577561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 578561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 579561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 580561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.parseDouble("0Xg.gp1D"); 581561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NumberFormatException."); 582561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NumberFormatException e) { 583561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 584561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 585561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 586561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 587561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.parseDouble("-0x1.1p"); 588561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NumberFormatException."); 589561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NumberFormatException e) { 590561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 591561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 592561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 593561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 594561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.parseDouble("+0x 1.1 p2d"); 595561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NumberFormatException."); 596561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NumberFormatException e) { 597561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 598561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 599561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 600561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 601561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.parseDouble("x1.1p2d"); 602561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NumberFormatException."); 603561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NumberFormatException e) { 604561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 605561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 606561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 607561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 608561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.parseDouble(" 0x-2.1p2"); 609561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NumberFormatException."); 610561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NumberFormatException e) { 611561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 612561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 613561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 614561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 615561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.parseDouble(" 0x2.1pad"); 616561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NumberFormatException."); 617561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NumberFormatException e) { 618561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 619561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 620561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 621561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 622561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.parseDouble(" 0x111.222p 22d"); 623561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Should throw NumberFormatException."); 624561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NumberFormatException e) { 625561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 626561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 627561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 628561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 629561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 630561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#parseDouble(java.lang.String) 631561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 632561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_parseDouble_LString_FromHexString() { 633561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double actual; 634561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double expected; 635561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 636561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0x0.0p0D"); 637561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", 0.0d, actual, 0.0D); 638561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 639561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0xa.ap+9d"); 640561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", 5440.0d, actual, 0.0D); 641561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 642561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("+0Xb.10ap8"); 643561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", 2832.625d, actual, 0.0D); 644561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 645561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("-0X.a0P2D"); 646561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", -2.5d, actual, 0.0D); 647561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 648561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("\r 0x22.1p2d \t"); 649561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", 136.25d, actual, 0.0D); 650561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 651561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0x1.0p-1"); 652561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", 0.5, actual, 0.0D); 653561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 654561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double 655561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .parseDouble("0x00000000000000000000000000000000001.0p-1"); 656561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", 0.5, actual, 0.0D); 657561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 658561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0x1.0p-00000000000000000000000000001"); 659561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", 0.5, actual, 0.0D); 660561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 661561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0x.100000000000000000000000000000000p1"); 662561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", 0.125, actual, 0.0D); 663561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 664561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0x0.0p999999999999999999999999999999999999999999999999999999999999999"); 665561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", 0.0, actual, 0.0D); 666561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 667561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0xf1.0p9999999999999999999999999999999999999999999999999999999999999999"); 668561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", Double.POSITIVE_INFINITY, actual, 0.0D); 669561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 670561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0xffffffffffffffffffffffffffffffffffff.ffffffffffffffffffffffffffffffffffffffffffffffp1"); 671561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes expected = Double.longBitsToDouble(0x4900000000000000L); 672561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", expected, actual, 0.0D); 673561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 674561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0x0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001p1600"); 675561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes expected = Double.longBitsToDouble(0x7f30000000000000L); 676561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", expected, actual, 0.0D); 677561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 678561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0x0.0p-999999999999999999999999999999999999999999999999999999"); 679561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", 0.0, actual, 0.0D); 680561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 681561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0xf1.0p-9999999999999999999999999999999999999999999999999999999999999999"); 682561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", 0.0, actual, 0.0D); 683561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 684561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0x10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000p-1600"); 685561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes expected = Double.longBitsToDouble(0xf0000000000000L); 686561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", expected, actual, 0.0D); 687561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 688561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0x1.p9223372036854775807"); 689561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", Double.POSITIVE_INFINITY, actual, 0.0D); 690561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 691561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0x1.p9223372036854775808"); 692561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", Double.POSITIVE_INFINITY, actual, 0.0D); 693561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 694561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0x10.p9223372036854775808"); 695561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", Double.POSITIVE_INFINITY, actual, 0.0D); 696561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 697561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0xabcd.ffffffffp+2000"); 698561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", Double.POSITIVE_INFINITY, actual, 0.0D); 699561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 700561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0x1.p-9223372036854775808"); 701561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", 0.0, actual, 0.0D); 702561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 703561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0x1.p-9223372036854775809"); 704561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", 0.0, actual, 0.0D); 705561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 706561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0x.1p-9223372036854775809"); 707561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", 0.0, actual, 0.0D); 708561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 709561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes actual = Double.parseDouble("0xabcd.ffffffffffffffp-2000"); 710561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect value", 0.0, actual, 0.0D); 711561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 712561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 713561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 714561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#parseDouble(java.lang.String) 715561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 716561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_parseDouble_LString_NormalPositiveExponent() { 717561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes long[] expecteds = { 718561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x3f323456789abcdfL, 0x40e111012345678aL, 0x41a1110091a2b3c5L, 719561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x4259998091a2b3c5L, 0x4311110048d159e2L, 0x43c5554048d159e2L, 720561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x4479998048d159e2L, 0x452dddc048d159e2L, 0x45e111002468acf1L, 721561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x469333202468acf1L, 0x4751011001234568L, 0x4802112101234568L, 722561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x48b3213201234568L, 0x4964314301234568L, 0x4a15415401234568L, 723561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x4ac6516501234568L, 0x4b77617601234568L, 0x4c28718701234568L, 724561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x4cd9819801234568L, 0x4d9049048091a2b4L, 0x4e4101100091a2b4L, 725561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x4ef189188091a2b4L, 0x4fa211210091a2b4L, 0x505299298091a2b4L, 726561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x510321320091a2b4L, 0x51b3a93a8091a2b4L, 0x526431430091a2b4L, 727561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x5314b94b8091a2b4L, 0x53c841840091a2b4L, 0x5478c98c8091a2b4L, 728561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x552981980091a2b4L, 0x55da09a08091a2b4L, 0x568a91a90091a2b4L, 729561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x573b19b18091a2b4L, 0x57eba1ba0091a2b4L, 0x589c29c28091a2b4L, 730561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x594cb1cb0091a2b4L, 0x5a001d01c048d15aL, 0x5ab061060048d15aL, 731561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x5b60a50a4048d15aL, 0x5c1101100048d15aL, 0x5cc145144048d15aL, 732561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x5d7189188048d15aL, 0x5e21cd1cc048d15aL, 0x5ed211210048d15aL, 733561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x5f8255254048d15aL, 0x603419418048d15aL, 0x60e45d45c048d15aL, 734561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x6194a14a0048d15aL, 0x6244e54e4048d15aL, 0x62f541540048d15aL, 735561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x63a585584048d15aL, 0x6455c95c8048d15aL, 0x65060d60c048d15aL, 736561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x65b651650048d15aL, 0x666815814048d15aL, 0x671859858048d15aL, 737561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x67c89d89c048d15aL, 0x6878e18e0048d15aL, 0x692925924048d15aL, 738561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x69d981980048d15aL, 0x6a89c59c4048d15aL, 0x6b3a09a08048d15aL, 739561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x6bea4da4c048d15aL, 0x6c9c11c10048d15aL, 0x6d4c55c54048d15aL, 740561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x6dfc99c98048d15aL, 0x6eacddcdc048d15aL, 0x6f5d21d20048d15aL, 741561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x700d65d64048d15aL, 0x70bdc1dc0048d15aL, 0x716e05e04048d15aL, 742561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x721e49e48048d15aL, 0x72d00700602468adL, 0x73802902802468adL, 743561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x74304b04a02468adL, 0x74e06d06c02468adL, 0x75908f08e02468adL, 744561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7640b10b002468adL, 0x76f0d30d202468adL, 0x77a10110002468adL, 745561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x78512312202468adL, 0x79020520402468adL, 0x79b22722602468adL, 746561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7a624924802468adL, 0x7b126b26a02468adL, 0x7bc28d28c02468adL, 747561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7c72af2ae02468adL, 0x7d22d12d002468adL, 0x7dd2f32f202468adL, 748561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7e832132002468adL, 0x7f40011001012345L, 0x7ff0000000000000L, 749561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7ff0000000000000L, 0x7ff0000000000000L, 0x7ff0000000000000L, 750561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7ff0000000000000L, 0x7ff0000000000000L, 0x7ff0000000000000L, 751561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7ff0000000000000L, 0x7ff0000000000000L, 0x7ff0000000000000L, 752561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7ff0000000000000L, 0x7ff0000000000000L, 0x7ff0000000000000L, 753561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7ff0000000000000L, 0x7ff0000000000000L, 0x7ff0000000000000L, 754561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7ff0000000000000L, 0x7ff0000000000000L, 0x7ff0000000000000L, 755561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7ff0000000000000L, 0x7ff0000000000000L }; 756561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 757561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < expecteds.length; i++) { 758561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int part = i*11; 759561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String inputString = "0x" + part + "." + part + "0123456789abcdefp" + part; 760561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 761561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double actual = Double.parseDouble(inputString); 762561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double expected = Double.longBitsToDouble(expecteds[i]); 763561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 764561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String expectedString = "0x" + Long.toHexString(Double.doubleToLongBits(expected)); 765561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String actualString = "0x" + Long.toHexString(Double.doubleToLongBits(actual)); 766561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String errorMsg = i + "th input string is:<" + inputString 767561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + ">.The expected result should be:<" + expectedString 768561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + ">, but was: <" + actualString + ">. "; 769561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 770561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(errorMsg, expected, actual, 0.0D); 771561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 772561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 773561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 774561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 775561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#parseDouble(java.lang.String) 776561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 777561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_parseDouble_LString_NormalNegativeExponent() { 778561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes long[] expecteds = { 779561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x3f323456789abcdfL, 0x3f8111012345678aL, 0x3ee1110091a2b3c5L, 780561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x3e39998091a2b3c5L, 0x3d91110048d159e2L, 0x3ce5554048d159e2L, 781561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x3c39998048d159e2L, 0x3b8dddc048d159e2L, 0x3ae111002468acf1L, 782561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x3a3333202468acf1L, 0x3991011001234568L, 0x38e2112101234568L, 783561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x3833213201234568L, 0x3784314301234568L, 0x36d5415401234568L, 784561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x3626516501234568L, 0x3577617601234568L, 0x34c8718701234568L, 785561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x3419819801234568L, 0x337049048091a2b4L, 0x32c101100091a2b4L, 786561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x321189188091a2b4L, 0x316211210091a2b4L, 0x30b299298091a2b4L, 787561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x300321320091a2b4L, 0x2f53a93a8091a2b4L, 0x2ea431430091a2b4L, 788561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x2df4b94b8091a2b4L, 0x2d4841840091a2b4L, 0x2c98c98c8091a2b4L, 789561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x2be981980091a2b4L, 0x2b3a09a08091a2b4L, 0x2a8a91a90091a2b4L, 790561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x29db19b18091a2b4L, 0x292ba1ba0091a2b4L, 0x287c29c28091a2b4L, 791561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x27ccb1cb0091a2b4L, 0x27201d01c048d15aL, 0x267061060048d15aL, 792561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x25c0a50a4048d15aL, 0x251101100048d15aL, 0x246145144048d15aL, 793561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x23b189188048d15aL, 0x2301cd1cc048d15aL, 0x225211210048d15aL, 794561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x21a255254048d15aL, 0x20f419418048d15aL, 0x20445d45c048d15aL, 795561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1f94a14a0048d15aL, 0x1ee4e54e4048d15aL, 0x1e3541540048d15aL, 796561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1d8585584048d15aL, 0x1cd5c95c8048d15aL, 0x1c260d60c048d15aL, 797561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1b7651650048d15aL, 0x1ac815814048d15aL, 0x1a1859858048d15aL, 798561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x19689d89c048d15aL, 0x18b8e18e0048d15aL, 0x180925924048d15aL, 799561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x175981980048d15aL, 0x16a9c59c4048d15aL, 0x15fa09a08048d15aL, 800561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x154a4da4c048d15aL, 0x149c11c10048d15aL, 0x13ec55c54048d15aL, 801561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x133c99c98048d15aL, 0x128cddcdc048d15aL, 0x11dd21d20048d15aL, 802561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x112d65d64048d15aL, 0x107dc1dc0048d15aL, 0xfce05e04048d15aL, 803561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xf1e49e48048d15aL, 0xe700700602468adL, 0xdc02902802468adL, 804561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xd104b04a02468adL, 0xc606d06c02468adL, 0xbb08f08e02468adL, 805561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xb00b10b002468adL, 0xa50d30d202468adL, 0x9a10110002468adL, 806561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x8f12312202468adL, 0x8420520402468adL, 0x7922722602468adL, 807561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x6e24924802468adL, 0x6326b26a02468adL, 0x5828d28c02468adL, 808561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x4d2af2ae02468adL, 0x422d12d002468adL, 0x372f32f202468adL, 809561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x2c32132002468adL, 0x220011001012345L, 0x170121012012345L, 810561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xc0231023012345L, 0x10341034012345L, 0x208a208a024L, 811561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x41584158L, 0x83388L, 0x108L, 812561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x0L, 0x0L, 0x0L, 813561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x0L, 0x0L, 0x0L, 814561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x0L, 0x0L, 0x0L, 815561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x0L, 0x0L, 0x0L, 816561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x0L, 0x0L }; 817561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 818561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < expecteds.length; i++) { 819561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int part = i*11; 820561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String inputString = "0x" + part + "." + part + "0123456789abcdefp-" + part; 821561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 822561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double actual = Double.parseDouble(inputString); 823561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double expected = Double.longBitsToDouble(expecteds[i]); 824561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 825561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String expectedString = "0x" + Long.toHexString(Double.doubleToLongBits(expected)); 826561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String actualString = "0x" + Long.toHexString(Double.doubleToLongBits(actual)); 827561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String errorMsg = i + "th input string is:<" + inputString 828561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + ">.The expected result should be:<" + expectedString 829561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + ">, but was: <" + actualString + ">. "; 830561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 831561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(errorMsg, expected, actual, 0.0D); 832561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 833561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 834561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 835561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 836561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#parseDouble(java.lang.String) 837561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 838561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_parseDouble_LString_MaxNormalBoundary() { 839561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes long[] expecteds = { 840561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7fefffffffffffffL, 0x7fefffffffffffffL, 0x7fefffffffffffffL, 841561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7fefffffffffffffL, 0x7fefffffffffffffL, 0x7fefffffffffffffL, 842561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7fefffffffffffffL, 0x7ff0000000000000L, 0x7ff0000000000000L, 843561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7ff0000000000000L, 0x7ff0000000000000L, 0x7ff0000000000000L, 844561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x7ff0000000000000L, 0x7ff0000000000000L, 0x7ff0000000000000L, 845561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 846561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xffefffffffffffffL, 0xffefffffffffffffL, 0xffefffffffffffffL, 847561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xffefffffffffffffL, 0xffefffffffffffffL, 0xffefffffffffffffL, 848561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xffefffffffffffffL, 0xfff0000000000000L, 0xfff0000000000000L, 849561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xfff0000000000000L, 0xfff0000000000000L, 0xfff0000000000000L, 850561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xfff0000000000000L, 0xfff0000000000000L, 0xfff0000000000000L }; 851561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 852561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String[] inputs = { 853561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.fffffffffffffp1023", 854561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.fffffffffffff000000000000000000000000001p1023", 855561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.fffffffffffff1p1023", 856561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.fffffffffffff100000000000000000000000001p1023", 857561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.fffffffffffff1fffffffffffffffffffffffffffffffffffffffffffffp1023", 858561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.fffffffffffff7p1023", 859561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.fffffffffffff700000000000000000000000001p1023", 860561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.fffffffffffff8p1023", 861561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.fffffffffffff800000000000000000000000001p1023", 862561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.fffffffffffff8fffffffffffffffffffffffffffffffffffffffffffffp1023", 863561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.fffffffffffff9p1023", 864561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.fffffffffffff900000000000000000000000001p1023", 865561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.ffffffffffffffp1023", 866561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.ffffffffffffff00000000000000000000000001p1023", 867561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffp1023", 868561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 869561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.fffffffffffffp1023", 870561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.fffffffffffff000000000000000000000000001p1023", 871561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.fffffffffffff1p1023", 872561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.fffffffffffff100000000000000000000000001p1023", 873561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.fffffffffffff1fffffffffffffffffffffffffffffffffffffffffffffp1023", 874561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.fffffffffffff7p1023", 875561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.fffffffffffff700000000000000000000000001p1023", 876561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.fffffffffffff8p1023", 877561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.fffffffffffff800000000000000000000000001p1023", 878561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.fffffffffffff8fffffffffffffffffffffffffffffffffffffffffffffp1023", 879561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.fffffffffffff9p1023", 880561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.fffffffffffff900000000000000000000000001p1023", 881561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.ffffffffffffffp1023", 882561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.ffffffffffffff00000000000000000000000001p1023", 883561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffp1023" }; 884561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 885561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < inputs.length; i++) { 886561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double actual = Double.parseDouble(inputs[i]); 887561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double expected = Double.longBitsToDouble(expecteds[i]); 888561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 889561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String expectedString = "0x" + Long.toHexString(Double.doubleToLongBits(expected)); 890561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String actualString = "0x" + Long.toHexString(Double.doubleToLongBits(actual)); 891561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String errorMsg = i + "th input string is:<" + inputs[i] 892561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + ">.The expected result should be:<" + expectedString 893561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + ">, but was: <" + actualString + ">. "; 894561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 895561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(errorMsg, expected, actual, 0.0D); 896561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 897561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 898561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 899561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 900561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#parseDouble(java.lang.String) 901561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 902561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_parseDouble_LString_MinNormalBoundary() { 903561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes long[] expecteds = { 904561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x10000000000000L, 0x10000000000000L, 0x10000000000000L, 905561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x10000000000000L, 0x10000000000000L, 0x10000000000000L, 906561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x10000000000000L, 0x10000000000000L, 0x10000000000001L, 907561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x10000000000001L, 0x10000000000001L, 0x10000000000001L, 908561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x10000000000001L, 0x10000000000001L, 0x10000000000001L, 909561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 910561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x8010000000000000L, 0x8010000000000000L, 0x8010000000000000L, 911561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x8010000000000000L, 0x8010000000000000L, 0x8010000000000000L, 912561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x8010000000000000L, 0x8010000000000000L, 0x8010000000000001L, 913561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x8010000000000001L, 0x8010000000000001L, 0x8010000000000001L, 914561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x8010000000000001L, 0x8010000000000001L, 0x8010000000000001L }; 915561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 916561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String[] inputs = { 917561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.0p-1022", 918561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.00000000000001p-1022", 919561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.000000000000010000000000000000001p-1022", 920561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.00000000000001fffffffffffffffffffffffffffffffffp-1022", 921561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.00000000000007p-1022", 922561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.000000000000070000000000000000001p-1022", 923561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.00000000000007fffffffffffffffffffffffffffffffffp-1022", 924561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.00000000000008p-1022", 925561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.000000000000080000000000000000001p-1022", 926561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.00000000000008fffffffffffffffffffffffffffffffffp-1022", 927561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.00000000000009p-1022", 928561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.000000000000090000000000000000001p-1022", 929561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.00000000000009fffffffffffffffffffffffffffffffffp-1022", 930561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.0000000000000fp-1022", 931561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x1.0000000000000ffffffffffffffffffffffffffffffffffp-1022", 932561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 933561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.0p-1022", 934561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.00000000000001p-1022", 935561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.000000000000010000000000000000001p-1022", 936561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.00000000000001fffffffffffffffffffffffffffffffffp-1022", 937561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.00000000000007p-1022", 938561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.000000000000070000000000000000001p-1022", 939561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.00000000000007fffffffffffffffffffffffffffffffffp-1022", 940561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.00000000000008p-1022", 941561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.000000000000080000000000000000001p-1022", 942561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.00000000000008fffffffffffffffffffffffffffffffffp-1022", 943561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.00000000000009p-1022", 944561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.000000000000090000000000000000001p-1022", 945561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.00000000000009fffffffffffffffffffffffffffffffffp-1022", 946561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.0000000000000fp-1022", 947561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x1.0000000000000ffffffffffffffffffffffffffffffffffp-1022" }; 948561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 949561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < inputs.length; i++) { 950561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double actual = Double.parseDouble(inputs[i]); 951561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double expected = Double.longBitsToDouble(expecteds[i]); 952561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 953561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String expectedString = "0x" + Long.toHexString(Double.doubleToLongBits(expected)); 954561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String actualString = "0x" + Long.toHexString(Double.doubleToLongBits(actual)); 955561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String errorMsg = i + "th input string is:<" + inputs[i] 956561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + ">.The expected result should be:<" + expectedString 957561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + ">, but was: <" + actualString + ">. "; 958561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 959561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(errorMsg, expected, actual, 0.0D); 960561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 961561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 962561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 963561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 964561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#parseDouble(java.lang.String) 965561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 966561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_parseDouble_LString_MaxSubNormalBoundary() { 967561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes long[] expecteds = { 968561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xfffffffffffffL, 0xfffffffffffffL, 0xfffffffffffffL, 969561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xfffffffffffffL, 0xfffffffffffffL, 0xfffffffffffffL, 970561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0xfffffffffffffL, 0x10000000000000L, 0x10000000000000L, 971561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x10000000000000L, 0x10000000000000L, 0x10000000000000L, 972561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x10000000000000L, 0x10000000000000L, 0x10000000000000L, 973561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 974561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x800fffffffffffffL, 0x800fffffffffffffL, 0x800fffffffffffffL, 975561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x800fffffffffffffL, 0x800fffffffffffffL, 0x800fffffffffffffL, 976561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x800fffffffffffffL, 0x8010000000000000L, 0x8010000000000000L, 977561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x8010000000000000L, 0x8010000000000000L, 0x8010000000000000L, 978561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x8010000000000000L, 0x8010000000000000L, 0x8010000000000000L }; 979561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 980561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String[] inputs = { 981561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.fffffffffffffp-1022", 982561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.fffffffffffff00000000000000000000000000000000001p-1022", 983561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.fffffffffffff1p-1022", 984561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.fffffffffffff10000000000000000000000000000000001p-1022", 985561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.fffffffffffff1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffp-1022", 986561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.fffffffffffff7p-1022", 987561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.fffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffp-1022", 988561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.fffffffffffff8p-1022", 989561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.fffffffffffff80000000000000000000000000000000001p-1022", 990561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.fffffffffffff8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffp-1022", 991561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.fffffffffffff9p-1022", 992561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.fffffffffffff9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffp-1022", 993561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.ffffffffffffffp-1022", 994561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.ffffffffffffff0000000000000000000000000000000001p-1022", 995561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffp-1022", 996561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 997561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.fffffffffffffp-1022", 998561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.fffffffffffff00000000000000000000000000000000001p-1022", 999561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.fffffffffffff1p-1022", 1000561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.fffffffffffff10000000000000000000000000000000001p-1022", 1001561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.fffffffffffff1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffp-1022", 1002561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.fffffffffffff7p-1022", 1003561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.fffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffp-1022", 1004561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.fffffffffffff8p-1022", 1005561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.fffffffffffff80000000000000000000000000000000001p-1022", 1006561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.fffffffffffff8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffp-1022", 1007561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.fffffffffffff9p-1022", 1008561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.fffffffffffff9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffp-1022", 1009561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.ffffffffffffffp-1022", 1010561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.ffffffffffffff0000000000000000000000000000000001p-1022", 1011561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffp-1022" }; 1012561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1013561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < inputs.length; i++) { 1014561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double actual = Double.parseDouble(inputs[i]); 1015561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double expected = Double.longBitsToDouble(expecteds[i]); 1016561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1017561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String expectedString = "0x" + Long.toHexString(Double.doubleToLongBits(expected)); 1018561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String actualString = "0x" + Long.toHexString(Double.doubleToLongBits(actual)); 1019561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String errorMsg = i + "th input string is:<" + inputs[i] 1020561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + ">.The expected result should be:<" + expectedString 1021561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + ">, but was: <" + actualString + ">. "; 1022561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1023561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(errorMsg, expected, actual, 0.0D); 1024561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1025561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1026561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1027561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1028561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#parseDouble(java.lang.String) 1029561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1030561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_parseDouble_LString_MinSubNormalBoundary() { 1031561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes long[] expecteds = { 1032561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1L, 0x1L, 0x2L, 1033561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1L, 0x1L, 0x1L, 1034561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x2L, 0x2L, 0x2L, 1035561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x2L, 0x2L, 0x2L, 1036561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x2L, 0x2L, 0x2L, 1037561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1038561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x8000000000000001L, 0x8000000000000001L, 0x8000000000000002L, 1039561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x8000000000000001L, 0x8000000000000001L, 0x8000000000000001L, 1040561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x8000000000000002L, 0x8000000000000002L, 0x8000000000000002L, 1041561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x8000000000000002L, 0x8000000000000002L, 0x8000000000000002L, 1042561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x8000000000000002L, 0x8000000000000002L, 0x8000000000000002L }; 1043561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1044561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String[] inputs = { 1045561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.0000000000001p-1022", 1046561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.00000000000010000000000000000001p-1022", 1047561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.0000000000001fffffffffffffffffffffffffffffffffp-1022", 1048561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.00000000000017p-1022", 1049561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.000000000000170000000000000000001p-1022", 1050561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.00000000000017fffffffffffffffffffffffffffffffffp-1022", 1051561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.00000000000018p-1022", 1052561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.000000000000180000000000000000001p-1022", 1053561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.00000000000018fffffffffffffffffffffffffffffffffp-1022", 1054561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.00000000000019p-1022", 1055561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.000000000000190000000000000000001p-1022", 1056561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.00000000000019fffffffffffffffffffffffffffffffffp-1022", 1057561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.0000000000001fp-1022", 1058561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.0000000000001f0000000000000000001p-1022", 1059561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.0000000000001ffffffffffffffffffffffffffffffffffp-1022", 1060561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1061561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.0000000000001p-1022", 1062561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.00000000000010000000000000000001p-1022", 1063561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.0000000000001fffffffffffffffffffffffffffffffffp-1022", 1064561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.00000000000017p-1022", 1065561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.000000000000170000000000000000001p-1022", 1066561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.00000000000017fffffffffffffffffffffffffffffffffp-1022", 1067561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.00000000000018p-1022", 1068561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.000000000000180000000000000000001p-1022", 1069561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.00000000000018fffffffffffffffffffffffffffffffffp-1022", 1070561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.00000000000019p-1022", 1071561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.000000000000190000000000000000001p-1022", 1072561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.00000000000019fffffffffffffffffffffffffffffffffp-1022", 1073561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.0000000000001fp-1022", 1074561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.0000000000001f0000000000000000001p-1022", 1075561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.0000000000001ffffffffffffffffffffffffffffffffffp-1022" }; 1076561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1077561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < inputs.length; i++) { 1078561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double actual = Double.parseDouble(inputs[i]); 1079561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double expected = Double.longBitsToDouble(expecteds[i]); 1080561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1081561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String expectedString = "0x" + Long.toHexString(Double.doubleToLongBits(expected)); 1082561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String actualString = "0x" + Long.toHexString(Double.doubleToLongBits(actual)); 1083561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String errorMsg = i + "th input string is:<" + inputs[i] 1084561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + ">.The expected result should be:<" + expectedString 1085561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + ">, but was: <" + actualString + ">. "; 1086561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1087561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(errorMsg, expected, actual, 0.0D); 1088561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1089561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1090561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1091561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1092561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#parseDouble(java.lang.String) 1093561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1094561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_parseDouble_LString_ZeroBoundary() { 1095561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes long[] expecteds = { 1096561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x0L, 0x0L, 0x0L, 1097561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1L, 0x1L, 0x1L, 1098561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x1L, 0x1L, 0x1L, 1099561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x8000000000000000L, 0x8000000000000000L, 0x8000000000000000L, 1100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x8000000000000001L, 0x8000000000000001L, 0x8000000000000001L, 1101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 0x8000000000000001L, 0x8000000000000001L, 0x8000000000000001L }; 1102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String[] inputs = { 1104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.00000000000004p-1022", 1105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.00000000000007ffffffffffffffffffffffp-1022", 1106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.00000000000008p-1022", 1107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.000000000000080000000000000000001p-1022", 1108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.00000000000008fffffffffffffffffffffffffffffffp-1022", 1109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.00000000000009p-1022", 1110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.000000000000090000000000000000001p-1022", 1111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.00000000000009fffffffffffffffffffffffffffffffffp-1022", 1112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "0x0.0000000000000fffffffffffffffffffffffffffffffffffp-1022", 1113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.00000000000004p-1022", 1115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.00000000000007ffffffffffffffffffffffp-1022", 1116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.00000000000008p-1022", 1117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.000000000000080000000000000000001p-1022", 1118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.00000000000008fffffffffffffffffffffffffffffffp-1022", 1119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.00000000000009p-1022", 1120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.000000000000090000000000000000001p-1022", 1121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.00000000000009fffffffffffffffffffffffffffffffffp-1022", 1122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes "-0x0.0000000000000fffffffffffffffffffffffffffffffffffp-1022" }; 1123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < inputs.length; i++) { 1125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double actual = Double.parseDouble(inputs[i]); 1126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double expected = Double.longBitsToDouble(expecteds[i]); 1127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String expectedString = "0x" + Long.toHexString(Double.doubleToLongBits(expected)); 1129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String actualString = "0x" + Long.toHexString(Double.doubleToLongBits(actual)); 1130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes String errorMsg = i + "th input string is:<" + inputs[i] 1131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + ">.The expected result should be:<" + expectedString 1132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes + ">, but was: <" + actualString + ">. "; 1133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(errorMsg, expected, actual, 0.0D); 1135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#shortValue() 1140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_shortValue() { 1142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method short java.lang.Double.shortValue() 1143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double d = new Double(1923311.47712); 1144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Returned incorrect short value", 22767, d.shortValue()); 1145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#toString() 1149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_toString() { 1151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.lang.String java.lang.Double.toString() 1152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(1.7976931348623157E308, "1.7976931348623157E308"); 1153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(5.0E-4, "5.0E-4"); 1154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#toString(double) 1158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_toStringD() { 1160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.lang.String java.lang.Double.toString(double) 1161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(1.7976931348623157E308, "1.7976931348623157E308"); 1162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(1.0 / 0.0, "Infinity"); 1163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(0.0 / 0.0, "NaN"); 1164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(-1.0 / 0.0, "-Infinity"); 1165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double d; 1167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x470fffffffffffffL); 1168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "2.0769187434139308E34"); 1169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x4710000000000000L); 1170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "2.076918743413931E34"); 1171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x470000000000000aL); 1173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "1.0384593717069678E34"); 1174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x470000000000000bL); 1175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "1.038459371706968E34"); 1176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x4700000000000017L); 1178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "1.0384593717069708E34"); 1179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x4700000000000018L); 1180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "1.038459371706971E34"); 1181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x4700000000000024L); 1183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "1.0384593717069738E34"); 1184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x4700000000000025L); 1185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "1.038459371706974E34"); 1186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x4700000000000031L); 1188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "1.0384593717069768E34"); 1189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x4700000000000032L); 1190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "1.038459371706977E34"); 1191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x470000000000003eL); 1193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "1.0384593717069798E34"); 1194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x470000000000003fL); 1195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "1.03845937170698E34"); 1196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x7e00000000000003L); 1198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "8.371160993642719E298"); 1199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x7e00000000000004L); 1200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "8.37116099364272E298"); 1201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x7e00000000000008L); 1203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "8.371160993642728E298"); 1204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x7e00000000000009L); 1205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "8.37116099364273E298"); 1206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x7e00000000000013L); 1208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "8.371160993642749E298"); 1209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x7e00000000000014L); 1210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "8.37116099364275E298"); 1211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x7e00000000000023L); 1213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "8.371160993642779E298"); 1214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x7e00000000000024L); 1215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "8.37116099364278E298"); 1216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x7e0000000000002eL); 1218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "8.371160993642799E298"); 1219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0x7e0000000000002fL); 1220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "8.3711609936428E298"); 1221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0xda00000000000001L); 1223561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "-3.3846065602060736E125"); 1224561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0xda00000000000002L); 1225561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "-3.384606560206074E125"); 1226561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1227561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0xda00000000000005L); 1228561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "-3.3846065602060766E125"); 1229561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0xda00000000000006L); 1230561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "-3.384606560206077E125"); 1231561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1232561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0xda00000000000009L); 1233561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "-3.3846065602060796E125"); 1234561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0xda0000000000000aL); 1235561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "-3.38460656020608E125"); 1236561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1237561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0xda0000000000000dL); 1238561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "-3.3846065602060826E125"); 1239561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes d = Double.longBitsToDouble(0xda0000000000000eL); 1240561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes test_toString(d, "-3.384606560206083E125"); 1241561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1242561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1243561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1244561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#valueOf(java.lang.String) 1245561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1246561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_valueOfLjava_lang_String() { 1247561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test for method java.lang.Double 1248561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // java.lang.Double.valueOf(java.lang.String) 1249561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Incorrect double returned", Math.abs(Double.valueOf("999999999999.999") 1250561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .doubleValue() - 999999999999.999d) < 1); 1251561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1252561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1253561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.valueOf(null); 1254561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected Double.valueOf(null) to throw NPE."); 1255561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException ex) { 1256561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 1257561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1258561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1259561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1260561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.valueOf(""); 1261561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("Expected Double.valueOf(\"\") to throw NFE"); 1262561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NumberFormatException e) { 1263561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // expected 1264561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1265561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1266561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double pi = Double.valueOf("3.141592654"); 1267561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(3.141592654, pi.doubleValue(), 0D); 1268561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1269561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double posZero = Double.valueOf("+0.0"); 1270561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double negZero = Double.valueOf("-0.0"); 1271561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertFalse("Doubletest0", posZero.equals(negZero)); 1272561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1273561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Tests for double values by name. 1274561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double expectedNaN = new Double(Double.NaN); 1275561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1276561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double posNaN = Double.valueOf("NaN"); 1277561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Doubletest1", posNaN.equals(expectedNaN)); 1278561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1279561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double posNaNSigned = Double.valueOf("+NaN"); 1280561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Doubletest2", posNaNSigned.equals(expectedNaN)); 1281561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1282561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double negNaNSigned = Double.valueOf("-NaN"); 1283561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Doubletest3", negNaNSigned.equals(expectedNaN)); 1284561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1285561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double posInfinite = Double.valueOf("Infinity"); 1286561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Doubletest4", posInfinite.equals(new Double(Double.POSITIVE_INFINITY))); 1287561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1288561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double posInfiniteSigned = Double.valueOf("+Infinity"); 1289561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Doubletest5", posInfiniteSigned 1290561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(new Double(Double.POSITIVE_INFINITY))); 1291561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1292561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double negInfiniteSigned = Double.valueOf("-Infinity"); 1293561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Doubletest6", negInfiniteSigned 1294561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(new Double(Double.NEGATIVE_INFINITY))); 1295561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1296561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1297561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1298561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#compareTo(java.lang.Double) 1299561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#compare(double, double) 1300561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1301561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_compareToLjava_lang_Double() { 1302561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // A selection of double values in ascending order. 1303561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double[] values = new double[] { Double.NEGATIVE_INFINITY, -Double.MAX_VALUE, -2d, 1304561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes -Double.MIN_VALUE, -0d, 0d, Double.MIN_VALUE, 2d, Double.MAX_VALUE, 1305561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.POSITIVE_INFINITY, Double.NaN }; 1306561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int i = 0; i < values.length; i++) { 1307561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double d1 = values[i]; 1308561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1309561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test that each value compares equal to itself; and each object is 1310561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // equal to another object like itself. 1311561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Assert 0: compare() should be equal: " + d1, 1312561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.compare(d1, d1) == 0); 1313561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double objDouble = new Double(d1); 1314561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Assert 1: compareTo() should be equal: " + d1, objDouble 1315561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .compareTo(objDouble) == 0); 1316561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1317561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // Test that the Double-defined order is respected 1318561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes for (int j = i + 1; j < values.length; j++) { 1319561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes double d2 = values[j]; 1320561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Assert 2: compare() " + d1 + " should be less " + d2, Double 1321561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .compare(d1, d2) == -1); 1322561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Assert 3: compare() " + d2 + " should be greater " + d1, Double 1323561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .compare(d2, d1) == 1); 1324561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double D2 = new Double(d2); 1325561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Assert 4: compareTo() " + d1 + " should be less " + d2, objDouble 1326561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .compareTo(D2) == -1); 1327561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Assert 5: compareTo() " + d2 + " should be greater " + d1, D2 1328561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .compareTo(objDouble) == 1); 1329561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1330561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1331561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1332561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes try { 1333561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes new Double(0.0D).compareTo(null); 1334561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes fail("No NPE"); 1335561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } catch (NullPointerException e) { 1336561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1337561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1338561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1339561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1340561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#equals(java.lang.Object) 1341561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1342561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_equalsLjava_lang_Object() { 1343561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double d1 = new Double(87654321.12345d); 1344561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double d2 = new Double(87654321.12345d); 1345561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double d3 = new Double(0.0002f); 1346561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Assert 0: Equality test failed", d1.equals(d2) && !(d1.equals(d3))); 1347561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1348561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Assert 2: NaN should not be == Nan", Double.NaN != Double.NaN); 1349561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Assert 3: NaN should not be == Nan", new Double(Double.NaN) 1350561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(new Double(Double.NaN))); 1351561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Assert 4: -0d should be == 0d", 0d == -0d); 1352561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Assert 5: -0d should not be equals() 0d", !new Double(0d) 1353561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .equals(new Double(-0d))); 1354561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1355561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double dmax = new Double(Double.MAX_VALUE); 1356561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double dmax1 = new Double(Double.MAX_VALUE); 1357561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1358561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Equality test failed", dmax.equals(dmax1) && !(dmax.equals(new Object()))); 1359561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1360561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1361561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1362561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#toHexString(double) 1363561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1364561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_toHexStringF() { 1365561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // the follow values come from the Double Javadoc/Spec 1366561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("0x0.0p0", Double.toHexString(0.0D)); 1367561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("-0x0.0p0", Double.toHexString(-0.0D)); 1368561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("0x1.0p0", Double.toHexString(1.0D)); 1369561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("-0x1.0p0", Double.toHexString(-1.0D)); 1370561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("0x1.0p1", Double.toHexString(2.0D)); 1371561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("0x1.8p1", Double.toHexString(3.0D)); 1372561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("0x1.0p-1", Double.toHexString(0.5D)); 1373561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("0x1.0p-2", Double.toHexString(0.25D)); 1374561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("0x1.fffffffffffffp1023", Double.toHexString(Double.MAX_VALUE)); 1375561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("0x0.0000000000001p-1022", Double.toHexString(Double.MIN_VALUE)); 1376561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1377561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test edge cases 1378561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("NaN", Double.toHexString(Double.NaN)); 1379561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("-Infinity", Double.toHexString(Double.NEGATIVE_INFINITY)); 1380561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("Infinity", Double.toHexString(Double.POSITIVE_INFINITY)); 1381561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1382561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test various numbers 1383561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("-0x1.da8p6", Double.toHexString(-118.625D)); 1384561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("0x1.2957874cccccdp23", Double.toHexString(9743299.65D)); 1385561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("0x1.2957874cccccdp23", Double.toHexString(9743299.65000D)); 1386561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("0x1.2957874cccf63p23", Double.toHexString(9743299.650001234D)); 1387561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("0x1.700d1061d3333p33", Double.toHexString(12349743299.65000D)); 1388561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1389561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes // test HARMONY-2132 1390561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals("0x1.01p10", Double.toHexString(0x1.01p10)); 1391561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1392561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1393561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1394561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests java.lang.Double#valueOf(double) 1395561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1396561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_valueOfD() { 1397561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(new Double(Double.MIN_VALUE), Double.valueOf(Double.MIN_VALUE)); 1398561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(new Double(Double.MAX_VALUE), Double.valueOf(Double.MAX_VALUE)); 1399561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(new Double(0), Double.valueOf(0)); 1400561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1401561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes int s = -128; 1402561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes while (s < 128) { 1403561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(new Double(s), Double.valueOf(s)); 1404561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertEquals(new Double(s + 0.1D), Double.valueOf(s + 0.1D)); 1405561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes s++; 1406561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1407561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1408561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1409561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1410561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests {@link java.lang.Double#MAX_EXPONENT} 1411561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @since 1.6 1412561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1413561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_MAX_EXPONENT() { 1414561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong value of java.lang.Double.MAX_EXPONENT", 1415561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.MAX_EXPONENT == 1023); 1416561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong value of java.lang.Double.MAX_EXPONENT", 1417561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.MAX_EXPONENT == Math.getExponent(Double.MAX_VALUE)); 1418561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1419561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1420561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1421561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests {@link java.lang.Double#MIN_EXPONENT} 1422561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @since 1.6 1423561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1424561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_MIN_EXPONENT() { 1425561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong value of java.lang.Double.MIN_EXPONENT", 1426561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.MIN_EXPONENT == -1022); 1427561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong value of java.lang.Double.MIN_EXPONENT", 1428561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.MIN_EXPONENT == Math.getExponent(Double.MIN_NORMAL)); 1429561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1430561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes 1431561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes /** 1432561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @tests {@link java.lang.Double#MIN_NORMAL} 1433561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * @since 1.6 1434561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */ 1435561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes public void test_MIN_NORMAL() { 1436561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong value of java.lang.Double.MIN_NORMAL", 1437561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.MIN_NORMAL == 0x1.0p-1022); 1438561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong value of java.lang.Double.MIN_NORMAL", 1439561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.MIN_NORMAL == Double 1440561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes .longBitsToDouble(0x0010000000000000L)); 1441561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes assertTrue("Wrong value of java.lang.Double.MIN_NORMAL", 1442561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes Double.MIN_NORMAL == 2.2250738585072014E-308); 1443561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes } 1444561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes} 1445