@@ -239,13 +239,28 @@ func Test_str2float()
239239 call assert_equal (' nan' , string (str2float (' NaN' )))
240240 call assert_equal (' nan' , string (str2float (' nan ' )))
241241
242- call assert_equal (1.2 , str2float (1.2 ))
242+ call assert_equal (' 123456.789' , string (str2float (" 123'456.789" , 1 )))
243+ call assert_equal (' 123456.789' , string (str2float (" 12'34'56.789" , 1 )))
244+ call assert_equal (' 123456.789' , string (str2float (" 1'2'3'4'5'6.789" , 1 )))
245+ call assert_equal (' 1.0' , string (str2float (" 1''2.3" , 1 )))
246+ call assert_equal (' 123456.7' , string (str2float (" 123'456.7'89" , 1 )))
247+
248+ call assert_equal (1.2 , str2float (1.2 , 0 ))
243249 call CheckDefAndScriptFailure2 ([' str2float(1.2)' ], ' E1013: Argument 1: type mismatch, expected string but got float' , ' E1174: String required for argument 1' )
244250 call assert_fails (" call str2float([])" , ' E730:' )
245251 call assert_fails (" call str2float({})" , ' E731:' )
246252 call assert_fails (" call str2float(function('string'))" , ' E729:' )
247253endfunc
248254
255+ def Test_float_quotes ()
256+ call assert_equal (' 123456.789' , string (123 '456.789 ))
257+ call assert_equal (' 123456.789' , string (12 ' 34' 56.789 ))
258+ call assert_equal (' 123456.789' , string (1 ' 2' 3 ' 4' 5 '6.789 ))
259+
260+ call assert_fails (" echo string(1''2.3)" , ' E116:' )
261+ call assert_fails (" echo string(123'456.7'89)" , ' E116:' )
262+ enddef
263+
249264func Test_float2nr ()
250265 call assert_equal (1 , float2nr (1.234 ))
251266 call assert_equal (123 , float2nr (1.234e2 ))
0 commit comments