mirror of
https://github.com/vim/vim.git
synced 2025-08-25 19:53:53 -04:00
patch 8.1.0440: remove() with a range not sufficiently tested
Problem: remove() with a range not sufficiently tested. Solution: Add a test. (Dominique Pelle, closes #3497)
This commit is contained in:
parent
438d176e35
commit
2bfddfc508
@ -106,6 +106,43 @@ func Test_list_range_assign()
|
|||||||
call assert_equal([1, 2], l)
|
call assert_equal([1, 2], l)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test removing items in list
|
||||||
|
func Test_list_func_remove()
|
||||||
|
" Test removing 1 element
|
||||||
|
let l = [1, 2, 3, 4]
|
||||||
|
call assert_equal(1, remove(l, 0))
|
||||||
|
call assert_equal([2, 3, 4], l)
|
||||||
|
|
||||||
|
let l = [1, 2, 3, 4]
|
||||||
|
call assert_equal(2, remove(l, 1))
|
||||||
|
call assert_equal([1, 3, 4], l)
|
||||||
|
|
||||||
|
let l = [1, 2, 3, 4]
|
||||||
|
call assert_equal(4, remove(l, -1))
|
||||||
|
call assert_equal([1, 2, 3], l)
|
||||||
|
|
||||||
|
" Test removing range of element(s)
|
||||||
|
let l = [1, 2, 3, 4]
|
||||||
|
call assert_equal([3], remove(l, 2, 2))
|
||||||
|
call assert_equal([1, 2, 4], l)
|
||||||
|
|
||||||
|
let l = [1, 2, 3, 4]
|
||||||
|
call assert_equal([2, 3], remove(l, 1, 2))
|
||||||
|
call assert_equal([1, 4], l)
|
||||||
|
|
||||||
|
let l = [1, 2, 3, 4]
|
||||||
|
call assert_equal([2, 3], remove(l, -3, -2))
|
||||||
|
call assert_equal([1, 4], l)
|
||||||
|
|
||||||
|
" Test invalid cases
|
||||||
|
let l = [1, 2, 3, 4]
|
||||||
|
call assert_fails("call remove(l, 5)", 'E684:')
|
||||||
|
call assert_fails("call remove(l, 1, 5)", 'E684:')
|
||||||
|
call assert_fails("call remove(l, 3, 2)", 'E16:')
|
||||||
|
call assert_fails("call remove(1, 0)", 'E712:')
|
||||||
|
call assert_fails("call remove(l, l)", 'E745:')
|
||||||
|
endfunc
|
||||||
|
|
||||||
" Tests for Dictionary type
|
" Tests for Dictionary type
|
||||||
|
|
||||||
func Test_dict()
|
func Test_dict()
|
||||||
@ -222,6 +259,17 @@ func Test_script_local_dict_func()
|
|||||||
unlet g:dict
|
unlet g:dict
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test removing items in la dictionary
|
||||||
|
func Test_dict_func_remove()
|
||||||
|
let d = {1:'a', 2:'b', 3:'c'}
|
||||||
|
call assert_equal('b', remove(d, 2))
|
||||||
|
call assert_equal({1:'a', 3:'c'}, d)
|
||||||
|
|
||||||
|
call assert_fails("call remove(d, 1, 2)", 'E118:')
|
||||||
|
call assert_fails("call remove(d, 'a')", 'E716:')
|
||||||
|
call assert_fails("call remove(d, [])", 'E730:')
|
||||||
|
endfunc
|
||||||
|
|
||||||
" Nasty: remove func from Dict that's being called (works)
|
" Nasty: remove func from Dict that's being called (works)
|
||||||
func Test_dict_func_remove_in_use()
|
func Test_dict_func_remove_in_use()
|
||||||
let d = {1:1}
|
let d = {1:1}
|
||||||
|
@ -794,6 +794,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 */
|
||||||
|
/**/
|
||||||
|
440,
|
||||||
/**/
|
/**/
|
||||||
439,
|
439,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user