test/nashorn/src/jdk/nashorn/internal/runtime/doubleconv/test/FixedDtoaTest.java
author hannesw
Thu, 11 Jul 2019 17:11:54 +0200
changeset 55665 70b1c1bec669
parent 47216 71c04702a3d5
permissions -rw-r--r--
8227391: Update double-conversion to version 3.1.5 Reviewed-by: attila
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33689
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
     1
/*
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
     2
 * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
     4
 *
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
     7
 * published by the Free Software Foundation.  Oracle designates this
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
     8
 * particular file as subject to the "Classpath" exception as provided
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
     9
 * by Oracle in the LICENSE file that accompanied this code.
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    10
 *
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    11
 * This code is distributed in the hope that it will be useful, but WITHOUT
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    14
 * version 2 for more details (a copy is included in the LICENSE file that
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    15
 * accompanied this code).
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    16
 *
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    17
 * You should have received a copy of the GNU General Public License version
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    18
 * 2 along with this work; if not, write to the Free Software Foundation,
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    20
 *
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    22
 * or visit www.oracle.com if you need additional information or have any
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    23
 * questions.
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    24
 */
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    25
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    26
// This file is available under and governed by the GNU General Public
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    27
// License version 2 only, as published by the Free Software Foundation.
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    28
// However, the following notice accompanied the original version of this
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    29
// file:
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    30
//
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    31
// Copyright 2010 the V8 project authors. All rights reserved.
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    32
// Redistribution and use in source and binary forms, with or without
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    33
// modification, are permitted provided that the following conditions are
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    34
// met:
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    35
//
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    36
//     * Redistributions of source code must retain the above copyright
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    37
//       notice, this list of conditions and the following disclaimer.
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    38
//     * Redistributions in binary form must reproduce the above
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    39
//       copyright notice, this list of conditions and the following
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    40
//       disclaimer in the documentation and/or other materials provided
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    41
//       with the distribution.
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    42
//     * Neither the name of Google Inc. nor the names of its
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    43
//       contributors may be used to endorse or promote products derived
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    44
//       from this software without specific prior written permission.
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    45
//
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    46
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    47
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    48
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    49
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    50
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    51
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    52
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    53
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    54
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    55
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    56
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    57
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    58
package jdk.nashorn.internal.runtime.doubleconv.test;
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    59
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    60
import java.io.BufferedReader;
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    61
import java.io.InputStreamReader;
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    62
import java.util.concurrent.atomic.AtomicInteger;
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    63
import jdk.nashorn.internal.runtime.doubleconv.DoubleConversion;
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    64
import jdk.nashorn.internal.runtime.doubleconv.DtoaBuffer;
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    65
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    66
import org.testng.annotations.Test;
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    67
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    68
import static org.testng.Assert.assertEquals;
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    69
import static org.testng.Assert.assertTrue;
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    70
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    71
/**
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    72
 * FixedDtoa tests
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    73
 */
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    74
@SuppressWarnings("javadoc")
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    75
public class FixedDtoaTest {
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    76
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    77
    static final int kBufferSize = 500;
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    78
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    79
    @Test
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    80
    public void testFastShortestVarious() {
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    81
        final DtoaBuffer buffer = new DtoaBuffer(kBufferSize);
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    82
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    83
        assertTrue(DoubleConversion.fixedDtoa(1.0, 1, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    84
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    85
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    86
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    87
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    88
        assertTrue(DoubleConversion.fixedDtoa(1.0, 15, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    89
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    90
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    91
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    92
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    93
        assertTrue(DoubleConversion.fixedDtoa(1.0, 0, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    94
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    95
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    96
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    97
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    98
        assertTrue(DoubleConversion.fixedDtoa(0xFFFFFFFFL, 5, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
    99
        assertEquals("4294967295", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   100
        assertEquals(10, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   101
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   102
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   103
        assertTrue(DoubleConversion.fixedDtoa(4294967296.0, 5, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   104
        assertEquals("4294967296", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   105
        assertEquals(10, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   106
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   107
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   108
        assertTrue(DoubleConversion.fixedDtoa(1e21, 5, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   109
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   110
        assertEquals(22, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   111
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   112
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   113
        assertTrue(DoubleConversion.fixedDtoa(999999999999999868928.00, 2, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   114
        assertEquals("999999999999999868928", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   115
        assertEquals(21, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   116
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   117
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   118
        assertTrue(DoubleConversion.fixedDtoa(6.9999999999999989514240000e+21, 5, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   119
        assertEquals("6999999999999998951424", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   120
        assertEquals(22, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   121
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   122
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   123
        assertTrue(DoubleConversion.fixedDtoa(1.5, 5, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   124
        assertEquals("15", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   125
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   126
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   127
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   128
        assertTrue(DoubleConversion.fixedDtoa(1.55, 5, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   129
        assertEquals("155", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   130
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   131
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   132
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   133
        assertTrue(DoubleConversion.fixedDtoa(1.55, 1, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   134
        assertEquals("16", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   135
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   136
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   137
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   138
        assertTrue(DoubleConversion.fixedDtoa(1.00000001, 15, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   139
        assertEquals("100000001", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   140
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   141
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   142
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   143
        assertTrue(DoubleConversion.fixedDtoa(0.1, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   144
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   145
        assertEquals(0, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   146
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   147
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   148
        assertTrue(DoubleConversion.fixedDtoa(0.01, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   149
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   150
        assertEquals(-1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   151
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   152
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   153
        assertTrue(DoubleConversion.fixedDtoa(0.001, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   154
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   155
        assertEquals(-2, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   156
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   157
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   158
        assertTrue(DoubleConversion.fixedDtoa(0.0001, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   159
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   160
        assertEquals(-3, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   161
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   162
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   163
        assertTrue(DoubleConversion.fixedDtoa(0.00001, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   164
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   165
        assertEquals(-4, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   166
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   167
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   168
        assertTrue(DoubleConversion.fixedDtoa(0.000001, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   169
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   170
        assertEquals(-5, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   171
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   172
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   173
        assertTrue(DoubleConversion.fixedDtoa(0.0000001, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   174
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   175
        assertEquals(-6, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   176
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   177
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   178
        assertTrue(DoubleConversion.fixedDtoa(0.00000001, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   179
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   180
        assertEquals(-7, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   181
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   182
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   183
        assertTrue(DoubleConversion.fixedDtoa(0.000000001, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   184
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   185
        assertEquals(-8, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   186
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   187
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   188
        assertTrue(DoubleConversion.fixedDtoa(0.0000000001, 15, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   189
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   190
        assertEquals(-9, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   191
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   192
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   193
        assertTrue(DoubleConversion.fixedDtoa(0.00000000001, 15, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   194
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   195
        assertEquals(-10, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   196
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   197
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   198
        assertTrue(DoubleConversion.fixedDtoa(0.000000000001, 15, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   199
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   200
        assertEquals(-11, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   201
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   202
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   203
        assertTrue(DoubleConversion.fixedDtoa(0.0000000000001, 15, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   204
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   205
        assertEquals(-12, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   206
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   207
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   208
        assertTrue(DoubleConversion.fixedDtoa(0.00000000000001, 15, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   209
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   210
        assertEquals(-13, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   211
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   212
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   213
        assertTrue(DoubleConversion.fixedDtoa(0.000000000000001, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   214
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   215
        assertEquals(-14, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   216
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   217
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   218
        assertTrue(DoubleConversion.fixedDtoa(0.0000000000000001, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   219
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   220
        assertEquals(-15, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   221
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   222
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   223
        assertTrue(DoubleConversion.fixedDtoa(0.00000000000000001, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   224
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   225
        assertEquals(-16, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   226
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   227
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   228
        assertTrue(DoubleConversion.fixedDtoa(0.000000000000000001, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   229
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   230
        assertEquals(-17, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   231
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   232
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   233
        assertTrue(DoubleConversion.fixedDtoa(0.0000000000000000001, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   234
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   235
        assertEquals(-18, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   236
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   237
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   238
        assertTrue(DoubleConversion.fixedDtoa(0.00000000000000000001, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   239
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   240
        assertEquals(-19, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   241
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   242
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   243
        assertTrue(DoubleConversion.fixedDtoa(0.10000000004, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   244
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   245
        assertEquals(0, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   246
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   247
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   248
        assertTrue(DoubleConversion.fixedDtoa(0.01000000004, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   249
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   250
        assertEquals(-1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   251
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   252
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   253
        assertTrue(DoubleConversion.fixedDtoa(0.00100000004, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   254
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   255
        assertEquals(-2, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   256
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   257
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   258
        assertTrue(DoubleConversion.fixedDtoa(0.00010000004, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   259
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   260
        assertEquals(-3, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   261
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   262
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   263
        assertTrue(DoubleConversion.fixedDtoa(0.00001000004, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   264
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   265
        assertEquals(-4, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   266
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   267
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   268
        assertTrue(DoubleConversion.fixedDtoa(0.00000100004, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   269
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   270
        assertEquals(-5, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   271
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   272
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   273
        assertTrue(DoubleConversion.fixedDtoa(0.00000010004, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   274
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   275
        assertEquals(-6, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   276
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   277
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   278
        assertTrue(DoubleConversion.fixedDtoa(0.00000001004, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   279
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   280
        assertEquals(-7, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   281
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   282
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   283
        assertTrue(DoubleConversion.fixedDtoa(0.00000000104, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   284
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   285
        assertEquals(-8, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   286
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   287
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   288
        assertTrue(DoubleConversion.fixedDtoa(0.0000000001000004, 15, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   289
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   290
        assertEquals(-9, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   291
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   292
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   293
        assertTrue(DoubleConversion.fixedDtoa(0.0000000000100004, 15, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   294
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   295
        assertEquals(-10, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   296
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   297
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   298
        assertTrue(DoubleConversion.fixedDtoa(0.0000000000010004, 15, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   299
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   300
        assertEquals(-11, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   301
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   302
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   303
        assertTrue(DoubleConversion.fixedDtoa(0.0000000000001004, 15, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   304
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   305
        assertEquals(-12, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   306
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   307
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   308
        assertTrue(DoubleConversion.fixedDtoa(0.0000000000000104, 15, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   309
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   310
        assertEquals(-13, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   311
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   312
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   313
        assertTrue(DoubleConversion.fixedDtoa(0.000000000000001000004, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   314
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   315
        assertEquals(-14, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   316
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   317
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   318
        assertTrue(DoubleConversion.fixedDtoa(0.000000000000000100004, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   319
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   320
        assertEquals(-15, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   321
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   322
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   323
        assertTrue(DoubleConversion.fixedDtoa(0.000000000000000010004, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   324
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   325
        assertEquals(-16, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   326
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   327
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   328
        assertTrue(DoubleConversion.fixedDtoa(0.000000000000000001004, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   329
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   330
        assertEquals(-17, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   331
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   332
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   333
        assertTrue(DoubleConversion.fixedDtoa(0.000000000000000000104, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   334
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   335
        assertEquals(-18, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   336
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   337
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   338
        assertTrue(DoubleConversion.fixedDtoa(0.000000000000000000014, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   339
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   340
        assertEquals(-19, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   341
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   342
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   343
        assertTrue(DoubleConversion.fixedDtoa(0.10000000006, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   344
        assertEquals("1000000001", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   345
        assertEquals(0, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   346
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   347
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   348
        assertTrue(DoubleConversion.fixedDtoa(0.01000000006, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   349
        assertEquals("100000001", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   350
        assertEquals(-1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   351
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   352
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   353
        assertTrue(DoubleConversion.fixedDtoa(0.00100000006, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   354
        assertEquals("10000001", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   355
        assertEquals(-2, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   356
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   357
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   358
        assertTrue(DoubleConversion.fixedDtoa(0.00010000006, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   359
        assertEquals("1000001", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   360
        assertEquals(-3, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   361
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   362
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   363
        assertTrue(DoubleConversion.fixedDtoa(0.00001000006, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   364
        assertEquals("100001", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   365
        assertEquals(-4, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   366
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   367
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   368
        assertTrue(DoubleConversion.fixedDtoa(0.00000100006, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   369
        assertEquals("10001", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   370
        assertEquals(-5, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   371
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   372
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   373
        assertTrue(DoubleConversion.fixedDtoa(0.00000010006, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   374
        assertEquals("1001", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   375
        assertEquals(-6, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   376
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   377
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   378
        assertTrue(DoubleConversion.fixedDtoa(0.00000001006, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   379
        assertEquals("101", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   380
        assertEquals(-7, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   381
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   382
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   383
        assertTrue(DoubleConversion.fixedDtoa(0.00000000106, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   384
        assertEquals("11", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   385
        assertEquals(-8, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   386
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   387
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   388
        assertTrue(DoubleConversion.fixedDtoa(0.0000000001000006, 15, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   389
        assertEquals("100001", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   390
        assertEquals(-9, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   391
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   392
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   393
        assertTrue(DoubleConversion.fixedDtoa(0.0000000000100006, 15, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   394
        assertEquals("10001", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   395
        assertEquals(-10, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   396
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   397
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   398
        assertTrue(DoubleConversion.fixedDtoa(0.0000000000010006, 15, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   399
        assertEquals("1001", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   400
        assertEquals(-11, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   401
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   402
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   403
        assertTrue(DoubleConversion.fixedDtoa(0.0000000000001006, 15, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   404
        assertEquals("101", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   405
        assertEquals(-12, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   406
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   407
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   408
        assertTrue(DoubleConversion.fixedDtoa(0.0000000000000106, 15, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   409
        assertEquals("11", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   410
        assertEquals(-13, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   411
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   412
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   413
        assertTrue(DoubleConversion.fixedDtoa(0.000000000000001000006, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   414
        assertEquals("100001", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   415
        assertEquals(-14, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   416
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   417
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   418
        assertTrue(DoubleConversion.fixedDtoa(0.000000000000000100006, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   419
        assertEquals("10001", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   420
        assertEquals(-15, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   421
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   422
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   423
        assertTrue(DoubleConversion.fixedDtoa(0.000000000000000010006, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   424
        assertEquals("1001", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   425
        assertEquals(-16, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   426
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   427
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   428
        assertTrue(DoubleConversion.fixedDtoa(0.000000000000000001006, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   429
        assertEquals("101", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   430
        assertEquals(-17, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   431
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   432
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   433
        assertTrue(DoubleConversion.fixedDtoa(0.000000000000000000106, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   434
        assertEquals("11", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   435
        assertEquals(-18, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   436
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   437
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   438
        assertTrue(DoubleConversion.fixedDtoa(0.000000000000000000016, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   439
        assertEquals("2", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   440
        assertEquals(-19, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   441
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   442
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   443
        assertTrue(DoubleConversion.fixedDtoa(0.6, 0, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   444
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   445
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   446
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   447
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   448
        assertTrue(DoubleConversion.fixedDtoa(0.96, 1, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   449
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   450
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   451
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   452
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   453
        assertTrue(DoubleConversion.fixedDtoa(0.996, 2, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   454
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   455
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   456
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   457
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   458
        assertTrue(DoubleConversion.fixedDtoa(0.9996, 3, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   459
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   460
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   461
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   462
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   463
        assertTrue(DoubleConversion.fixedDtoa(0.99996, 4, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   464
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   465
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   466
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   467
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   468
        assertTrue(DoubleConversion.fixedDtoa(0.999996, 5, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   469
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   470
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   471
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   472
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   473
        assertTrue(DoubleConversion.fixedDtoa(0.9999996, 6, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   474
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   475
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   476
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   477
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   478
        assertTrue(DoubleConversion.fixedDtoa(0.99999996, 7, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   479
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   480
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   481
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   482
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   483
        assertTrue(DoubleConversion.fixedDtoa(0.999999996, 8, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   484
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   485
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   486
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   487
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   488
        assertTrue(DoubleConversion.fixedDtoa(0.9999999996, 9, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   489
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   490
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   491
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   492
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   493
        assertTrue(DoubleConversion.fixedDtoa(0.99999999996, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   494
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   495
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   496
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   497
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   498
        assertTrue(DoubleConversion.fixedDtoa(0.999999999996, 11, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   499
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   500
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   501
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   502
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   503
        assertTrue(DoubleConversion.fixedDtoa(0.9999999999996, 12, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   504
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   505
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   506
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   507
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   508
        assertTrue(DoubleConversion.fixedDtoa(0.99999999999996, 13, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   509
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   510
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   511
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   512
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   513
        assertTrue(DoubleConversion.fixedDtoa(0.999999999999996, 14, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   514
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   515
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   516
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   517
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   518
        assertTrue(DoubleConversion.fixedDtoa(0.9999999999999996, 15, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   519
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   520
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   521
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   522
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   523
        assertTrue(DoubleConversion.fixedDtoa(0.00999999999999996, 16, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   524
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   525
        assertEquals(-1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   526
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   527
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   528
        assertTrue(DoubleConversion.fixedDtoa(0.000999999999999996, 17, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   529
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   530
        assertEquals(-2, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   531
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   532
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   533
        assertTrue(DoubleConversion.fixedDtoa(0.0000999999999999996, 18, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   534
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   535
        assertEquals(-3, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   536
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   537
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   538
        assertTrue(DoubleConversion.fixedDtoa(0.00000999999999999996, 19, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   539
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   540
        assertEquals(-4, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   541
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   542
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   543
        assertTrue(DoubleConversion.fixedDtoa(0.000000999999999999996, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   544
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   545
        assertEquals(-5, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   546
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   547
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   548
        assertTrue(DoubleConversion.fixedDtoa(323423.234234, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   549
        assertEquals("323423234234", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   550
        assertEquals(6, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   551
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   552
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   553
        assertTrue(DoubleConversion.fixedDtoa(12345678.901234, 4, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   554
        assertEquals("123456789012", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   555
        assertEquals(8, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   556
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   557
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   558
        assertTrue(DoubleConversion.fixedDtoa(98765.432109, 5, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   559
        assertEquals("9876543211", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   560
        assertEquals(5, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   561
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   562
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   563
        assertTrue(DoubleConversion.fixedDtoa(42, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   564
        assertEquals("42", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   565
        assertEquals(2, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   566
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   567
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   568
        assertTrue(DoubleConversion.fixedDtoa(0.5, 0, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   569
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   570
        assertEquals(1, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   571
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   572
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   573
        assertTrue(DoubleConversion.fixedDtoa(1e-23, 10, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   574
        assertEquals("", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   575
        assertEquals(-10, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   576
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   577
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   578
        assertTrue(DoubleConversion.fixedDtoa(1e-123, 2, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   579
        assertEquals("", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   580
        assertEquals(-2, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   581
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   582
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   583
        assertTrue(DoubleConversion.fixedDtoa(1e-123, 0, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   584
        assertEquals("", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   585
        assertEquals(0, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   586
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   587
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   588
        assertTrue(DoubleConversion.fixedDtoa(1e-23, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   589
        assertEquals("", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   590
        assertEquals(-20, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   591
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   592
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   593
        assertTrue(DoubleConversion.fixedDtoa(1e-21, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   594
        assertEquals("", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   595
        assertEquals(-20, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   596
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   597
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   598
        assertTrue(DoubleConversion.fixedDtoa(1e-22, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   599
        assertEquals("", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   600
        assertEquals(-20, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   601
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   602
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   603
        assertTrue(DoubleConversion.fixedDtoa(6e-21, 20, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   604
        assertEquals("1", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   605
        assertEquals(-19, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   606
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   607
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   608
        assertTrue(DoubleConversion.fixedDtoa(9.1193616301674545152000000e+19, 0, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   609
        assertEquals("91193616301674545152", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   610
        assertEquals(20, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   611
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   612
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   613
        assertTrue(DoubleConversion.fixedDtoa(4.8184662102767651659096515e-04, 19, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   614
        assertEquals("4818466210276765", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   615
        assertEquals(-3, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   616
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   617
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   618
        assertTrue(DoubleConversion.fixedDtoa(1.9023164229540652612705182e-23, 8, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   619
        assertEquals("", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   620
        assertEquals(-8, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   621
        buffer.reset();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   622
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   623
        assertTrue(DoubleConversion.fixedDtoa(1000000000000000128.0, 0, buffer));
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   624
        assertEquals("1000000000000000128", buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   625
        assertEquals(19, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   626
        buffer.reset();
55665
70b1c1bec669 8227391: Update double-conversion to version 3.1.5
hannesw
parents: 47216
diff changeset
   627
70b1c1bec669 8227391: Update double-conversion to version 3.1.5
hannesw
parents: 47216
diff changeset
   628
        assertTrue(DoubleConversion.fixedDtoa(2.10861548515811875e+15, 17, buffer));
70b1c1bec669 8227391: Update double-conversion to version 3.1.5
hannesw
parents: 47216
diff changeset
   629
        assertEquals("210861548515811875", buffer.getRawDigits());
70b1c1bec669 8227391: Update double-conversion to version 3.1.5
hannesw
parents: 47216
diff changeset
   630
        assertEquals(16, buffer.getDecimalPoint());
70b1c1bec669 8227391: Update double-conversion to version 3.1.5
hannesw
parents: 47216
diff changeset
   631
        buffer.reset();
33689
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   632
    }
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   633
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   634
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   635
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   636
    @Test
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   637
    public void testFastFixed() {
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   638
        final AtomicInteger total = new AtomicInteger();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   639
        final AtomicInteger succeeded = new AtomicInteger();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   640
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   641
        new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("resources/gay-fixed.txt")))
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   642
                .lines()
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   643
                .forEach(line -> {
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   644
                    if (line.isEmpty() || line.startsWith("//")) {
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   645
                        return; // comment or empty line
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   646
                    }
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   647
                    final String[] tokens = line.split(",\\s+");
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   648
                    assertEquals(tokens.length, 4);
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   649
                    final double v = Double.parseDouble(tokens[0]);
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   650
                    final int digits = Integer.parseInt(tokens[1]);
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   651
                    final String str = tokens[2].replace('"', ' ').trim();;
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   652
                    final int point = Integer.parseInt(tokens[3]);
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   653
                    final DtoaBuffer buffer = new DtoaBuffer(kBufferSize);
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   654
                    total.getAndIncrement();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   655
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   656
                    if (DoubleConversion.fixedDtoa(v, digits, buffer)) {
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   657
                        assertEquals(str, buffer.getRawDigits());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   658
                        assertEquals(point, buffer.getDecimalPoint());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   659
                        succeeded.getAndIncrement();
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   660
                    }
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   661
                });
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   662
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   663
        // should work for all numbers
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   664
        assertEquals(succeeded.get(), total.get());
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   665
    }
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   666
a42cdb474da0 8010803: Number to String conversion functionality overhaul
hannesw
parents:
diff changeset
   667
}