# HG changeset patch # User Bram Moolenaar # Date 1599844504 -7200 # Node ID 7b9e8fd7ea5bcc8baa65ec93ba74167e5990ea1c # Parent 62e64e02087873e91f4aca951339da1685677649 patch 8.2.1660: assert functions require passing expected as first argument Commit: https://github.com/vim/vim/commit/c0c71e9d9813f025c5fc1ce84eae309843395199 Author: Bram Moolenaar Date: Fri Sep 11 19:09:48 2020 +0200 patch 8.2.1660: assert functions require passing expected as first argument Problem: Assert functions require passing expected result as the first argument, which isn't obvious. Solution: Use a method, as in "runtest()->assert_equal(expected)". diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim --- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -10,7 +10,7 @@ func Test_def_basic() def SomeFunc(): string return 'yes' enddef - call assert_equal('yes', SomeFunc()) + call SomeFunc()->assert_equal('yes') endfunc def ReturnString(): string @@ -28,8 +28,8 @@ def ReturnGlobal(): number enddef def Test_return_something() - assert_equal('string', ReturnString()) - assert_equal(123, ReturnNumber()) + ReturnString()->assert_equal('string') + ReturnNumber()->assert_equal(123) assert_fails('ReturnGlobal()', 'E1029: Expected number but got string', '', 1, 'ReturnGlobal') enddef @@ -69,7 +69,7 @@ enddef def Test_return_nothing() ReturnNothing() - assert_equal(1, s:nothing) + s:nothing->assert_equal(1) enddef func Increment() @@ -82,8 +82,8 @@ def Test_call_ufunc_count() Increment() Increment() # works with and without :call - assert_equal(4, g:counter) - call assert_equal(4, g:counter) + g:counter->assert_equal(4) + eval g:counter->assert_equal(4) unlet g:counter enddef @@ -96,9 +96,9 @@ def MyVarargs(arg: string, ...rest: list enddef def Test_call_varargs() - assert_equal('one', MyVarargs('one')) - assert_equal('one,two', MyVarargs('one', 'two')) - assert_equal('one,two,three', MyVarargs('one', 'two', 'three')) + MyVarargs('one')->assert_equal('one') + MyVarargs('one', 'two')->assert_equal('one,two') + MyVarargs('one', 'two', 'three')->assert_equal('one,two,three') enddef def MyDefaultArgs(name = 'string'): string @@ -110,13 +110,13 @@ def MyDefaultSecond(name: string, second enddef def Test_call_default_args() - assert_equal('string', MyDefaultArgs()) - assert_equal('one', MyDefaultArgs('one')) + MyDefaultArgs()->assert_equal('string') + MyDefaultArgs('one')->assert_equal('one') assert_fails('MyDefaultArgs("one", "two")', 'E118:', '', 3, 'Test_call_default_args') - assert_equal('test', MyDefaultSecond('test')) - assert_equal('test', MyDefaultSecond('test', true)) - assert_equal('none', MyDefaultSecond('test', false)) + MyDefaultSecond('test')->assert_equal('test') + MyDefaultSecond('test', true)->assert_equal('test') + MyDefaultSecond('test', false)->assert_equal('none') CheckScriptFailure(['def Func(arg: number = asdf)', 'enddef', 'defcompile'], 'E1001:') CheckScriptFailure(['def Func(arg: number = "text")', 'enddef', 'defcompile'], 'E1013: argument 1: type mismatch, expected number but got string') @@ -126,7 +126,7 @@ def Test_nested_function() def Nested(arg: string): string return 'nested ' .. arg enddef - assert_equal('nested function', Nested('function')) + Nested('function')->assert_equal('nested function') CheckDefFailure(['def Nested()', 'enddef', 'Nested(66)'], 'E118:') CheckDefFailure(['def Nested(arg: string)', 'enddef', 'Nested()'], 'E119:') @@ -154,8 +154,8 @@ def Test_nested_function() enddef func Test_call_default_args_from_func() - call assert_equal('string', MyDefaultArgs()) - call assert_equal('one', MyDefaultArgs('one')) + call MyDefaultArgs()->assert_equal('string') + call MyDefaultArgs('one')->assert_equal('one') call assert_fails('call MyDefaultArgs("one", "two")', 'E118:', '', 3, 'Test_call_default_args_from_func') endfunc @@ -169,13 +169,13 @@ def Test_nested_global_function() enddef defcompile Outer() - assert_equal('inner', g:Inner()) + g:Inner()->assert_equal('inner') delfunc g:Inner Outer() - assert_equal('inner', g:Inner()) + g:Inner()->assert_equal('inner') delfunc g:Inner Outer() - assert_equal('inner', g:Inner()) + g:Inner()->assert_equal('inner') delfunc g:Inner END CheckScriptSuccess(lines) @@ -217,8 +217,8 @@ def Test_global_local_function() def Func(): string return 'local' enddef - assert_equal('global', g:Func()) - assert_equal('local', Func()) + g:Func()->assert_equal('global') + Func()->assert_equal('local') END CheckScriptSuccess(lines) @@ -263,9 +263,9 @@ enddef def Test_call_def_varargs() assert_fails('MyDefVarargs()', 'E119:', '', 1, 'Test_call_def_varargs') - assert_equal('one,foo', MyDefVarargs('one')) - assert_equal('one,two', MyDefVarargs('one', 'two')) - assert_equal('one,two,three', MyDefVarargs('one', 'two', 'three')) + MyDefVarargs('one')->assert_equal('one,foo') + MyDefVarargs('one', 'two')->assert_equal('one,two') + MyDefVarargs('one', 'two', 'three')->assert_equal('one,two,three') CheckDefFailure(['MyDefVarargs("one", 22)'], 'E1013: argument 2: type mismatch, expected string but got number') CheckDefFailure(['MyDefVarargs("one", "two", 123)'], @@ -320,7 +320,7 @@ enddef def Test_call_call() let l = [3, 2, 1] call('reverse', [l]) - assert_equal([1, 2, 3], l) + l->assert_equal([1, 2, 3]) enddef let s:value = '' @@ -341,24 +341,24 @@ def Test_func_type_varargs() let RefDefArg: func(?string) RefDefArg = FuncOneDefArg RefDefArg() - assert_equal('text', s:value) + s:value->assert_equal('text') RefDefArg('some') - assert_equal('some', s:value) + s:value->assert_equal('some') let RefDef2Arg: func(?number, ?string): string RefDef2Arg = FuncTwoDefArg - assert_equal('123text', RefDef2Arg()) - assert_equal('99text', RefDef2Arg(99)) - assert_equal('77some', RefDef2Arg(77, 'some')) + RefDef2Arg()->assert_equal('123text') + RefDef2Arg(99)->assert_equal('99text') + RefDef2Arg(77, 'some')->assert_equal('77some') CheckDefFailure(['let RefWrong: func(string?)'], 'E1010:') CheckDefFailure(['let RefWrong: func(?string, string)'], 'E1007:') let RefVarargs: func(...list): string RefVarargs = FuncVarargs - assert_equal('', RefVarargs()) - assert_equal('one', RefVarargs('one')) - assert_equal('one,two', RefVarargs('one', 'two')) + RefVarargs()->assert_equal('') + RefVarargs('one')->assert_equal('one') + RefVarargs('one', 'two')->assert_equal('one,two') CheckDefFailure(['let RefWrong: func(...list, string)'], 'E110:') CheckDefFailure(['let RefWrong: func(...list, ?string)'], 'E110:') @@ -370,9 +370,9 @@ def MyVarargsOnly(...args: list) enddef def Test_call_varargs_only() - assert_equal('', MyVarargsOnly()) - assert_equal('one', MyVarargsOnly('one')) - assert_equal('one,two', MyVarargsOnly('one', 'two')) + MyVarargsOnly()->assert_equal('') + MyVarargsOnly('one')->assert_equal('one') + MyVarargsOnly('one', 'two')->assert_equal('one,two') CheckDefFailure(['MyVarargsOnly(1)'], 'E1013: argument 1: type mismatch, expected string but got number') CheckDefFailure(['MyVarargsOnly("one", 2)'], 'E1013: argument 2: type mismatch, expected string but got number') enddef @@ -395,16 +395,16 @@ def Test_assign_to_argument() # works for dict and list let d: dict = {} DictArg(d) - assert_equal('value', d['key']) + d['key']->assert_equal('value') let l: list = [] ListArg(l) - assert_equal('value', l[0]) + l[0]->assert_equal('value') CheckScriptFailure(['def Func(arg: number)', 'arg = 3', 'enddef', 'defcompile'], 'E1090:') enddef def Test_call_func_defined_later() - assert_equal('one', g:DefinedLater('one')) + g:DefinedLater('one')->assert_equal('one') assert_fails('NotDefined("one")', 'E117:', '', 2, 'Test_call_func_defined_later') enddef @@ -413,7 +413,7 @@ func DefinedLater(arg) endfunc def Test_call_funcref() - assert_equal(3, g:SomeFunc('abc')) + g:SomeFunc('abc')->assert_equal(3) assert_fails('NotAFunc()', 'E117:', '', 2, 'Test_call_funcref') # comment after call assert_fails('g:NotAFunc()', 'E117:', '', 3, 'Test_call_funcref') @@ -423,7 +423,7 @@ def Test_call_funcref() return 123 enddef let Funcref: func: number = function('RetNumber') - assert_equal(123, Funcref()) + Funcref()->assert_equal(123) END CheckScriptSuccess(lines) @@ -436,7 +436,7 @@ def Test_call_funcref() return F() enddef let Funcref = function('RetNumber') - assert_equal(123, Bar(Funcref)) + Bar(Funcref)->assert_equal(123) END CheckScriptSuccess(lines) @@ -466,9 +466,9 @@ def Test_call_funcref() enddef let Funcref: func(?number) = function('EchoNr') Funcref() - assert_equal(34, g:echo) + g:echo->assert_equal(34) Funcref(123) - assert_equal(123, g:echo) + g:echo->assert_equal(123) END CheckScriptSuccess(lines) @@ -479,9 +479,9 @@ def Test_call_funcref() enddef let Funcref: func(...list) = function('EchoList') Funcref() - assert_equal([], g:echo) + g:echo->assert_equal([]) Funcref(1, 2, 3) - assert_equal([1, 2, 3], g:echo) + g:echo->assert_equal([1, 2, 3]) END CheckScriptSuccess(lines) @@ -493,17 +493,17 @@ def Test_call_funcref() return nr enddef let Funcref: func(number, ?number, ...list): number = function('OptAndVar') - assert_equal(10, Funcref(10)) - assert_equal(12, g:optarg) - assert_equal([], g:listarg) + Funcref(10)->assert_equal(10) + g:optarg->assert_equal(12) + g:listarg->assert_equal([]) - assert_equal(11, Funcref(11, 22)) - assert_equal(22, g:optarg) - assert_equal([], g:listarg) + Funcref(11, 22)->assert_equal(11) + g:optarg->assert_equal(22) + g:listarg->assert_equal([]) - assert_equal(17, Funcref(17, 18, 1, 2, 3)) - assert_equal(18, g:optarg) - assert_equal([1, 2, 3], g:listarg) + Funcref(17, 18, 1, 2, 3)->assert_equal(17) + g:optarg->assert_equal(18) + g:listarg->assert_equal([1, 2, 3]) END CheckScriptSuccess(lines) enddef @@ -604,68 +604,68 @@ def Test_vim9script_call() var = arg enddef MyFunc('foobar') - assert_equal('foobar', var) + var->assert_equal('foobar') let str = 'barfoo' str->MyFunc() - assert_equal('barfoo', var) + var->assert_equal('barfoo') g:value = 'value' g:value->MyFunc() - assert_equal('value', var) + var->assert_equal('value') let listvar = [] def ListFunc(arg: list) listvar = arg enddef [1, 2, 3]->ListFunc() - assert_equal([1, 2, 3], listvar) + listvar->assert_equal([1, 2, 3]) let dictvar = {} def DictFunc(arg: dict) dictvar = arg enddef {'a': 1, 'b': 2}->DictFunc() - assert_equal(#{a: 1, b: 2}, dictvar) + dictvar->assert_equal(#{a: 1, b: 2}) def CompiledDict() {'a': 3, 'b': 4}->DictFunc() enddef CompiledDict() - assert_equal(#{a: 3, b: 4}, dictvar) + dictvar->assert_equal(#{a: 3, b: 4}) #{a: 3, b: 4}->DictFunc() - assert_equal(#{a: 3, b: 4}, dictvar) + dictvar->assert_equal(#{a: 3, b: 4}) ('text')->MyFunc() - assert_equal('text', var) + var->assert_equal('text') ("some")->MyFunc() - assert_equal('some', var) + var->assert_equal('some') # line starting with single quote is not a mark # line starting with double quote can be a method call 'asdfasdf'->MyFunc() - assert_equal('asdfasdf', var) + var->assert_equal('asdfasdf') "xyz"->MyFunc() - assert_equal('xyz', var) + var->assert_equal('xyz') def UseString() 'xyork'->MyFunc() enddef UseString() - assert_equal('xyork', var) + var->assert_equal('xyork') def UseString2() "knife"->MyFunc() enddef UseString2() - assert_equal('knife', var) + var->assert_equal('knife') # prepending a colon makes it a mark new setline(1, ['aaa', 'bbb', 'ccc']) normal! 3Gmt1G :'t - assert_equal(3, getcurpos()[1]) + getcurpos()[1]->assert_equal(3) bwipe! MyFunc( @@ -770,9 +770,9 @@ def Test_redef_failure() so Xdef delete('Xdef') - assert_equal(0, g:Func0()) - assert_equal('Func1', g:Func1()) - assert_equal('Func2', g:Func2()) + g:Func0()->assert_equal(0) + g:Func1()->assert_equal('Func1') + g:Func2()->assert_equal('Func2') delfunc! Func0 delfunc! Func1 @@ -823,12 +823,12 @@ func Test_InternalFuncRetType() call writefile(lines, 'Xscript') source Xscript - call assert_equal(2.0, RetFloat()) - call assert_equal([['k', 'v']], RetListAny()) - call assert_equal(['a', 'b', 'c'], RetListString()) - call assert_notequal([], RetListDictAny()) - call assert_notequal({}, RetDictNumber()) - call assert_notequal({}, RetDictString()) + call RetFloat()->assert_equal(2.0) + call RetListAny()->assert_equal([['k', 'v']]) + call RetListString()->assert_equal(['a', 'b', 'c']) + call RetListDictAny()->assert_notequal([]) + call RetDictNumber()->assert_notequal({}) + call RetDictString()->assert_notequal({}) call delete('Xscript') endfunc @@ -895,28 +895,28 @@ def Test_func_type() s:funcResult = 0 Ref1 = FuncNoArgNoRet Ref1() - assert_equal(11, s:funcResult) + s:funcResult->assert_equal(11) let Ref2: func s:funcResult = 0 Ref2 = FuncNoArgNoRet Ref2() - assert_equal(11, s:funcResult) + s:funcResult->assert_equal(11) s:funcResult = 0 Ref2 = FuncOneArgNoRet Ref2(12) - assert_equal(12, s:funcResult) + s:funcResult->assert_equal(12) s:funcResult = 0 Ref2 = FuncNoArgRetNumber - assert_equal(1234, Ref2()) - assert_equal(22, s:funcResult) + Ref2()->assert_equal(1234) + s:funcResult->assert_equal(22) s:funcResult = 0 Ref2 = FuncOneArgRetNumber - assert_equal(13, Ref2(13)) - assert_equal(13, s:funcResult) + Ref2(13)->assert_equal(13) + s:funcResult->assert_equal(13) enddef def Test_repeat_return_type() @@ -924,13 +924,13 @@ def Test_repeat_return_type() for n in repeat([1], 3) res += n endfor - assert_equal(3, res) + res->assert_equal(3) res = 0 for n in add([1, 2], 3) res += n endfor - assert_equal(6, res) + res->assert_equal(6) enddef def Test_argv_return_type() @@ -939,7 +939,7 @@ def Test_argv_return_type() for name in argv() res ..= name endfor - assert_equal('fileonefiletwo', res) + res->assert_equal('fileonefiletwo') enddef def Test_func_type_part() @@ -987,14 +987,14 @@ enddef def Test_func_return_type() let nr: number nr = FuncNoArgRetNumber() - assert_equal(1234, nr) + nr->assert_equal(1234) nr = FuncOneArgRetAny(122) - assert_equal(122, nr) + nr->assert_equal(122) let str: string str = FuncOneArgRetAny('yes') - assert_equal('yes', str) + str->assert_equal('yes') CheckDefFailure(['let str: string', 'str = FuncNoArgRetNumber()'], 'E1012: type mismatch, expected string but got number') enddef @@ -1016,17 +1016,17 @@ def MultiLineComment( enddef def Test_multiline() - assert_equal('text1234', MultiLine('text')) - assert_equal('text777', MultiLine('text', 777)) - assert_equal('text777one', MultiLine('text', 777, 'one')) - assert_equal('text777one-two', MultiLine('text', 777, 'one', 'two')) + MultiLine('text')->assert_equal('text1234') + MultiLine('text', 777)->assert_equal('text777') + MultiLine('text', 777, 'one')->assert_equal('text777one') + MultiLine('text', 777, 'one', 'two')->assert_equal('text777one-two') enddef func Test_multiline_not_vim9() - call assert_equal('text1234', MultiLine('text')) - call assert_equal('text777', MultiLine('text', 777)) - call assert_equal('text777one', MultiLine('text', 777, 'one')) - call assert_equal('text777one-two', MultiLine('text', 777, 'one', 'two')) + call MultiLine('text')->assert_equal('text1234') + call MultiLine('text', 777)->assert_equal('text777') + call MultiLine('text', 777, 'one')->assert_equal('text777one') + call MultiLine('text', 777, 'one', 'two')->assert_equal('text777one-two') endfunc @@ -1041,7 +1041,7 @@ func Test_E1056_1059() catch /E1056:/ let caught_1056 = 1 endtry - call assert_equal(1, caught_1056) + eval caught_1056->assert_equal(1) let caught_1059 = 0 try @@ -1051,7 +1051,7 @@ func Test_E1056_1059() catch /E1059:/ let caught_1059 = 1 endtry - call assert_equal(1, caught_1059) + eval caught_1059->assert_equal(1) endfunc func DelMe() @@ -1074,8 +1074,8 @@ def Test_error_reporting() source Xdef assert_report('should have failed') catch /E476:/ - assert_match('Invalid command: invalid', v:exception) - assert_match(', line 3$', v:throwpoint) + v:exception->assert_match('Invalid command: invalid') + v:throwpoint->assert_match(', line 3$') endtry # comment lines after the start of the function @@ -1094,8 +1094,8 @@ def Test_error_reporting() source Xdef assert_report('should have failed') catch /E476:/ - assert_match('Invalid command: invalid', v:exception) - assert_match(', line 4$', v:throwpoint) + v:exception->assert_match('Invalid command: invalid') + v:throwpoint->assert_match(', line 4$') endtry lines =<< trim END @@ -1113,7 +1113,7 @@ def Test_error_reporting() source Xdef assert_report('should have failed') catch /E716:/ - assert_match('_Func, line 3$', v:throwpoint) + v:throwpoint->assert_match('_Func, line 3$') endtry call delete('Xdef') @@ -1138,7 +1138,7 @@ enddef def Test_closure_simple() let local = 'some ' - assert_equal('some more', RefFunc({s -> local .. s})) + RefFunc({s -> local .. s})->assert_equal('some more') enddef def MakeRef() @@ -1148,7 +1148,7 @@ enddef def Test_closure_ref_after_return() MakeRef() - assert_equal('some thing', g:Ref('thing')) + g:Ref('thing')->assert_equal('some thing') unlet g:Ref enddef @@ -1160,11 +1160,11 @@ enddef def Test_closure_two_refs() MakeTwoRefs() - assert_equal('some', join(g:Read(), ' ')) + join(g:Read(), ' ')->assert_equal('some') g:Extend('more') - assert_equal('some more', join(g:Read(), ' ')) + join(g:Read(), ' ')->assert_equal('some more') g:Extend('even') - assert_equal('some more even', join(g:Read(), ' ')) + join(g:Read(), ' ')->assert_equal('some more even') unlet g:Extend unlet g:Read @@ -1180,11 +1180,11 @@ enddef def Test_closure_two_indirect_refs() MakeTwoRefs() - assert_equal('some', ReadRef(g:Read)) + ReadRef(g:Read)->assert_equal('some') ExtendRef(g:Extend, 'more') - assert_equal('some more', ReadRef(g:Read)) + ReadRef(g:Read)->assert_equal('some more') ExtendRef(g:Extend, 'even') - assert_equal('some more even', ReadRef(g:Read)) + ReadRef(g:Read)->assert_equal('some more even') unlet g:Extend unlet g:Read @@ -1202,10 +1202,10 @@ enddef def Test_closure_using_argument() MakeArgRefs('arg_val') - assert_equal('arg_val/loc_val/call_val', g:UseArg('call_val')) + g:UseArg('call_val')->assert_equal('arg_val/loc_val/call_val') MakeArgRefsVarargs('arg_val', 'one', 'two') - assert_equal('arg_val/the_loc/call_val/one two', g:UseVararg('call_val')) + g:UseVararg('call_val')->assert_equal('arg_val/the_loc/call_val/one two') unlet g:UseArg unlet g:UseVararg @@ -1227,11 +1227,11 @@ enddef def Test_closure_append_get() MakeGetAndAppendRefs() - assert_equal('a', g:Get()) + g:Get()->assert_equal('a') g:Append('-b') - assert_equal('a-b', g:Get()) + g:Get()->assert_equal('a-b') g:Append('-c') - assert_equal('a-b-c', g:Get()) + g:Get()->assert_equal('a-b-c') unlet g:Append unlet g:Get @@ -1242,7 +1242,7 @@ def Test_nested_closure() def Closure(arg: string): string return local .. arg enddef - assert_equal('text!!!', Closure('!!!')) + Closure('!!!')->assert_equal('text!!!') enddef func GetResult(Ref) @@ -1252,7 +1252,7 @@ endfunc def Test_call_closure_not_compiled() let text = 'text' g:Ref = {s -> s .. text} - assert_equal('sometext', GetResult(g:Ref)) + GetResult(g:Ref)->assert_equal('sometext') enddef def Test_sort_return_type() @@ -1262,18 +1262,18 @@ enddef def Test_getqflist_return_type() let l = getqflist() - assert_equal([], l) + l->assert_equal([]) let d = getqflist(#{items: 0}) - assert_equal(#{items: []}, d) + d->assert_equal(#{items: []}) enddef def Test_getloclist_return_type() let l = getloclist(1) - assert_equal([], l) + l->assert_equal([]) let d = getloclist(1, #{items: 0}) - assert_equal(#{items: []}, d) + d->assert_equal(#{items: []}) enddef def Test_copy_return_type() @@ -1282,14 +1282,14 @@ def Test_copy_return_type() for n in l res += n endfor - assert_equal(6, res) + res->assert_equal(6) let dl = deepcopy([1, 2, 3]) res = 0 for n in dl res += n endfor - assert_equal(6, res) + res->assert_equal(6) dl = deepcopy([1, 2, 3], true) enddef @@ -1300,7 +1300,7 @@ def Test_extend_return_type() for n in l res += n endfor - assert_equal(6, res) + res->assert_equal(6) enddef def Test_garbagecollect() @@ -1313,12 +1313,12 @@ def Test_insert_return_type() for n in l res += n endfor - assert_equal(6, res) + res->assert_equal(6) enddef def Test_keys_return_type() const var: list = #{a: 1, b: 2}->keys() - assert_equal(['a', 'b'], var) + var->assert_equal(['a', 'b']) enddef def Test_reverse_return_type() @@ -1327,7 +1327,7 @@ def Test_reverse_return_type() for n in l res += n endfor - assert_equal(6, res) + res->assert_equal(6) enddef def Test_remove_return_type() @@ -1336,7 +1336,7 @@ def Test_remove_return_type() for n in l res += n endfor - assert_equal(3, res) + res->assert_equal(3) enddef def Test_filter_return_type() @@ -1345,26 +1345,26 @@ def Test_filter_return_type() for n in l res += n endfor - assert_equal(6, res) + res->assert_equal(6) enddef def Test_bufnr() let buf = bufnr() - assert_equal(buf, bufnr('%')) + bufnr('%')->assert_equal(buf) buf = bufnr('Xdummy', true) - assert_notequal(-1, buf) + buf->assert_notequal(-1) exe 'bwipe! ' .. buf enddef def Test_col() new setline(1, 'asdf') - assert_equal(5, col([1, '$'])) + col([1, '$'])->assert_equal(5) enddef def Test_char2nr() - assert_equal(12354, char2nr('あ', true)) + char2nr('あ', true)->assert_equal(12354) enddef def Test_getreg_return_type() @@ -1389,7 +1389,7 @@ def Line_continuation_in_def(dir: string enddef def Test_line_continuation_in_def() - assert_equal('full', Line_continuation_in_def('.')) + Line_continuation_in_def('.')->assert_equal('full') enddef def Line_continuation_in_lambda(): list @@ -1401,7 +1401,7 @@ def Line_continuation_in_lambda(): list< enddef def Test_line_continuation_in_lambda() - assert_equal(['D', 'C', 'B', 'A'], Line_continuation_in_lambda()) + Line_continuation_in_lambda()->assert_equal(['D', 'C', 'B', 'A']) enddef func Test_silent_echo() @@ -1430,9 +1430,9 @@ endfunc def Test_bufname() split SomeFile - assert_equal('SomeFile', bufname('%')) + bufname('%')->assert_equal('SomeFile') edit OtherFile - assert_equal('SomeFile', bufname('#')) + bufname('#')->assert_equal('SomeFile') close enddef @@ -1442,7 +1442,7 @@ def Test_bufwinid() let SomeFileID = win_getid() below split OtherFile below split SomeFile - assert_equal(SomeFileID, bufwinid('SomeFile')) + bufwinid('SomeFile')->assert_equal(SomeFileID) win_gotoid(origwin) only @@ -1451,19 +1451,19 @@ def Test_bufwinid() enddef def Test_count() - assert_equal(3, count('ABC ABC ABC', 'b', true)) - assert_equal(0, count('ABC ABC ABC', 'b', false)) + count('ABC ABC ABC', 'b', true)->assert_equal(3) + count('ABC ABC ABC', 'b', false)->assert_equal(0) enddef def Test_expand() split SomeFile - assert_equal(['SomeFile'], expand('%', true, true)) + expand('%', true, true)->assert_equal(['SomeFile']) close enddef def Test_getbufinfo() let bufinfo = getbufinfo(bufnr()) - assert_equal(bufinfo, getbufinfo('%')) + getbufinfo('%')->assert_equal(bufinfo) edit Xtestfile1 hide edit Xtestfile2 @@ -1479,7 +1479,7 @@ def Test_getbufline() e # let lines = ['aaa', 'bbb', 'ccc'] setbufline(buf, 1, lines) - assert_equal(lines, getbufline('#', 1, '$')) + getbufline('#', 1, '$')->assert_equal(lines) bwipe! enddef @@ -1488,57 +1488,57 @@ def Test_getchangelist() new setline(1, 'some text') let changelist = bufnr()->getchangelist() - assert_equal(changelist, getchangelist('%')) + getchangelist('%')->assert_equal(changelist) bwipe! enddef def Test_getchar() while getchar(0) endwhile - assert_equal(0, getchar(true)) + getchar(true)->assert_equal(0) enddef def Test_getcompletion() set wildignore=*.vim,*~ let l = getcompletion('run', 'file', true) - assert_equal([], l) + l->assert_equal([]) set wildignore& enddef def Test_getreg() let lines = ['aaa', 'bbb', 'ccc'] setreg('a', lines) - assert_equal(lines, getreg('a', true, true)) + getreg('a', true, true)->assert_equal(lines) enddef def Test_glob() - assert_equal(['runtest.vim'], glob('runtest.vim', true, true, true)) + glob('runtest.vim', true, true, true)->assert_equal(['runtest.vim']) enddef def Test_globpath() - assert_equal(['./runtest.vim'], globpath('.', 'runtest.vim', true, true, true)) + globpath('.', 'runtest.vim', true, true, true)->assert_equal(['./runtest.vim']) enddef def Test_has() - assert_equal(1, has('eval', true)) + has('eval', true)->assert_equal(1) enddef def Test_hasmapto() - assert_equal(0, hasmapto('foobar', 'i', true)) + hasmapto('foobar', 'i', true)->assert_equal(0) iabbrev foo foobar - assert_equal(1, hasmapto('foobar', 'i', true)) + hasmapto('foobar', 'i', true)->assert_equal(1) iunabbrev foo enddef def Test_index() - assert_equal(3, index(['a', 'b', 'a', 'B'], 'b', 2, true)) + index(['a', 'b', 'a', 'B'], 'b', 2, true)->assert_equal(3) enddef def Test_list2str_str2list_utf8() let s = "\u3042\u3044" let l = [0x3042, 0x3044] - assert_equal(l, str2list(s, true)) - assert_equal(s, list2str(l, true)) + str2list(s, true)->assert_equal(l) + list2str(l, true)->assert_equal(s) enddef def SID(): number @@ -1550,7 +1550,7 @@ enddef def Test_maparg() let lnum = str2nr(expand('')) map foo bar - assert_equal(#{ + maparg('foo', '', false, true)->assert_equal(#{ lnum: lnum + 1, script: 0, mode: ' ', @@ -1562,19 +1562,18 @@ def Test_maparg() expr: 0, sid: SID(), rhs: 'bar', - buffer: 0}, - maparg('foo', '', false, true)) + buffer: 0}) unmap foo enddef def Test_mapcheck() iabbrev foo foobar - assert_equal('foobar', mapcheck('foo', 'i', true)) + mapcheck('foo', 'i', true)->assert_equal('foobar') iunabbrev foo enddef def Test_nr2char() - assert_equal('a', nr2char(97, true)) + nr2char(97, true)->assert_equal('a') enddef def Test_readdir() @@ -1587,14 +1586,14 @@ def Test_search() setline(1, ['foo', 'bar']) let val = 0 # skip expr returns boolean - assert_equal(2, search('bar', 'W', 0, 0, {-> val == 1})) + search('bar', 'W', 0, 0, {-> val == 1})->assert_equal(2) :1 - assert_equal(0, search('bar', 'W', 0, 0, {-> val == 0})) + search('bar', 'W', 0, 0, {-> val == 0})->assert_equal(0) # skip expr returns number, only 0 and 1 are accepted :1 - assert_equal(2, search('bar', 'W', 0, 0, {-> 0})) + search('bar', 'W', 0, 0, {-> 0})->assert_equal(2) :1 - assert_equal(0, search('bar', 'W', 0, 0, {-> 1})) + search('bar', 'W', 0, 0, {-> 1})->assert_equal(0) assert_fails("search('bar', '', 0, 0, {-> -1})", 'E1023:') assert_fails("search('bar', '', 0, 0, {-> -1})", 'E1023:') enddef @@ -1603,33 +1602,33 @@ def Test_searchcount() new setline(1, "foo bar") :/foo - assert_equal(#{ - exact_match: 1, - current: 1, - total: 1, - maxcount: 99, - incomplete: 0, - }, searchcount(#{recompute: true})) + searchcount(#{recompute: true}) + ->assert_equal(#{ + exact_match: 1, + current: 1, + total: 1, + maxcount: 99, + incomplete: 0}) bwipe! enddef def Test_searchdecl() - assert_equal(1, searchdecl('blah', true, true)) + searchdecl('blah', true, true)->assert_equal(1) enddef def Test_setbufvar() - setbufvar(bufnr('%'), '&syntax', 'vim') - assert_equal('vim', &syntax) - setbufvar(bufnr('%'), '&ts', 16) - assert_equal(16, &ts) - settabwinvar(1, 1, '&syntax', 'vam') - assert_equal('vam', &syntax) - settabwinvar(1, 1, '&ts', 15) - assert_equal(15, &ts) - setlocal ts=8 + setbufvar(bufnr('%'), '&syntax', 'vim') + &syntax->assert_equal('vim') + setbufvar(bufnr('%'), '&ts', 16) + &ts->assert_equal(16) + settabwinvar(1, 1, '&syntax', 'vam') + &syntax->assert_equal('vam') + settabwinvar(1, 1, '&ts', 15) + &ts->assert_equal(15) + setlocal ts=8 - setbufvar('%', 'myvar', 123) - assert_equal(123, getbufvar('%', 'myvar')) + setbufvar('%', 'myvar', 123) + getbufvar('%', 'myvar')->assert_equal(123) enddef def Test_setloclist() @@ -1643,7 +1642,7 @@ def Test_setreg() setreg('a', ['aaa', 'bbb', 'ccc']) let reginfo = getreginfo('a') setreg('a', reginfo) - assert_equal(reginfo, getreginfo('a')) + getreginfo('a')->assert_equal(reginfo) enddef def Test_spellsuggest() @@ -1671,13 +1670,13 @@ def Test_submatch() let Rep = {-> range(10)->map({_, v -> submatch(v, true)})->string()} let actual = substitute('A123456789', pat, Rep, '') let expected = "[['A123456789'], ['1'], ['2'], ['3'], ['4'], ['5'], ['6'], ['7'], ['8'], ['9']]" - assert_equal(expected, actual) + actual->assert_equal(expected) enddef def Test_synID() new setline(1, "text") - assert_equal(0, synID(1, 1, true)) + synID(1, 1, true)->assert_equal(0) bwipe! enddef @@ -1686,7 +1685,7 @@ def Test_term_gettty() MissingFeature 'terminal' else let buf = Run_shell_in_terminal({}) - assert_notequal('', term_gettty(buf, true)) + term_gettty(buf, true)->assert_notequal('') StopShellInTerminal(buf) endif enddef @@ -1698,7 +1697,7 @@ def Test_term_start() botright new let winnr = winnr() term_start(&shell, #{curwin: true}) - assert_equal(winnr, winnr()) + winnr()->assert_equal(winnr) bwipe! endif enddef @@ -1707,7 +1706,7 @@ def Test_timer_paused() let id = timer_start(50, {-> 0}) timer_pause(id, true) let info = timer_info(id) - assert_equal(1, info[0]['paused']) + info[0]['paused']->assert_equal(1) timer_stop(id) enddef @@ -1728,7 +1727,7 @@ def Fibonacci(n: number): number enddef def Test_recursive_call() - assert_equal(6765, Fibonacci(20)) + Fibonacci(20)->assert_equal(6765) enddef def TreeWalk(dir: string): list @@ -1745,7 +1744,7 @@ def Test_closure_in_map() writefile(['222'], 'XclosureDir/file2') writefile(['333'], 'XclosureDir/tdir/file3') - assert_equal(['file1', 'file2', {'tdir': ['file3']}], TreeWalk('XclosureDir')) + TreeWalk('XclosureDir')->assert_equal(['file1', 'file2', {'tdir': ['file3']}]) delete('XclosureDir', 'rf') enddef @@ -1753,19 +1752,19 @@ enddef def Test_partial_call() let Xsetlist = function('setloclist', [0]) Xsetlist([], ' ', {'title': 'test'}) - assert_equal({'title': 'test'}, getloclist(0, {'title': 1})) + getloclist(0, {'title': 1})->assert_equal({'title': 'test'}) Xsetlist = function('setloclist', [0, [], ' ']) Xsetlist({'title': 'test'}) - assert_equal({'title': 'test'}, getloclist(0, {'title': 1})) + getloclist(0, {'title': 1})->assert_equal({'title': 'test'}) Xsetlist = function('setqflist') Xsetlist([], ' ', {'title': 'test'}) - assert_equal({'title': 'test'}, getqflist({'title': 1})) + getqflist({'title': 1})->assert_equal({'title': 'test'}) Xsetlist = function('setqflist', [[], ' ']) Xsetlist({'title': 'test'}) - assert_equal({'title': 'test'}, getqflist({'title': 1})) + getqflist({'title': 1})->assert_equal({'title': 'test'}) enddef def Test_cmd_modifier() @@ -1790,7 +1789,7 @@ def Test_restore_modifiers() Func() END CheckScriptSuccess(lines) - assert_equal('', g:ei_after) + g:ei_after->assert_equal('') enddef def StackTop() @@ -1809,7 +1808,7 @@ def Test_callstack_def() try StackTop() catch - assert_match('Test_callstack_def\[2\]..StackTop\[4\]..StackBot, line 2', v:throwpoint) + v:throwpoint->assert_match('Test_callstack_def\[2\]..StackTop\[4\]..StackBot, line 2') endtry enddef diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1660, +/**/ 1659, /**/ 1658,