forked from aniani/vim
patch 9.1.0516: need more tests for nested dicts and list comparision
Problem: need more tests for nested dicts and list comparision Solution: Add tests for comparing deeply nested List/Dict values (Yegappan Lakshmanan) closes: #15081 Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
8625714ac1
commit
88bbdb04c2
@@ -1557,4 +1557,53 @@ func Test_extendnew_leak()
|
|||||||
for i in range(100) | silent! call extendnew({}, {}, {}) | endfor
|
for i in range(100) | silent! call extendnew({}, {}, {}) | endfor
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test for comparing deeply nested List/Dict values
|
||||||
|
func Test_deep_nested_listdict_compare()
|
||||||
|
let lines =<< trim END
|
||||||
|
def GetNestedList(sz: number): list<any>
|
||||||
|
var l: list<any> = []
|
||||||
|
var x: list<any> = l
|
||||||
|
for i in range(sz)
|
||||||
|
var y: list<any> = [1]
|
||||||
|
add(x, y)
|
||||||
|
x = y
|
||||||
|
endfor
|
||||||
|
return l
|
||||||
|
enddef
|
||||||
|
|
||||||
|
VAR l1 = GetNestedList(1000)
|
||||||
|
VAR l2 = GetNestedList(999)
|
||||||
|
call assert_false(l1 == l2)
|
||||||
|
|
||||||
|
#" after 1000 nested items, the lists are considered to be equal
|
||||||
|
VAR l3 = GetNestedList(1001)
|
||||||
|
VAR l4 = GetNestedList(1002)
|
||||||
|
call assert_true(l3 == l4)
|
||||||
|
END
|
||||||
|
call v9.CheckLegacyAndVim9Success(lines)
|
||||||
|
|
||||||
|
let lines =<< trim END
|
||||||
|
def GetNestedDict(sz: number): dict<any>
|
||||||
|
var d: dict<any> = {}
|
||||||
|
var x: dict<any> = d
|
||||||
|
for i in range(sz)
|
||||||
|
var y: dict<any> = {}
|
||||||
|
x['a'] = y
|
||||||
|
x = y
|
||||||
|
endfor
|
||||||
|
return d
|
||||||
|
enddef
|
||||||
|
|
||||||
|
VAR d1 = GetNestedDict(1000)
|
||||||
|
VAR d2 = GetNestedDict(999)
|
||||||
|
call assert_false(d1 == d2)
|
||||||
|
|
||||||
|
#" after 1000 nested items, the Dicts are considered to be equal
|
||||||
|
VAR d3 = GetNestedDict(1001)
|
||||||
|
VAR d4 = GetNestedDict(1002)
|
||||||
|
call assert_true(d3 == d4)
|
||||||
|
END
|
||||||
|
call v9.CheckLegacyAndVim9Success(lines)
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@@ -704,6 +704,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
516,
|
||||||
/**/
|
/**/
|
||||||
515,
|
515,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user