" Test brace expansion with minimal amount of expansions. function! s:Call( text ) return join(ingo#subs#BraceExpansion#ExpandMinimal(a:text), ' ') endfunction call vimtest#StartTap() call vimtap#Plan(18) call vimtap#Is(s:Call('fo{!,X,o}'), 'fo! foX foo', 'same prefix, different suffixes') call vimtap#Is(s:Call('fo{x,oy,obar}'), 'fox fooy foobar', 'same prefix, different length suffixes') call vimtap#Is(s:Call('{my,their,our}foo'), 'myfoo theirfoo ourfoo', 'different prefixes, same suffix') call vimtap#Is(s:Call('{my,their,our}fo{!,X,o}'), 'myfo! theirfoX ourfoo', 'different prefixes, different suffixes') call vimtap#Is(s:Call('foo{1..3}'), 'foo1 foo2 foo3', 'same prefix, number sequence') call vimtap#Is(s:Call('foo{1,2}'), 'foo1 foo2', 'same prefix, short number sequence') call vimtap#Is(s:Call('foo{1..5..2}'), 'foo1 foo3 foo5', 'same prefix, number sequence with offset') call vimtap#Is(s:Call('foo{{1..5..2},X}'), 'foo1 foo3 foo5 fooX', 'same prefix, number sequence with offset and suffix') call vimtap#Is(s:Call('foo{{1..5..2},X}'), 'foo1 foo3 foo5 fooX', 'same prefix, number sequence with offset and suffix') call vimtap#Is(s:Call('foo{{1..5..2},X,Y}'), 'foo1 foo3 foo5 fooX fooY', 'same prefix, number sequence with offset and suffixes') call vimtap#Is(s:Call('foo{{1..5..2},{X..Z}}'), 'foo1 foo3 foo5 fooX fooY fooZ', 'same prefix, number sequence with offset and char sequence') call vimtap#Is(s:Call('foo{{1..5..2},X,Y,Z,10,20,30,40}'), 'foo1 foo3 foo5 fooX fooY fooZ foo10 foo20 foo30 foo40', 'same prefix, number sequence with offset and char sequence and another number sequence (only first detected)') call vimtap#Is(s:Call('foo{{X..Z},{1..5..2}}'), 'fooX fooY fooZ foo1 foo3 foo5', 'same prefix, char sequence and number sequence (not detected)') call vimtap#Is(s:Call('Foo{Has,Is,Can}Boo'), 'FooHasBoo FooIsBoo FooCanBoo', 'two commons in outside') call vimtap#Is(s:Call('{my,their,our}Foo{Has,Is,Can}Boo{Here,Now,More}'), 'myFooHasBooHere theirFooIsBooNow ourFooCanBooMore', 'two commons in the middle') call vimtap#Is(s:Call('foo{\,bar\,,xy}'), 'foo,bar, fooxy', 'embedded commas') call vimtap#Is(s:Call('foo{bar,\{O\},xy}'), 'foobar foo{O} fooxy', 'embedded braces in one word') call vimtap#Is(s:Call('foo{bar,\},\{,xy}'), 'foobar foo} foo{ fooxy', 'embedded braces in two words') call vimtest#Quit()