@@ -77,6 +77,7 @@ def test_inputs(self):
7777 self .assertEqual (floatformat (1.5e-15 , 20 ), "0.00000000000000150000" )
7878 self .assertEqual (floatformat (1.5e-15 , - 20 ), "0.00000000000000150000" )
7979 self .assertEqual (floatformat (1.00000000000000015 , 16 ), "1.0000000000000002" )
80+ self .assertEqual (floatformat ("1e199" ), "1" + "0" * 199 )
8081
8182 def test_force_grouping (self ):
8283 with translation .override ("en" ):
@@ -134,6 +135,22 @@ def test_infinity(self):
134135 self .assertEqual (floatformat (pos_inf ), "inf" )
135136 self .assertEqual (floatformat (neg_inf ), "-inf" )
136137 self .assertEqual (floatformat (pos_inf / pos_inf ), "nan" )
138+ self .assertEqual (floatformat ("inf" ), "inf" )
139+ self .assertEqual (floatformat ("NaN" ), "NaN" )
140+
141+ def test_too_many_digits_to_render (self ):
142+ cases = [
143+ "1e200" ,
144+ "1E200" ,
145+ "1E10000000000000000" ,
146+ "-1E10000000000000000" ,
147+ "1e10000000000000000" ,
148+ "-1e10000000000000000" ,
149+ "1" + "0" * 1_000_000 ,
150+ ]
151+ for value in cases :
152+ with self .subTest (value = value ):
153+ self .assertEqual (floatformat (value ), value )
137154
138155 def test_float_dunder_method (self ):
139156 class FloatWrapper :
0 commit comments