comparison src/testdir/test_vim9_builtin.vim @ 28570:35e24d9de858 v8.2.4809

patch 8.2.4809: various things no6 properly tested Commit: https://github.com/vim/vim/commit/885de449c0c0ef4a8541ed1f5377351844384516 Author: Yegappan Lakshmanan <yegappan@yahoo.com> Date: Sat Apr 23 10:51:14 2022 +0100 patch 8.2.4809: various things no6 properly tested Problem: Various things no6 properly tested. Solution: Add various test cases. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/10259)
author Bram Moolenaar <Bram@vim.org>
date Sat, 23 Apr 2022 12:00:06 +0200
parents 373c70e3c542
children 38f7a132bba3
comparison
equal deleted inserted replaced
28569:ec72a310d1b7 28570:35e24d9de858
1271 def Test_float_funcs_args() 1271 def Test_float_funcs_args()
1272 CheckFeature float 1272 CheckFeature float
1273 1273
1274 # acos() 1274 # acos()
1275 v9.CheckDefAndScriptFailure(['acos("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1275 v9.CheckDefAndScriptFailure(['acos("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1276 assert_equal('1.570796', string(acos(0.0)))
1276 # asin() 1277 # asin()
1277 v9.CheckDefAndScriptFailure(['asin("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1278 v9.CheckDefAndScriptFailure(['asin("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1279 assert_equal('0.0', string(asin(0.0)))
1278 # atan() 1280 # atan()
1279 v9.CheckDefAndScriptFailure(['atan("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1281 v9.CheckDefAndScriptFailure(['atan("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1282 assert_equal('0.0', string(atan(0.0)))
1280 # atan2() 1283 # atan2()
1281 v9.CheckDefAndScriptFailure(['atan2("a", 1.1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1284 v9.CheckDefAndScriptFailure(['atan2("a", 1.1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1285 assert_equal('-2.356194', string(atan2(-1, -1)))
1282 v9.CheckDefAndScriptFailure(['atan2(1.2, "a")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 2']) 1286 v9.CheckDefAndScriptFailure(['atan2(1.2, "a")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 2'])
1283 v9.CheckDefAndScriptFailure(['atan2(1.2)'], ['E119:', 'E119:']) 1287 v9.CheckDefAndScriptFailure(['atan2(1.2)'], ['E119:', 'E119:'])
1284 # ceil() 1288 # ceil()
1285 v9.CheckDefAndScriptFailure(['ceil("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1289 v9.CheckDefAndScriptFailure(['ceil("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1290 assert_equal('2.0', string(ceil(2.0)))
1286 # cos() 1291 # cos()
1287 v9.CheckDefAndScriptFailure(['cos("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1292 v9.CheckDefAndScriptFailure(['cos("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1293 assert_equal('1.0', string(cos(0.0)))
1288 # cosh() 1294 # cosh()
1289 v9.CheckDefAndScriptFailure(['cosh("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1295 v9.CheckDefAndScriptFailure(['cosh("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1296 assert_equal('1.0', string(cosh(0.0)))
1290 # exp() 1297 # exp()
1291 v9.CheckDefAndScriptFailure(['exp("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1298 v9.CheckDefAndScriptFailure(['exp("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1299 assert_equal('1.0', string(exp(0.0)))
1292 # float2nr() 1300 # float2nr()
1293 v9.CheckDefAndScriptFailure(['float2nr("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1301 v9.CheckDefAndScriptFailure(['float2nr("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1302 assert_equal(1, float2nr(1.234))
1294 # floor() 1303 # floor()
1295 v9.CheckDefAndScriptFailure(['floor("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1304 v9.CheckDefAndScriptFailure(['floor("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1305 assert_equal('2.0', string(floor(2.0)))
1296 # fmod() 1306 # fmod()
1297 v9.CheckDefAndScriptFailure(['fmod(1.1, "a")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 2']) 1307 v9.CheckDefAndScriptFailure(['fmod(1.1, "a")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 2'])
1298 v9.CheckDefAndScriptFailure(['fmod("a", 1.1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1308 v9.CheckDefAndScriptFailure(['fmod("a", 1.1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1299 v9.CheckDefAndScriptFailure(['fmod(1.1)'], ['E119:', 'E119:']) 1309 v9.CheckDefAndScriptFailure(['fmod(1.1)'], ['E119:', 'E119:'])
1310 assert_equal('0.13', string(fmod(12.33, 1.22)))
1300 # isinf() 1311 # isinf()
1301 v9.CheckDefAndScriptFailure(['isinf("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1312 v9.CheckDefAndScriptFailure(['isinf("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1313 assert_equal(1, isinf(1.0 / 0.0))
1302 # isnan() 1314 # isnan()
1303 v9.CheckDefAndScriptFailure(['isnan("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1315 v9.CheckDefAndScriptFailure(['isnan("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1316 assert_true(isnan(0.0 / 0.0))
1304 # log() 1317 # log()
1305 v9.CheckDefAndScriptFailure(['log("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1318 v9.CheckDefAndScriptFailure(['log("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1319 assert_equal('0.0', string(log(1.0)))
1306 # log10() 1320 # log10()
1307 v9.CheckDefAndScriptFailure(['log10("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1321 v9.CheckDefAndScriptFailure(['log10("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1322 assert_equal('0.0', string(log10(1.0)))
1308 # pow() 1323 # pow()
1309 v9.CheckDefAndScriptFailure(['pow("a", 1.1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1324 v9.CheckDefAndScriptFailure(['pow("a", 1.1)'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1310 v9.CheckDefAndScriptFailure(['pow(1.1, "a")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 2']) 1325 v9.CheckDefAndScriptFailure(['pow(1.1, "a")'], ['E1013: Argument 2: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 2'])
1311 v9.CheckDefAndScriptFailure(['pow(1.1)'], ['E119:', 'E119:']) 1326 v9.CheckDefAndScriptFailure(['pow(1.1)'], ['E119:', 'E119:'])
1327 assert_equal('1.0', string(pow(0.0, 0.0)))
1312 # round() 1328 # round()
1313 v9.CheckDefAndScriptFailure(['round("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1329 v9.CheckDefAndScriptFailure(['round("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1330 assert_equal('2.0', string(round(2.1)))
1314 # sin() 1331 # sin()
1315 v9.CheckDefAndScriptFailure(['sin("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1332 v9.CheckDefAndScriptFailure(['sin("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1333 assert_equal('0.0', string(sin(0.0)))
1316 # sinh() 1334 # sinh()
1317 v9.CheckDefAndScriptFailure(['sinh("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1335 v9.CheckDefAndScriptFailure(['sinh("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1336 assert_equal('0.0', string(sinh(0.0)))
1318 # sqrt() 1337 # sqrt()
1319 v9.CheckDefAndScriptFailure(['sqrt("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1338 v9.CheckDefAndScriptFailure(['sqrt("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1339 assert_equal('0.0', string(sqrt(0.0)))
1320 # tan() 1340 # tan()
1321 v9.CheckDefAndScriptFailure(['tan("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1341 v9.CheckDefAndScriptFailure(['tan("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1342 assert_equal('0.0', string(tan(0.0)))
1322 # tanh() 1343 # tanh()
1323 v9.CheckDefAndScriptFailure(['tanh("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1344 v9.CheckDefAndScriptFailure(['tanh("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1345 assert_equal('0.0', string(tanh(0.0)))
1324 # trunc() 1346 # trunc()
1325 v9.CheckDefAndScriptFailure(['trunc("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1']) 1347 v9.CheckDefAndScriptFailure(['trunc("a")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1219: Float or Number required for argument 1'])
1348 assert_equal('2.0', string(trunc(2.1)))
1326 enddef 1349 enddef
1327 1350
1328 def Test_fnameescape() 1351 def Test_fnameescape()
1329 v9.CheckDefAndScriptFailure(['fnameescape(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1']) 1352 v9.CheckDefAndScriptFailure(['fnameescape(10)'], ['E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1'])
1330 assert_equal('\+a\%b\|', fnameescape('+a%b|')) 1353 assert_equal('\+a\%b\|', fnameescape('+a%b|'))