2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-14 00:32:11 +00:00

Corrected the vector.insert rule so it works correctly when given an index lager than the number of elements in the given vector (patch by Rick Yang). Added new related tests.

[SVN r46216]
This commit is contained in:
Jurko Gospodnetić
2008-06-07 16:45:04 +00:00
parent e902837300
commit 11c0eef489

View File

@@ -153,8 +153,11 @@ class vector : node
)
{
local left = $(self.value[1-$(index)]) ;
left = $(left[1--2]) ;
local right = $(self.value[$(index)-]) ;
if $(right)-is-defined
{
left = $(left[1--2]) ;
}
self.value = $(left) $(value) $(right) ;
}
@@ -316,4 +319,22 @@ local rule __test__ ( )
local v6 = [ new vector [ new vector 1 2 3 ] ] ;
assert.true $(v6).equal [ new vector [ new vector 1 2 3 ] ] ;
local v7 = [ new vector 111 222 333 ] ;
$(v7).insert 4 : 444 ;
assert.result 111 222 333 444 : $(v7).get ;
$(v7).insert 999 : xxx ;
assert.result 111 222 333 444 xxx : $(v7).get ;
local v8 = [ new vector "" "" "" ] ;
assert.result 3 : $(v8).size ;
$(v8).insert 2 : 222 ;
assert.result 4 : $(v8).size ;
assert.result "" 222 "" "" : $(v8).get ;
$(v8).insert 999 : "" ;
assert.result 5 : $(v8).size ;
assert.result "" 222 "" "" "" : $(v8).get ;
$(v8).insert 999 : xxx ;
assert.result 6 : $(v8).size ;
assert.result "" 222 "" "" "" xxx : $(v8).get ;
}