@@ -13,6 +13,10 @@ func Test_abs()
1313 call assert_equal (' inf' , string (abs (1.0 /0.0 )))
1414 call assert_equal (' inf' , string (abs (-1.0 /0.0 )))
1515 call assert_equal (' nan' , string (abs (0.0 /0.0 )))
16+ call assert_equal (' 12' , string (abs (' -12abc' )))
17+ call assert_fails (" call abs([])" , ' E745:' )
18+ call assert_fails (" call abs({})" , ' E728:' )
19+ call assert_fails (" call abs(function('string'))" , ' E703:' )
1620endfunc
1721
1822func Test_sqrt ()
@@ -21,6 +25,7 @@ func Test_sqrt()
2125 call assert_equal (' inf' , string (sqrt (1.0 /0.0 )))
2226 call assert_equal (' nan' , string (sqrt (-1.0 )))
2327 call assert_equal (' nan' , string (sqrt (0.0 /0.0 )))
28+ call assert_fails (' call sqrt("")' , ' E808:' )
2429endfunc
2530
2631func Test_log ()
@@ -30,6 +35,7 @@ func Test_log()
3035 call assert_equal (' nan' , string (log (-1.0 )))
3136 call assert_equal (' inf' , string (log (1.0 /0.0 )))
3237 call assert_equal (' nan' , string (log (0.0 /0.0 )))
38+ call assert_fails (' call log("")' , ' E808:' )
3339endfunc
3440
3541func Test_log10 ()
@@ -40,6 +46,7 @@ func Test_log10()
4046 call assert_equal (' nan' , string (log10 (-1.0 )))
4147 call assert_equal (' inf' , string (log10 (1.0 /0.0 )))
4248 call assert_equal (' nan' , string (log10 (0.0 /0.0 )))
49+ call assert_fails (' call log10("")' , ' E808:' )
4350endfunc
4451
4552func Test_exp ()
@@ -49,6 +56,7 @@ func Test_exp()
4956 call assert_equal (' inf' , string (exp (1.0 /0.0 )))
5057 call assert_equal (' 0.0' , string (exp (-1.0 /0.0 )))
5158 call assert_equal (' nan' , string (exp (0.0 /0.0 )))
59+ call assert_fails (' call exp("")' , ' E808:' )
5260endfunc
5361
5462func Test_sin ()
@@ -59,6 +67,7 @@ func Test_sin()
5967 call assert_equal (' nan' , string (sin (1.0 /0.0 )))
6068 call assert_equal (' 0.0' , string (sin (1.0 /(1.0/ 0.0 ))))
6169 call assert_equal (' -0.0' , string (sin (-1.0 /(1.0/ 0.0 ))))
70+ call assert_fails (' call sin("")' , ' E808:' )
6271endfunc
6372
6473func Test_asin ()
@@ -68,6 +77,7 @@ func Test_asin()
6877 call assert_equal (' nan' , string (asin (1.1 )))
6978 call assert_equal (' nan' , string (asin (1.0 /0.0 )))
7079 call assert_equal (' nan' , string (asin (0.0 /0.0 )))
80+ call assert_fails (' call asin("")' , ' E808:' )
7181endfunc
7282
7383func Test_sinh ()
@@ -77,6 +87,7 @@ func Test_sinh()
7787 call assert_equal (' inf' , string (sinh (1.0 /0.0 )))
7888 call assert_equal (' -inf' , string (sinh (-1.0 /0.0 )))
7989 call assert_equal (' nan' , string (sinh (0.0 /0.0 )))
90+ call assert_fails (' call sinh("")' , ' E808:' )
8091endfunc
8192
8293func Test_cos ()
@@ -85,6 +96,7 @@ func Test_cos()
8596 call assert_equal (' 0.877583' , string (cos (-0.5 )))
8697 call assert_equal (' nan' , string (cos (0.0 /0.0 )))
8798 call assert_equal (' nan' , string (cos (1.0 /0.0 )))
99+ call assert_fails (' call cos("")' , ' E808:' )
88100endfunc
89101
90102func Test_acos ()
@@ -95,6 +107,7 @@ func Test_acos()
95107 call assert_equal (' nan' , string (acos (1.1 )))
96108 call assert_equal (' nan' , string (acos (1.0 /0.0 )))
97109 call assert_equal (' nan' , string (acos (0.0 /0.0 )))
110+ call assert_fails (' call acos("")' , ' E808:' )
98111endfunc
99112
100113func Test_cosh ()
@@ -103,6 +116,7 @@ func Test_cosh()
103116 call assert_equal (' inf' , string (cosh (1.0 /0.0 )))
104117 call assert_equal (' inf' , string (cosh (-1.0 /0.0 )))
105118 call assert_equal (' nan' , string (cosh (0.0 /0.0 )))
119+ call assert_fails (' call cosh("")' , ' E808:' )
106120endfunc
107121
108122func Test_tan ()
@@ -113,6 +127,7 @@ func Test_tan()
113127 call assert_equal (' nan' , string (cos (0.0 /0.0 )))
114128 call assert_equal (' 0.0' , string (tan (1.0 /(1.0/ 0.0 ))))
115129 call assert_equal (' -0.0' , string (tan (-1.0 /(1.0/ 0.0 ))))
130+ call assert_fails (' call tan("")' , ' E808:' )
116131endfunc
117132
118133func Test_atan ()
@@ -122,6 +137,7 @@ func Test_atan()
122137 call assert_equal (' 1.570796' , string (atan (1.0 /0.0 )))
123138 call assert_equal (' -1.570796' , string (atan (-1.0 /0.0 )))
124139 call assert_equal (' nan' , string (atan (0.0 /0.0 )))
140+ call assert_fails (' call atan("")' , ' E808:' )
125141endfunc
126142
127143func Test_atan2 ()
@@ -130,6 +146,8 @@ func Test_atan2()
130146 call assert_equal (' 0.0' , string (atan2 (1.0 , 1.0 /0.0 )))
131147 call assert_equal (' 1.570796' , string (atan2 (1.0 /0.0 , 1.0 )))
132148 call assert_equal (' nan' , string (atan2 (0.0 /0.0 , 1.0 )))
149+ call assert_fails (' call atan2("", -1)' , ' E808:' )
150+ call assert_fails (' call atan2(-1, "")' , ' E808:' )
133151endfunc
134152
135153func Test_tanh ()
@@ -139,6 +157,7 @@ func Test_tanh()
139157 call assert_equal (' 1.0' , string (tanh (1.0 /0.0 )))
140158 call assert_equal (' -1.0' , string (tanh (-1.0 /0.0 )))
141159 call assert_equal (' nan' , string (tanh (0.0 /0.0 )))
160+ call assert_fails (' call tanh("")' , ' E808:' )
142161endfunc
143162
144163func Test_fmod ()
@@ -151,6 +170,8 @@ func Test_fmod()
151170 call assert_equal (' 1.0' , res )
152171 endif
153172 call assert_equal (' nan' , string (fmod (1.0 , 0.0 )))
173+ call assert_fails (" call fmod('', 1.22)" , ' E808:' )
174+ call assert_fails (" call fmod(12.33, '')" , ' E808:' )
154175endfunc
155176
156177func Test_pow ()
@@ -161,6 +182,8 @@ func Test_pow()
161182 call assert_equal (' nan' , string (pow (0.0 /0.0 , 3.0 )))
162183 call assert_equal (' inf' , string (pow (2.0 , 1.0 /0.0 )))
163184 call assert_equal (' inf' , string (pow (1.0 /0.0 , 3.0 )))
185+ call assert_fails (" call pow('', 2.0)" , ' E808:' )
186+ call assert_fails (" call pow(2.0, '')" , ' E808:' )
164187endfunc
165188
166189func Test_str2float ()
@@ -170,6 +193,8 @@ func Test_str2float()
170193 call assert_equal (' 1.23' , string (str2float (' 1.23' )))
171194 call assert_equal (' 1.23' , string (str2float (' 1.23abc' )))
172195 call assert_equal (' 1.0e40' , string (str2float (' 1e40' )))
196+ call assert_equal (' -1.23' , string (str2float (' -1.23' )))
197+ call assert_equal (' 1.23' , string (str2float (' + 1.23 ' )))
173198
174199 call assert_equal (' 1.0' , string (str2float (' +1' )))
175200 call assert_equal (' 1.0' , string (str2float (' +1' )))
@@ -181,12 +206,22 @@ func Test_str2float()
181206 call assert_equal (' -1.0' , string (str2float (' -1 ' )))
182207 call assert_equal (' -1.0' , string (str2float (' - 1 ' )))
183208
209+ call assert_equal (' 0.0' , string (str2float (' +0.0' )))
210+ call assert_equal (' -0.0' , string (str2float (' -0.0' )))
184211 call assert_equal (' inf' , string (str2float (' 1e1000' )))
185212 call assert_equal (' inf' , string (str2float (' inf' )))
186213 call assert_equal (' -inf' , string (str2float (' -inf' )))
214+ call assert_equal (' inf' , string (str2float (' +inf' )))
187215 call assert_equal (' inf' , string (str2float (' Inf' )))
216+ call assert_equal (' inf' , string (str2float (' +inf ' )))
188217 call assert_equal (' nan' , string (str2float (' nan' )))
189218 call assert_equal (' nan' , string (str2float (' NaN' )))
219+ call assert_equal (' nan' , string (str2float (' nan ' )))
220+
221+ call assert_fails (" call str2float(1.2)" , ' E806:' )
222+ call assert_fails (" call str2float([])" , ' E730:' )
223+ call assert_fails (" call str2float({})" , ' E731:' )
224+ call assert_fails (" call str2float(function('string'))" , ' E729:' )
190225endfunc
191226
192227func Test_floor ()
@@ -198,6 +233,7 @@ func Test_floor()
198233 call assert_equal (' nan' , string (floor (0.0 /0.0 )))
199234 call assert_equal (' inf' , string (floor (1.0 /0.0 )))
200235 call assert_equal (' -inf' , string (floor (-1.0 /0.0 )))
236+ call assert_fails (" call floor('')" , ' E808:' )
201237endfunc
202238
203239func Test_ceil ()
@@ -209,6 +245,7 @@ func Test_ceil()
209245 call assert_equal (' nan' , string (ceil (0.0 /0.0 )))
210246 call assert_equal (' inf' , string (ceil (1.0 /0.0 )))
211247 call assert_equal (' -inf' , string (ceil (-1.0 /0.0 )))
248+ call assert_fails (" call ceil('')" , ' E808:' )
212249endfunc
213250
214251func Test_round ()
@@ -221,6 +258,7 @@ func Test_round()
221258 call assert_equal (' nan' , string (round (0.0 /0.0 )))
222259 call assert_equal (' inf' , string (round (1.0 /0.0 )))
223260 call assert_equal (' -inf' , string (round (-1.0 /0.0 )))
261+ call assert_fails (" call round('')" , ' E808:' )
224262endfunc
225263
226264func Test_trunc ()
@@ -233,6 +271,7 @@ func Test_trunc()
233271 call assert_equal (' nan' , string (trunc (0.0 /0.0 )))
234272 call assert_equal (' inf' , string (trunc (1.0 /0.0 )))
235273 call assert_equal (' -inf' , string (trunc (-1.0 /0.0 )))
274+ call assert_fails (" call trunc('')" , ' E808:' )
236275endfunc
237276
238277func Test_isnan ()
@@ -241,4 +280,5 @@ func Test_isnan()
241280 call assert_equal (0 , isnan (1.0 /0.0 ))
242281 call assert_equal (0 , isnan (' a' ))
243282 call assert_equal (0 , isnan ([]))
283+ call assert_equal (0 , isnan ({}))
244284endfunc
0 commit comments