xref: /aosp_15_r20/external/double-conversion/test/cctest/test-fixed-dtoa.cc (revision a6021da3bd53a1cb979b0905bbb837249345d1b1)
1*a6021da3SAndroid Build Coastguard Worker // Copyright 2010 the V8 project authors. All rights reserved.
2*a6021da3SAndroid Build Coastguard Worker // Redistribution and use in source and binary forms, with or without
3*a6021da3SAndroid Build Coastguard Worker // modification, are permitted provided that the following conditions are
4*a6021da3SAndroid Build Coastguard Worker // met:
5*a6021da3SAndroid Build Coastguard Worker //
6*a6021da3SAndroid Build Coastguard Worker //     * Redistributions of source code must retain the above copyright
7*a6021da3SAndroid Build Coastguard Worker //       notice, this list of conditions and the following disclaimer.
8*a6021da3SAndroid Build Coastguard Worker //     * Redistributions in binary form must reproduce the above
9*a6021da3SAndroid Build Coastguard Worker //       copyright notice, this list of conditions and the following
10*a6021da3SAndroid Build Coastguard Worker //       disclaimer in the documentation and/or other materials provided
11*a6021da3SAndroid Build Coastguard Worker //       with the distribution.
12*a6021da3SAndroid Build Coastguard Worker //     * Neither the name of Google Inc. nor the names of its
13*a6021da3SAndroid Build Coastguard Worker //       contributors may be used to endorse or promote products derived
14*a6021da3SAndroid Build Coastguard Worker //       from this software without specific prior written permission.
15*a6021da3SAndroid Build Coastguard Worker //
16*a6021da3SAndroid Build Coastguard Worker // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17*a6021da3SAndroid Build Coastguard Worker // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18*a6021da3SAndroid Build Coastguard Worker // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19*a6021da3SAndroid Build Coastguard Worker // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20*a6021da3SAndroid Build Coastguard Worker // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21*a6021da3SAndroid Build Coastguard Worker // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22*a6021da3SAndroid Build Coastguard Worker // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23*a6021da3SAndroid Build Coastguard Worker // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24*a6021da3SAndroid Build Coastguard Worker // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25*a6021da3SAndroid Build Coastguard Worker // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26*a6021da3SAndroid Build Coastguard Worker // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27*a6021da3SAndroid Build Coastguard Worker 
28*a6021da3SAndroid Build Coastguard Worker #include <stdlib.h>
29*a6021da3SAndroid Build Coastguard Worker 
30*a6021da3SAndroid Build Coastguard Worker 
31*a6021da3SAndroid Build Coastguard Worker #include "cctest.h"
32*a6021da3SAndroid Build Coastguard Worker #include "double-conversion/fixed-dtoa.h"
33*a6021da3SAndroid Build Coastguard Worker #include "gay-fixed.h"
34*a6021da3SAndroid Build Coastguard Worker #include "double-conversion/ieee.h"
35*a6021da3SAndroid Build Coastguard Worker #include "double-conversion/utils.h"
36*a6021da3SAndroid Build Coastguard Worker 
37*a6021da3SAndroid Build Coastguard Worker using namespace double_conversion;
38*a6021da3SAndroid Build Coastguard Worker 
39*a6021da3SAndroid Build Coastguard Worker static const int kBufferSize = 500;
40*a6021da3SAndroid Build Coastguard Worker 
TEST(FastFixedVariousDoubles)41*a6021da3SAndroid Build Coastguard Worker TEST(FastFixedVariousDoubles) {
42*a6021da3SAndroid Build Coastguard Worker   char buffer_container[kBufferSize];
43*a6021da3SAndroid Build Coastguard Worker   Vector<char> buffer(buffer_container, kBufferSize);
44*a6021da3SAndroid Build Coastguard Worker   int length;
45*a6021da3SAndroid Build Coastguard Worker   int point;
46*a6021da3SAndroid Build Coastguard Worker 
47*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(1.0, 1, buffer, &length, &point));
48*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
49*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
50*a6021da3SAndroid Build Coastguard Worker 
51*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(1.0, 15, buffer, &length, &point));
52*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
53*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
54*a6021da3SAndroid Build Coastguard Worker 
55*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(1.0, 0, buffer, &length, &point));
56*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
57*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
58*a6021da3SAndroid Build Coastguard Worker 
59*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0xFFFFFFFF, 5, buffer, &length, &point));
60*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("4294967295", buffer.start());
61*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(10, point);
62*a6021da3SAndroid Build Coastguard Worker 
63*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(4294967296.0, 5, buffer, &length, &point));
64*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("4294967296", buffer.start());
65*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(10, point);
66*a6021da3SAndroid Build Coastguard Worker 
67*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(1e21, 5, buffer, &length, &point));
68*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
69*a6021da3SAndroid Build Coastguard Worker   // CHECK_EQ(22, point);
70*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(22, point);
71*a6021da3SAndroid Build Coastguard Worker 
72*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(999999999999999868928.00, 2, buffer, &length, &point));
73*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("999999999999999868928", buffer.start());
74*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(21, point);
75*a6021da3SAndroid Build Coastguard Worker 
76*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(6.9999999999999989514240000e+21, 5, buffer,
77*a6021da3SAndroid Build Coastguard Worker                       &length, &point));
78*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("6999999999999998951424", buffer.start());
79*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(22, point);
80*a6021da3SAndroid Build Coastguard Worker 
81*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(1.5, 5, buffer, &length, &point));
82*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("15", buffer.start());
83*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
84*a6021da3SAndroid Build Coastguard Worker 
85*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(1.55, 5, buffer, &length, &point));
86*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("155", buffer.start());
87*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
88*a6021da3SAndroid Build Coastguard Worker 
89*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(1.55, 1, buffer, &length, &point));
90*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("16", buffer.start());
91*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
92*a6021da3SAndroid Build Coastguard Worker 
93*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(1.00000001, 15, buffer, &length, &point));
94*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("100000001", buffer.start());
95*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
96*a6021da3SAndroid Build Coastguard Worker 
97*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.1, 10, buffer, &length, &point));
98*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
99*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(0, point);
100*a6021da3SAndroid Build Coastguard Worker 
101*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.01, 10, buffer, &length, &point));
102*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
103*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-1, point);
104*a6021da3SAndroid Build Coastguard Worker 
105*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.001, 10, buffer, &length, &point));
106*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
107*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-2, point);
108*a6021da3SAndroid Build Coastguard Worker 
109*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.0001, 10, buffer, &length, &point));
110*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
111*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-3, point);
112*a6021da3SAndroid Build Coastguard Worker 
113*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00001, 10, buffer, &length, &point));
114*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
115*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-4, point);
116*a6021da3SAndroid Build Coastguard Worker 
117*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.000001, 10, buffer, &length, &point));
118*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
119*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-5, point);
120*a6021da3SAndroid Build Coastguard Worker 
121*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.0000001, 10, buffer, &length, &point));
122*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
123*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-6, point);
124*a6021da3SAndroid Build Coastguard Worker 
125*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00000001, 10, buffer, &length, &point));
126*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
127*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-7, point);
128*a6021da3SAndroid Build Coastguard Worker 
129*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.000000001, 10, buffer, &length, &point));
130*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
131*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-8, point);
132*a6021da3SAndroid Build Coastguard Worker 
133*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.0000000001, 15, buffer, &length, &point));
134*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
135*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-9, point);
136*a6021da3SAndroid Build Coastguard Worker 
137*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00000000001, 15, buffer, &length, &point));
138*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
139*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-10, point);
140*a6021da3SAndroid Build Coastguard Worker 
141*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.000000000001, 15, buffer, &length, &point));
142*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
143*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-11, point);
144*a6021da3SAndroid Build Coastguard Worker 
145*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.0000000000001, 15, buffer, &length, &point));
146*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
147*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-12, point);
148*a6021da3SAndroid Build Coastguard Worker 
149*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00000000000001, 15, buffer, &length, &point));
150*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
151*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-13, point);
152*a6021da3SAndroid Build Coastguard Worker 
153*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.000000000000001, 20, buffer, &length, &point));
154*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
155*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-14, point);
156*a6021da3SAndroid Build Coastguard Worker 
157*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.0000000000000001, 20, buffer, &length, &point));
158*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
159*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-15, point);
160*a6021da3SAndroid Build Coastguard Worker 
161*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00000000000000001, 20, buffer, &length, &point));
162*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
163*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-16, point);
164*a6021da3SAndroid Build Coastguard Worker 
165*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.000000000000000001, 20, buffer, &length, &point));
166*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
167*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-17, point);
168*a6021da3SAndroid Build Coastguard Worker 
169*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.0000000000000000001, 20, buffer, &length, &point));
170*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
171*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-18, point);
172*a6021da3SAndroid Build Coastguard Worker 
173*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00000000000000000001, 20, buffer, &length, &point));
174*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
175*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-19, point);
176*a6021da3SAndroid Build Coastguard Worker 
177*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.10000000004, 10, buffer, &length, &point));
178*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
179*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(0, point);
180*a6021da3SAndroid Build Coastguard Worker 
181*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.01000000004, 10, buffer, &length, &point));
182*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
183*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-1, point);
184*a6021da3SAndroid Build Coastguard Worker 
185*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00100000004, 10, buffer, &length, &point));
186*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
187*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-2, point);
188*a6021da3SAndroid Build Coastguard Worker 
189*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00010000004, 10, buffer, &length, &point));
190*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
191*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-3, point);
192*a6021da3SAndroid Build Coastguard Worker 
193*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00001000004, 10, buffer, &length, &point));
194*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
195*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-4, point);
196*a6021da3SAndroid Build Coastguard Worker 
197*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00000100004, 10, buffer, &length, &point));
198*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
199*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-5, point);
200*a6021da3SAndroid Build Coastguard Worker 
201*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00000010004, 10, buffer, &length, &point));
202*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
203*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-6, point);
204*a6021da3SAndroid Build Coastguard Worker 
205*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00000001004, 10, buffer, &length, &point));
206*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
207*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-7, point);
208*a6021da3SAndroid Build Coastguard Worker 
209*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00000000104, 10, buffer, &length, &point));
210*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
211*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-8, point);
212*a6021da3SAndroid Build Coastguard Worker 
213*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.0000000001000004, 15, buffer, &length, &point));
214*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
215*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-9, point);
216*a6021da3SAndroid Build Coastguard Worker 
217*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.0000000000100004, 15, buffer, &length, &point));
218*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
219*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-10, point);
220*a6021da3SAndroid Build Coastguard Worker 
221*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.0000000000010004, 15, buffer, &length, &point));
222*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
223*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-11, point);
224*a6021da3SAndroid Build Coastguard Worker 
225*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.0000000000001004, 15, buffer, &length, &point));
226*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
227*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-12, point);
228*a6021da3SAndroid Build Coastguard Worker 
229*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.0000000000000104, 15, buffer, &length, &point));
230*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
231*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-13, point);
232*a6021da3SAndroid Build Coastguard Worker 
233*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.000000000000001000004, 20, buffer, &length, &point));
234*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
235*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-14, point);
236*a6021da3SAndroid Build Coastguard Worker 
237*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.000000000000000100004, 20, buffer, &length, &point));
238*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
239*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-15, point);
240*a6021da3SAndroid Build Coastguard Worker 
241*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.000000000000000010004, 20, buffer, &length, &point));
242*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
243*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-16, point);
244*a6021da3SAndroid Build Coastguard Worker 
245*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.000000000000000001004, 20, buffer, &length, &point));
246*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
247*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-17, point);
248*a6021da3SAndroid Build Coastguard Worker 
249*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.000000000000000000104, 20, buffer, &length, &point));
250*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
251*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-18, point);
252*a6021da3SAndroid Build Coastguard Worker 
253*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.000000000000000000014, 20, buffer, &length, &point));
254*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
255*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-19, point);
256*a6021da3SAndroid Build Coastguard Worker 
257*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.10000000006, 10, buffer, &length, &point));
258*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1000000001", buffer.start());
259*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(0, point);
260*a6021da3SAndroid Build Coastguard Worker 
261*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.01000000006, 10, buffer, &length, &point));
262*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("100000001", buffer.start());
263*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-1, point);
264*a6021da3SAndroid Build Coastguard Worker 
265*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00100000006, 10, buffer, &length, &point));
266*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("10000001", buffer.start());
267*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-2, point);
268*a6021da3SAndroid Build Coastguard Worker 
269*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00010000006, 10, buffer, &length, &point));
270*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1000001", buffer.start());
271*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-3, point);
272*a6021da3SAndroid Build Coastguard Worker 
273*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00001000006, 10, buffer, &length, &point));
274*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("100001", buffer.start());
275*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-4, point);
276*a6021da3SAndroid Build Coastguard Worker 
277*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00000100006, 10, buffer, &length, &point));
278*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("10001", buffer.start());
279*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-5, point);
280*a6021da3SAndroid Build Coastguard Worker 
281*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00000010006, 10, buffer, &length, &point));
282*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1001", buffer.start());
283*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-6, point);
284*a6021da3SAndroid Build Coastguard Worker 
285*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00000001006, 10, buffer, &length, &point));
286*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("101", buffer.start());
287*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-7, point);
288*a6021da3SAndroid Build Coastguard Worker 
289*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00000000106, 10, buffer, &length, &point));
290*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("11", buffer.start());
291*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-8, point);
292*a6021da3SAndroid Build Coastguard Worker 
293*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.0000000001000006, 15, buffer, &length, &point));
294*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("100001", buffer.start());
295*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-9, point);
296*a6021da3SAndroid Build Coastguard Worker 
297*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.0000000000100006, 15, buffer, &length, &point));
298*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("10001", buffer.start());
299*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-10, point);
300*a6021da3SAndroid Build Coastguard Worker 
301*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.0000000000010006, 15, buffer, &length, &point));
302*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1001", buffer.start());
303*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-11, point);
304*a6021da3SAndroid Build Coastguard Worker 
305*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.0000000000001006, 15, buffer, &length, &point));
306*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("101", buffer.start());
307*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-12, point);
308*a6021da3SAndroid Build Coastguard Worker 
309*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.0000000000000106, 15, buffer, &length, &point));
310*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("11", buffer.start());
311*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-13, point);
312*a6021da3SAndroid Build Coastguard Worker 
313*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.000000000000001000006, 20, buffer, &length, &point));
314*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("100001", buffer.start());
315*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-14, point);
316*a6021da3SAndroid Build Coastguard Worker 
317*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.000000000000000100006, 20, buffer, &length, &point));
318*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("10001", buffer.start());
319*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-15, point);
320*a6021da3SAndroid Build Coastguard Worker 
321*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.000000000000000010006, 20, buffer, &length, &point));
322*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1001", buffer.start());
323*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-16, point);
324*a6021da3SAndroid Build Coastguard Worker 
325*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.000000000000000001006, 20, buffer, &length, &point));
326*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("101", buffer.start());
327*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-17, point);
328*a6021da3SAndroid Build Coastguard Worker 
329*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.000000000000000000106, 20, buffer, &length, &point));
330*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("11", buffer.start());
331*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-18, point);
332*a6021da3SAndroid Build Coastguard Worker 
333*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.000000000000000000016, 20, buffer, &length, &point));
334*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("2", buffer.start());
335*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-19, point);
336*a6021da3SAndroid Build Coastguard Worker 
337*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.6, 0, buffer, &length, &point));
338*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
339*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
340*a6021da3SAndroid Build Coastguard Worker 
341*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.96, 1, buffer, &length, &point));
342*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
343*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
344*a6021da3SAndroid Build Coastguard Worker 
345*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.996, 2, buffer, &length, &point));
346*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
347*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
348*a6021da3SAndroid Build Coastguard Worker 
349*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.9996, 3, buffer, &length, &point));
350*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
351*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
352*a6021da3SAndroid Build Coastguard Worker 
353*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.99996, 4, buffer, &length, &point));
354*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
355*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
356*a6021da3SAndroid Build Coastguard Worker 
357*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.999996, 5, buffer, &length, &point));
358*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
359*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
360*a6021da3SAndroid Build Coastguard Worker 
361*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.9999996, 6, buffer, &length, &point));
362*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
363*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
364*a6021da3SAndroid Build Coastguard Worker 
365*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.99999996, 7, buffer, &length, &point));
366*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
367*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
368*a6021da3SAndroid Build Coastguard Worker 
369*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.999999996, 8, buffer, &length, &point));
370*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
371*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
372*a6021da3SAndroid Build Coastguard Worker 
373*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.9999999996, 9, buffer, &length, &point));
374*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
375*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
376*a6021da3SAndroid Build Coastguard Worker 
377*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.99999999996, 10, buffer, &length, &point));
378*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
379*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
380*a6021da3SAndroid Build Coastguard Worker 
381*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.999999999996, 11, buffer, &length, &point));
382*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
383*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
384*a6021da3SAndroid Build Coastguard Worker 
385*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.9999999999996, 12, buffer, &length, &point));
386*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
387*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
388*a6021da3SAndroid Build Coastguard Worker 
389*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.99999999999996, 13, buffer, &length, &point));
390*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
391*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
392*a6021da3SAndroid Build Coastguard Worker 
393*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.999999999999996, 14, buffer, &length, &point));
394*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
395*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
396*a6021da3SAndroid Build Coastguard Worker 
397*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.9999999999999996, 15, buffer, &length, &point));
398*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
399*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
400*a6021da3SAndroid Build Coastguard Worker 
401*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00999999999999996, 16, buffer, &length, &point));
402*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
403*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-1, point);
404*a6021da3SAndroid Build Coastguard Worker 
405*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.000999999999999996, 17, buffer, &length, &point));
406*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
407*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-2, point);
408*a6021da3SAndroid Build Coastguard Worker 
409*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.0000999999999999996, 18, buffer, &length, &point));
410*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
411*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-3, point);
412*a6021da3SAndroid Build Coastguard Worker 
413*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.00000999999999999996, 19, buffer, &length, &point));
414*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
415*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-4, point);
416*a6021da3SAndroid Build Coastguard Worker 
417*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.000000999999999999996, 20, buffer, &length, &point));
418*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
419*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-5, point);
420*a6021da3SAndroid Build Coastguard Worker 
421*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(323423.234234, 10, buffer, &length, &point));
422*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("323423234234", buffer.start());
423*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(6, point);
424*a6021da3SAndroid Build Coastguard Worker 
425*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(12345678.901234, 4, buffer, &length, &point));
426*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("123456789012", buffer.start());
427*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(8, point);
428*a6021da3SAndroid Build Coastguard Worker 
429*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(98765.432109, 5, buffer, &length, &point));
430*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("9876543211", buffer.start());
431*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(5, point);
432*a6021da3SAndroid Build Coastguard Worker 
433*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(42, 20, buffer, &length, &point));
434*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("42", buffer.start());
435*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(2, point);
436*a6021da3SAndroid Build Coastguard Worker 
437*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(0.5, 0, buffer, &length, &point));
438*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
439*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(1, point);
440*a6021da3SAndroid Build Coastguard Worker 
441*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(1e-23, 10, buffer, &length, &point));
442*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("", buffer.start());
443*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-10, point);
444*a6021da3SAndroid Build Coastguard Worker 
445*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(1e-123, 2, buffer, &length, &point));
446*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("", buffer.start());
447*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-2, point);
448*a6021da3SAndroid Build Coastguard Worker 
449*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(1e-123, 0, buffer, &length, &point));
450*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("", buffer.start());
451*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(0, point);
452*a6021da3SAndroid Build Coastguard Worker 
453*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(1e-23, 20, buffer, &length, &point));
454*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("", buffer.start());
455*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-20, point);
456*a6021da3SAndroid Build Coastguard Worker 
457*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(1e-21, 20, buffer, &length, &point));
458*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("", buffer.start());
459*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-20, point);
460*a6021da3SAndroid Build Coastguard Worker 
461*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(1e-22, 20, buffer, &length, &point));
462*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("", buffer.start());
463*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-20, point);
464*a6021da3SAndroid Build Coastguard Worker 
465*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(6e-21, 20, buffer, &length, &point));
466*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1", buffer.start());
467*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-19, point);
468*a6021da3SAndroid Build Coastguard Worker 
469*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(9.1193616301674545152000000e+19, 0,
470*a6021da3SAndroid Build Coastguard Worker                       buffer, &length, &point));
471*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("91193616301674545152", buffer.start());
472*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(20, point);
473*a6021da3SAndroid Build Coastguard Worker 
474*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(4.8184662102767651659096515e-04, 19,
475*a6021da3SAndroid Build Coastguard Worker                       buffer, &length, &point));
476*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("4818466210276765", buffer.start());
477*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-3, point);
478*a6021da3SAndroid Build Coastguard Worker 
479*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(1.9023164229540652612705182e-23, 8,
480*a6021da3SAndroid Build Coastguard Worker                       buffer, &length, &point));
481*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("", buffer.start());
482*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(-8, point);
483*a6021da3SAndroid Build Coastguard Worker 
484*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(1000000000000000128.0, 0,
485*a6021da3SAndroid Build Coastguard Worker                       buffer, &length, &point));
486*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("1000000000000000128", buffer.start());
487*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(19, point);
488*a6021da3SAndroid Build Coastguard Worker 
489*a6021da3SAndroid Build Coastguard Worker   CHECK(FastFixedDtoa(2.10861548515811875e+15, 17, buffer, &length, &point));
490*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ("210861548515811875", buffer.start());
491*a6021da3SAndroid Build Coastguard Worker   CHECK_EQ(16, point);
492*a6021da3SAndroid Build Coastguard Worker }
493*a6021da3SAndroid Build Coastguard Worker 
494*a6021da3SAndroid Build Coastguard Worker 
TEST(FastFixedDtoaGayFixed)495*a6021da3SAndroid Build Coastguard Worker TEST(FastFixedDtoaGayFixed) {
496*a6021da3SAndroid Build Coastguard Worker   char buffer_container[kBufferSize];
497*a6021da3SAndroid Build Coastguard Worker   Vector<char> buffer(buffer_container, kBufferSize);
498*a6021da3SAndroid Build Coastguard Worker   bool status;
499*a6021da3SAndroid Build Coastguard Worker   int length;
500*a6021da3SAndroid Build Coastguard Worker   int point;
501*a6021da3SAndroid Build Coastguard Worker 
502*a6021da3SAndroid Build Coastguard Worker   Vector<const PrecomputedFixed> precomputed =
503*a6021da3SAndroid Build Coastguard Worker       PrecomputedFixedRepresentations();
504*a6021da3SAndroid Build Coastguard Worker   for (int i = 0; i < precomputed.length(); ++i) {
505*a6021da3SAndroid Build Coastguard Worker     const PrecomputedFixed current_test = precomputed[i];
506*a6021da3SAndroid Build Coastguard Worker     double v = current_test.v;
507*a6021da3SAndroid Build Coastguard Worker     int number_digits = current_test.number_digits;
508*a6021da3SAndroid Build Coastguard Worker     status = FastFixedDtoa(v, number_digits,
509*a6021da3SAndroid Build Coastguard Worker                            buffer, &length, &point);
510*a6021da3SAndroid Build Coastguard Worker     CHECK(status);
511*a6021da3SAndroid Build Coastguard Worker     CHECK_EQ(current_test.decimal_point, point);
512*a6021da3SAndroid Build Coastguard Worker     CHECK(number_digits >= length - point);
513*a6021da3SAndroid Build Coastguard Worker     CHECK_EQ(current_test.representation, buffer.start());
514*a6021da3SAndroid Build Coastguard Worker   }
515*a6021da3SAndroid Build Coastguard Worker }
516