@@ -157,6 +157,51 @@ func TestDecimal64FormatPrecEdgeCases(t *testing.T) {
157
157
}
158
158
}
159
159
160
+ func TestDecimal64FormatPrecEdgeCases2 (t * testing.T ) {
161
+ t .Parallel ()
162
+
163
+ test := func (expected string , input Decimal64 , prec int ) {
164
+ t .Helper ()
165
+ data := input .Append (nil , 'f' , prec )
166
+ assert .Equal (t , expected , string (data ))
167
+ }
168
+
169
+ test ("0.062" , MustParse64 ("0.0625" ), 3 )
170
+ test ("10000.0000000000" , MustParse64 ("1e4" ), 10 )
171
+ test ("10000000000.0000000000" , MustParse64 ("1e10" ), 10 )
172
+ test ("100000000000.0000000000" , MustParse64 ("1e11" ), 10 )
173
+ // test("0.0000000000", MustParse64("1e50"), 10)
174
+ test ("0.0001000000" , MustParse64 ("1e-4" ), 10 )
175
+ test ("0.0000000001" , MustParse64 ("1e-10" ), 10 )
176
+ test ("0.0000000000" , MustParse64 ("1e-11" ), 10 )
177
+ test ("0.0000000000" , MustParse64 ("1e-20" ), 10 )
178
+ test ("0.0000000000" , MustParse64 ("1e-30" ), 10 )
179
+ test ("0.000000000000000000000000000001" , MustParse64 ("1e-30" ), 30 )
180
+ test ("0.0000000000" , Zero64 , 10 )
181
+ test ("-0.0000000000" , Zero64 .NextMinus (), 10 )
182
+ test ("0.0000000000" , Zero64 .NextPlus (), 10 )
183
+ test ("inf" , Infinity64 , 10 )
184
+ test ("9999999999999999000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000000000" , Infinity64 .NextMinus (), 10 )
185
+ test ("inf" , Infinity64 .NextPlus (), 10 )
186
+
187
+ test ("-10000.0000000000" , MustParse64 ("-1e4" ), 10 )
188
+ test ("-10000000000.0000000000" , MustParse64 ("-1e10" ), 10 )
189
+ test ("-100000000000.0000000000" , MustParse64 ("-1e11" ), 10 )
190
+ // test("-0.0000000000", MustParse64("-1e50"), 10)
191
+ test ("-0.0001000000" , MustParse64 ("-1e-4" ), 10 )
192
+ test ("-0.0000000001" , MustParse64 ("-1e-10" ), 10 )
193
+ test ("-0.0000000000" , MustParse64 ("-1e-11" ), 10 )
194
+ test ("-0.0000000000" , MustParse64 ("-1e-20" ), 10 )
195
+ test ("-0.0000000000" , MustParse64 ("-1e-30" ), 10 )
196
+ test ("-0.000000000000000000000000000001" , MustParse64 ("-1e-30" ), 30 )
197
+ test ("-0.0000000000" , NegZero64 , 10 )
198
+ test ("-0.0000000000" , Zero64 .NextMinus (), 10 )
199
+ test ("0.0000000000" , Zero64 .NextPlus (), 10 )
200
+ test ("-inf" , NegInfinity64 , 10 )
201
+ test ("-inf" , NegInfinity64 .NextMinus (), 10 )
202
+ test ("-9999999999999999000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000000000" , NegInfinity64 .NextPlus (), 10 )
203
+ }
204
+
160
205
func TestDecimal64FormatPrecEdgeCasesHalfAway (t * testing.T ) {
161
206
t .Parallel ()
162
207
0 commit comments