mirror of
https://github.com/neovim/neovim.git
synced 2025-10-02 07:58:35 +00:00
vim-patch:8.1.1879: more functions can be used as methods
Problem: More functions can be used as methods.
Solution: Make float functions usable as a method.
93cf85f9ef
Fix atan2() doc typo (patch referred to it as atan()).
Adjust Test_fmod() method test to expect "str2float('nan')".
This commit is contained in:
@@ -21,8 +21,8 @@ local LAST = "BASE_LAST"
|
||||
|
||||
return {
|
||||
funcs={
|
||||
abs={args=1},
|
||||
acos={args=1, func="float_op_wrapper", data="&acos"}, -- WJMc
|
||||
abs={args=1, base=1},
|
||||
acos={args=1, base=1, func="float_op_wrapper", data="&acos"}, -- WJMc
|
||||
add={args=2, base=1},
|
||||
['and']={args=2},
|
||||
api_info={},
|
||||
@@ -32,7 +32,7 @@ return {
|
||||
argidx={},
|
||||
arglistid={args={0, 2}},
|
||||
argv={args={0, 2}},
|
||||
asin={args=1, func="float_op_wrapper", data="&asin"}, -- WJMc
|
||||
asin={args=1, base=1, func="float_op_wrapper", data="&asin"}, -- WJMc
|
||||
assert_beeps={args={1}, base=1},
|
||||
assert_equal={args={2, 3}, base=2},
|
||||
assert_equalfile={args={2, 3}},
|
||||
@@ -46,8 +46,8 @@ return {
|
||||
assert_notmatch={args={2, 3}, base=2},
|
||||
assert_report={args=1},
|
||||
assert_true={args={1, 2}, base=1},
|
||||
atan={args=1, func="float_op_wrapper", data="&atan"},
|
||||
atan2={args=2},
|
||||
atan={args=1, base=1, func="float_op_wrapper", data="&atan"},
|
||||
atan2={args=2, base=1},
|
||||
browse={args=4},
|
||||
browsedir={args=2},
|
||||
bufadd={args=1},
|
||||
@@ -66,7 +66,7 @@ return {
|
||||
byteidx={args=2},
|
||||
byteidxcomp={args=2},
|
||||
call={args={2, 3}},
|
||||
ceil={args=1, func="float_op_wrapper", data="&ceil"},
|
||||
ceil={args=1, base=1, func="float_op_wrapper", data="&ceil"},
|
||||
changenr={},
|
||||
chanclose={args={1, 2}},
|
||||
chansend={args=2},
|
||||
@@ -81,8 +81,8 @@ return {
|
||||
complete_info={args={0, 1}},
|
||||
confirm={args={1, 4}},
|
||||
copy={args=1, base=1},
|
||||
cos={args=1, func="float_op_wrapper", data="&cos"},
|
||||
cosh={args=1, func="float_op_wrapper", data="&cosh"},
|
||||
cos={args=1, base=1, func="float_op_wrapper", data="&cos"},
|
||||
cosh={args=1, base=1, func="float_op_wrapper", data="&cosh"},
|
||||
count={args={2, 4}, base=1},
|
||||
cscope_connection={args={0, 3}},
|
||||
ctxget={args={0, 1}},
|
||||
@@ -109,7 +109,7 @@ return {
|
||||
execute={args={1, 2}},
|
||||
exepath={args=1},
|
||||
exists={args=1},
|
||||
exp={args=1, func="float_op_wrapper", data="&exp"},
|
||||
exp={args=1, base=1, func="float_op_wrapper", data="&exp"},
|
||||
expand={args={1, 3}},
|
||||
expandcmd={args=1},
|
||||
extend={args={2, 3}, base=1},
|
||||
@@ -121,9 +121,9 @@ return {
|
||||
finddir={args={1, 3}},
|
||||
findfile={args={1, 3}},
|
||||
flatten={args={1, 2}},
|
||||
float2nr={args=1},
|
||||
floor={args=1, func="float_op_wrapper", data="&floor"},
|
||||
fmod={args=2},
|
||||
float2nr={args=1, base=1},
|
||||
floor={args=1, base=1, func="float_op_wrapper", data="&floor"},
|
||||
fmod={args=2, base=1},
|
||||
fnameescape={args=1},
|
||||
fnamemodify={args=2},
|
||||
foldclosed={args=1},
|
||||
@@ -205,9 +205,9 @@ return {
|
||||
interrupt={args=0},
|
||||
invert={args=1},
|
||||
isdirectory={args=1},
|
||||
isinf={args=1},
|
||||
isinf={args=1, base=1},
|
||||
islocked={args=1},
|
||||
isnan={args=1},
|
||||
isnan={args=1, base=1},
|
||||
id={args=1},
|
||||
items={args=1, base=1},
|
||||
jobclose={args={1, 2}, func="f_chanclose"},
|
||||
@@ -230,8 +230,8 @@ return {
|
||||
lispindent={args=1},
|
||||
list2str={args={1, 2}},
|
||||
localtime={},
|
||||
log={args=1, func="float_op_wrapper", data="&log"},
|
||||
log10={args=1, func="float_op_wrapper", data="&log10"},
|
||||
log={args=1, base=1, func="float_op_wrapper", data="&log"},
|
||||
log10={args=1, base=1, func="float_op_wrapper", data="&log10"},
|
||||
luaeval={args={1, 2}},
|
||||
map={args=2, base=1},
|
||||
maparg={args={1, 4}},
|
||||
@@ -256,7 +256,7 @@ return {
|
||||
nr2char={args={1, 2}},
|
||||
['or']={args=2},
|
||||
pathshorten={args=1},
|
||||
pow={args=2},
|
||||
pow={args=2, base=1},
|
||||
prevnonblank={args=1},
|
||||
printf={args=varargs(1), base=2},
|
||||
prompt_getprompt={args=1},
|
||||
@@ -282,7 +282,7 @@ return {
|
||||
['repeat']={args=2, base=1},
|
||||
resolve={args=1},
|
||||
reverse={args=1, base=1},
|
||||
round={args=1, func="float_op_wrapper", data="&round"},
|
||||
round={args=1, base=1, func="float_op_wrapper", data="&round"},
|
||||
rpcnotify={args=varargs(2)},
|
||||
rpcrequest={args=varargs(2)},
|
||||
rpcstart={args={1, 2}},
|
||||
@@ -331,8 +331,8 @@ return {
|
||||
sign_unplace={args={1, 2}},
|
||||
sign_unplacelist={args={1}},
|
||||
simplify={args=1},
|
||||
sin={args=1, func="float_op_wrapper", data="&sin"},
|
||||
sinh={args=1, func="float_op_wrapper", data="&sinh"},
|
||||
sin={args=1, base=1, func="float_op_wrapper", data="&sin"},
|
||||
sinh={args=1, base=1, func="float_op_wrapper", data="&sinh"},
|
||||
sockconnect={args={2,3}},
|
||||
sort={args={1, 3}, base=1},
|
||||
soundfold={args=1},
|
||||
@@ -340,9 +340,9 @@ return {
|
||||
spellbadword={args={0, 1}},
|
||||
spellsuggest={args={1, 3}},
|
||||
split={args={1, 3}, base=1},
|
||||
sqrt={args=1, func="float_op_wrapper", data="&sqrt"},
|
||||
sqrt={args=1, base=1, func="float_op_wrapper", data="&sqrt"},
|
||||
stdpath={args=1},
|
||||
str2float={args=1},
|
||||
str2float={args=1, base=1},
|
||||
str2list={args={1, 2}, base=1},
|
||||
str2nr={args={1, 2}},
|
||||
strcharpart={args={2, 3}},
|
||||
@@ -374,8 +374,8 @@ return {
|
||||
tabpagewinnr={args={1, 2}},
|
||||
tagfiles={},
|
||||
taglist={args={1, 2}},
|
||||
tan={args=1, func="float_op_wrapper", data="&tan"},
|
||||
tanh={args=1, func="float_op_wrapper", data="&tanh"},
|
||||
tan={args=1, base=1, func="float_op_wrapper", data="&tan"},
|
||||
tanh={args=1, base=1, func="float_op_wrapper", data="&tanh"},
|
||||
tempname={},
|
||||
termopen={args={1, 2}},
|
||||
test_garbagecollect_now={},
|
||||
@@ -389,7 +389,7 @@ return {
|
||||
toupper={args=1},
|
||||
tr={args=3},
|
||||
trim={args={1,3}},
|
||||
trunc={args=1, func="float_op_wrapper", data="&trunc"},
|
||||
trunc={args=1, base=1, func="float_op_wrapper", data="&trunc"},
|
||||
type={args=1, base=1},
|
||||
undofile={args=1},
|
||||
undotree={},
|
||||
|
@@ -7,6 +7,8 @@ end
|
||||
func Test_abs()
|
||||
call assert_equal('1.23', string(abs(1.23)))
|
||||
call assert_equal('1.23', string(abs(-1.23)))
|
||||
eval -1.23->abs()->string()->assert_equal('1.23')
|
||||
|
||||
call assert_equal('0.0', string(abs(0.0)))
|
||||
call assert_equal('0.0', string(abs(1.0/(1.0/0.0))))
|
||||
call assert_equal('0.0', string(abs(-1.0/(1.0/0.0))))
|
||||
@@ -22,6 +24,7 @@ endfunc
|
||||
func Test_sqrt()
|
||||
call assert_equal('0.0', string(sqrt(0.0)))
|
||||
call assert_equal('1.414214', string(sqrt(2.0)))
|
||||
eval 2.0->sqrt()->string()->assert_equal('1.414214')
|
||||
call assert_equal("str2float('inf')", string(sqrt(1.0/0.0)))
|
||||
call assert_equal("str2float('nan')", string(sqrt(-1.0)))
|
||||
call assert_equal("str2float('nan')", string(sqrt(0.0/0.0)))
|
||||
@@ -31,6 +34,7 @@ endfunc
|
||||
func Test_log()
|
||||
call assert_equal('0.0', string(log(1.0)))
|
||||
call assert_equal('-0.693147', string(log(0.5)))
|
||||
eval 0.5->log()->string()->assert_equal('-0.693147')
|
||||
call assert_equal("-str2float('inf')", string(log(0.0)))
|
||||
call assert_equal("str2float('nan')", string(log(-1.0)))
|
||||
call assert_equal("str2float('inf')", string(log(1.0/0.0)))
|
||||
@@ -42,6 +46,7 @@ func Test_log10()
|
||||
call assert_equal('0.0', string(log10(1.0)))
|
||||
call assert_equal('2.0', string(log10(100.0)))
|
||||
call assert_equal('2.079181', string(log10(120.0)))
|
||||
eval 120.0->log10()->string()->assert_equal('2.079181')
|
||||
call assert_equal("-str2float('inf')", string(log10(0.0)))
|
||||
call assert_equal("str2float('nan')", string(log10(-1.0)))
|
||||
call assert_equal("str2float('inf')", string(log10(1.0/0.0)))
|
||||
@@ -53,6 +58,7 @@ func Test_exp()
|
||||
call assert_equal('1.0', string(exp(0.0)))
|
||||
call assert_equal('7.389056', string(exp(2.0)))
|
||||
call assert_equal('0.367879', string(exp(-1.0)))
|
||||
eval -1.0->exp()->string()->assert_equal('0.367879')
|
||||
call assert_equal("str2float('inf')", string(exp(1.0/0.0)))
|
||||
call assert_equal('0.0', string(exp(-1.0/0.0)))
|
||||
call assert_equal("str2float('nan')", string(exp(0.0/0.0)))
|
||||
@@ -63,6 +69,7 @@ func Test_sin()
|
||||
call assert_equal('0.0', string(sin(0.0)))
|
||||
call assert_equal('0.841471', string(sin(1.0)))
|
||||
call assert_equal('-0.479426', string(sin(-0.5)))
|
||||
eval -0.5->sin()->string()->assert_equal('-0.479426')
|
||||
call assert_equal("str2float('nan')", string(sin(0.0/0.0)))
|
||||
call assert_equal("str2float('nan')", string(sin(1.0/0.0)))
|
||||
call assert_equal('0.0', string(sin(1.0/(1.0/0.0))))
|
||||
@@ -73,6 +80,8 @@ endfunc
|
||||
func Test_asin()
|
||||
call assert_equal('0.0', string(asin(0.0)))
|
||||
call assert_equal('1.570796', string(asin(1.0)))
|
||||
eval 1.0->asin()->string()->assert_equal('1.570796')
|
||||
|
||||
call assert_equal('-0.523599', string(asin(-0.5)))
|
||||
call assert_equal("str2float('nan')", string(asin(1.1)))
|
||||
call assert_equal("str2float('nan')", string(asin(1.0/0.0)))
|
||||
@@ -84,6 +93,7 @@ func Test_sinh()
|
||||
call assert_equal('0.0', string(sinh(0.0)))
|
||||
call assert_equal('0.521095', string(sinh(0.5)))
|
||||
call assert_equal('-1.026517', string(sinh(-0.9)))
|
||||
eval -0.9->sinh()->string()->assert_equal('-1.026517')
|
||||
call assert_equal("str2float('inf')", string(sinh(1.0/0.0)))
|
||||
call assert_equal("-str2float('inf')", string(sinh(-1.0/0.0)))
|
||||
call assert_equal("str2float('nan')", string(sinh(0.0/0.0)))
|
||||
@@ -94,6 +104,7 @@ func Test_cos()
|
||||
call assert_equal('1.0', string(cos(0.0)))
|
||||
call assert_equal('0.540302', string(cos(1.0)))
|
||||
call assert_equal('0.877583', string(cos(-0.5)))
|
||||
eval -0.5->cos()->string()->assert_equal('0.877583')
|
||||
call assert_equal("str2float('nan')", string(cos(0.0/0.0)))
|
||||
call assert_equal("str2float('nan')", string(cos(1.0/0.0)))
|
||||
call assert_fails('call cos("")', 'E808:')
|
||||
@@ -103,6 +114,7 @@ func Test_acos()
|
||||
call assert_equal('1.570796', string(acos(0.0)))
|
||||
call assert_equal('0.0', string(acos(1.0)))
|
||||
call assert_equal('3.141593', string(acos(-1.0)))
|
||||
eval -1.0->acos()->string()->assert_equal('3.141593')
|
||||
call assert_equal('2.094395', string(acos(-0.5)))
|
||||
call assert_equal("str2float('nan')", string(acos(1.1)))
|
||||
call assert_equal("str2float('nan')", string(acos(1.0/0.0)))
|
||||
@@ -113,6 +125,7 @@ endfunc
|
||||
func Test_cosh()
|
||||
call assert_equal('1.0', string(cosh(0.0)))
|
||||
call assert_equal('1.127626', string(cosh(0.5)))
|
||||
eval 0.5->cosh()->string()->assert_equal('1.127626')
|
||||
call assert_equal("str2float('inf')", string(cosh(1.0/0.0)))
|
||||
call assert_equal("str2float('inf')", string(cosh(-1.0/0.0)))
|
||||
call assert_equal("str2float('nan')", string(cosh(0.0/0.0)))
|
||||
@@ -123,6 +136,7 @@ func Test_tan()
|
||||
call assert_equal('0.0', string(tan(0.0)))
|
||||
call assert_equal('0.546302', string(tan(0.5)))
|
||||
call assert_equal('-0.546302', string(tan(-0.5)))
|
||||
eval -0.5->tan()->string()->assert_equal('-0.546302')
|
||||
call assert_equal("str2float('nan')", string(tan(1.0/0.0)))
|
||||
call assert_equal("str2float('nan')", string(cos(0.0/0.0)))
|
||||
call assert_equal('0.0', string(tan(1.0/(1.0/0.0))))
|
||||
@@ -134,6 +148,7 @@ func Test_atan()
|
||||
call assert_equal('0.0', string(atan(0.0)))
|
||||
call assert_equal('0.463648', string(atan(0.5)))
|
||||
call assert_equal('-0.785398', string(atan(-1.0)))
|
||||
eval -1.0->atan()->string()->assert_equal('-0.785398')
|
||||
call assert_equal('1.570796', string(atan(1.0/0.0)))
|
||||
call assert_equal('-1.570796', string(atan(-1.0/0.0)))
|
||||
call assert_equal("str2float('nan')", string(atan(0.0/0.0)))
|
||||
@@ -144,6 +159,7 @@ func Test_atan2()
|
||||
call assert_equal('-2.356194', string(atan2(-1, -1)))
|
||||
call assert_equal('2.356194', string(atan2(1, -1)))
|
||||
call assert_equal('0.0', string(atan2(1.0, 1.0/0.0)))
|
||||
eval 1.0->atan2(1.0/0.0)->string()->assert_equal('0.0')
|
||||
call assert_equal('1.570796', string(atan2(1.0/0.0, 1.0)))
|
||||
call assert_equal("str2float('nan')", string(atan2(0.0/0.0, 1.0)))
|
||||
call assert_fails('call atan2("", -1)', 'E808:')
|
||||
@@ -154,6 +170,7 @@ func Test_tanh()
|
||||
call assert_equal('0.0', string(tanh(0.0)))
|
||||
call assert_equal('0.462117', string(tanh(0.5)))
|
||||
call assert_equal('-0.761594', string(tanh(-1.0)))
|
||||
eval -1.0->tanh()->string()->assert_equal('-0.761594')
|
||||
call assert_equal('1.0', string(tanh(1.0/0.0)))
|
||||
call assert_equal('-1.0', string(tanh(-1.0/0.0)))
|
||||
call assert_equal("str2float('nan')", string(tanh(0.0/0.0)))
|
||||
@@ -164,6 +181,7 @@ func Test_fmod()
|
||||
call assert_equal('0.13', string(fmod(12.33, 1.22)))
|
||||
call assert_equal('-0.13', string(fmod(-12.33, 1.22)))
|
||||
call assert_equal("str2float('nan')", string(fmod(1.0/0.0, 1.0)))
|
||||
eval (1.0/0.0)->fmod(1.0)->string()->assert_equal("str2float('nan')")
|
||||
" On Windows we get "nan" instead of 1.0, accept both.
|
||||
let res = string(fmod(1.0, 1.0/0.0))
|
||||
if res != "str2float('nan')"
|
||||
@@ -177,6 +195,7 @@ endfunc
|
||||
func Test_pow()
|
||||
call assert_equal('1.0', string(pow(0.0, 0.0)))
|
||||
call assert_equal('8.0', string(pow(2.0, 3.0)))
|
||||
eval 2.0->pow(3.0)->string()->assert_equal('8.0')
|
||||
call assert_equal("str2float('nan')", string(pow(2.0, 0.0/0.0)))
|
||||
call assert_equal("str2float('nan')", string(pow(0.0/0.0, 3.0)))
|
||||
call assert_equal("str2float('nan')", string(pow(0.0/0.0, 3.0)))
|
||||
@@ -192,6 +211,7 @@ func Test_str2float()
|
||||
call assert_equal('1.0', string(str2float(' 1.0 ')))
|
||||
call assert_equal('1.23', string(str2float('1.23')))
|
||||
call assert_equal('1.23', string(str2float('1.23abc')))
|
||||
eval '1.23abc'->str2float()->string()->assert_equal('1.23')
|
||||
call assert_equal('1.0e40', string(str2float('1e40')))
|
||||
call assert_equal('-1.23', string(str2float('-1.23')))
|
||||
call assert_equal('1.23', string(str2float(' + 1.23 ')))
|
||||
@@ -228,6 +248,7 @@ func Test_float2nr()
|
||||
call assert_equal(1, float2nr(1.234))
|
||||
call assert_equal(123, float2nr(1.234e2))
|
||||
call assert_equal(12, float2nr(123.4e-1))
|
||||
eval 123.4e-1->float2nr()->assert_equal(12)
|
||||
let max_number = 1/0
|
||||
let min_number = -max_number
|
||||
call assert_equal(max_number/2+1, float2nr(pow(2, 62)))
|
||||
@@ -242,6 +263,7 @@ func Test_floor()
|
||||
call assert_equal('2.0', string(floor(2.0)))
|
||||
call assert_equal('2.0', string(floor(2.11)))
|
||||
call assert_equal('2.0', string(floor(2.99)))
|
||||
eval 2.99->floor()->string()->assert_equal('2.0')
|
||||
call assert_equal('-3.0', string(floor(-2.11)))
|
||||
call assert_equal('-3.0', string(floor(-2.99)))
|
||||
call assert_equal("str2float('nan')", string(floor(0.0/0.0)))
|
||||
@@ -255,6 +277,7 @@ func Test_ceil()
|
||||
call assert_equal('3.0', string(ceil(2.11)))
|
||||
call assert_equal('3.0', string(ceil(2.99)))
|
||||
call assert_equal('-2.0', string(ceil(-2.11)))
|
||||
eval -2.11->ceil()->string()->assert_equal('-2.0')
|
||||
call assert_equal('-2.0', string(ceil(-2.99)))
|
||||
call assert_equal("str2float('nan')", string(ceil(0.0/0.0)))
|
||||
call assert_equal("str2float('inf')", string(ceil(1.0/0.0)))
|
||||
@@ -266,6 +289,7 @@ func Test_round()
|
||||
call assert_equal('2.0', string(round(2.1)))
|
||||
call assert_equal('3.0', string(round(2.5)))
|
||||
call assert_equal('3.0', string(round(2.9)))
|
||||
eval 2.9->round()->string()->assert_equal('3.0')
|
||||
call assert_equal('-2.0', string(round(-2.1)))
|
||||
call assert_equal('-3.0', string(round(-2.5)))
|
||||
call assert_equal('-3.0', string(round(-2.9)))
|
||||
@@ -279,6 +303,7 @@ func Test_trunc()
|
||||
call assert_equal('2.0', string(trunc(2.1)))
|
||||
call assert_equal('2.0', string(trunc(2.5)))
|
||||
call assert_equal('2.0', string(trunc(2.9)))
|
||||
eval 2.9->trunc()->string()->assert_equal('2.0')
|
||||
call assert_equal('-2.0', string(trunc(-2.1)))
|
||||
call assert_equal('-2.0', string(trunc(-2.5)))
|
||||
call assert_equal('-2.0', string(trunc(-2.9)))
|
||||
@@ -291,6 +316,7 @@ endfunc
|
||||
func Test_isinf()
|
||||
call assert_equal(1, isinf(1.0/0.0))
|
||||
call assert_equal(-1, isinf(-1.0/0.0))
|
||||
eval (-1.0/0.0)->isinf()->assert_equal(-1)
|
||||
call assert_false(isinf(1.0))
|
||||
call assert_false(isinf(0.0/0.0))
|
||||
call assert_false(isinf('a'))
|
||||
@@ -302,6 +328,7 @@ func Test_isnan()
|
||||
call assert_true(isnan(0.0/0.0))
|
||||
call assert_false(isnan(1.0))
|
||||
call assert_false(isnan(1.0/0.0))
|
||||
eval (1.0/0.0)->isnan()->assert_false()
|
||||
call assert_false(isnan(-1.0/0.0))
|
||||
call assert_false(isnan('a'))
|
||||
call assert_false(isnan([]))
|
||||
|
Reference in New Issue
Block a user