@@ -133,31 +133,71 @@ describe('BufferLine', function(): void {
133133 const line3 = line . clone ( ) ;
134134 chai . expect ( TestBufferLine . prototype . toArray . apply ( line3 ) ) . eql ( line . toArray ( ) ) ;
135135 } ) ;
136- it ( 'resize enlarge' , function ( ) : void {
137- const line = new TestBufferLine ( 5 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
138- line . resize ( 10 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ;
139- chai . expect ( line . toArray ( ) ) . eql ( Array ( 10 ) . fill ( [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ) ;
140- } ) ;
141- it ( 'resize shrink(true)' , function ( ) : void {
142- const line = new TestBufferLine ( 10 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
143- line . resize ( 5 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , true ) ;
144- chai . expect ( line . toArray ( ) ) . eql ( Array ( 5 ) . fill ( [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ) ;
145- } ) ;
146- it ( 'resize shrink(false)' , function ( ) : void {
147- const line = new TestBufferLine ( 10 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
148- line . resize ( 5 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
149- chai . expect ( line . toArray ( ) ) . eql ( Array ( 5 ) . fill ( [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ) ;
150- } ) ;
151- it ( 'resize shrink(false) + shrink(false)' , function ( ) : void {
152- const line = new TestBufferLine ( 20 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
153- line . resize ( 10 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
154- line . resize ( 5 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
155- chai . expect ( line . toArray ( ) ) . eql ( Array ( 5 ) . fill ( [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ) ;
156- } ) ;
157- it ( 'resize shrink(false) + enlarge' , function ( ) : void {
158- const line = new TestBufferLine ( 20 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
159- line . resize ( 10 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
160- line . resize ( 15 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ;
161- chai . expect ( line . toArray ( ) ) . eql ( Array ( 15 ) . fill ( [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ) ;
136+ describe ( 'resize' , function ( ) : void {
137+ it ( 'enlarge(false)' , function ( ) : void {
138+ const line = new TestBufferLine ( 5 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
139+ line . resize ( 10 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ;
140+ chai . expect ( line . toArray ( ) ) . eql ( Array ( 10 ) . fill ( [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ) ;
141+ } ) ;
142+ it ( 'enlarge(true)' , function ( ) : void {
143+ const line = new TestBufferLine ( 5 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
144+ line . resize ( 10 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , true ) ;
145+ chai . expect ( line . toArray ( ) ) . eql ( Array ( 10 ) . fill ( [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ) ;
146+ } ) ;
147+ it ( 'shrink(true) - should apply new size' , function ( ) : void {
148+ const line = new TestBufferLine ( 10 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
149+ line . resize ( 5 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , true ) ;
150+ chai . expect ( line . toArray ( ) ) . eql ( Array ( 5 ) . fill ( [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ) ;
151+ } ) ;
152+ it ( 'shrink(false) - should not apply new size' , function ( ) : void {
153+ const line = new TestBufferLine ( 10 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
154+ line . resize ( 5 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
155+ chai . expect ( line . toArray ( ) ) . eql ( Array ( 10 ) . fill ( [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ) ;
156+ } ) ;
157+ it ( 'shrink(false) + shrink(false) - should not apply new size' , function ( ) : void {
158+ const line = new TestBufferLine ( 20 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
159+ line . resize ( 10 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
160+ line . resize ( 5 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
161+ chai . expect ( line . toArray ( ) ) . eql ( Array ( 20 ) . fill ( [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ) ;
162+ } ) ;
163+ it ( 'shrink(false) + enlarge(false) to smaller than before' , function ( ) : void {
164+ const line = new TestBufferLine ( 20 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
165+ line . resize ( 10 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
166+ line . resize ( 15 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ;
167+ chai . expect ( line . toArray ( ) ) . eql ( Array ( 20 ) . fill ( [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ) ;
168+ } ) ;
169+ it ( 'shrink(false) + enlarge(false) to bigger than before' , function ( ) : void {
170+ const line = new TestBufferLine ( 20 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
171+ line . resize ( 10 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
172+ line . resize ( 25 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ;
173+ chai . expect ( line . toArray ( ) ) . eql ( Array ( 25 ) . fill ( [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ) ;
174+ } ) ;
175+ it ( 'shrink(false) + resize shrink=true should enforce shrinking' , function ( ) : void {
176+ const line = new TestBufferLine ( 20 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
177+ line . resize ( 10 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
178+ line . resize ( 10 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , true ) ;
179+ chai . expect ( line . toArray ( ) ) . eql ( Array ( 10 ) . fill ( [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ) ;
180+ } ) ;
181+ it ( 'enlarge from 0 length' , function ( ) : void {
182+ const line = new TestBufferLine ( 0 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
183+ line . resize ( 10 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
184+ chai . expect ( line . toArray ( ) ) . eql ( Array ( 10 ) . fill ( [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ) ;
185+ } ) ;
186+ it ( 'shrink to 0 length' , function ( ) : void {
187+ const line = new TestBufferLine ( 10 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
188+ line . resize ( 0 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , true ) ;
189+ chai . expect ( line . toArray ( ) ) . eql ( Array ( 0 ) . fill ( [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ) ;
190+ } ) ;
191+ it ( 'shrink(false) to 0 and enlarge to different sizes' , function ( ) : void {
192+ const line = new TestBufferLine ( 10 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
193+ line . resize ( 0 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
194+ chai . expect ( line . toArray ( ) ) . eql ( Array ( 10 ) . fill ( [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ) ;
195+ line . resize ( 5 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
196+ chai . expect ( line . toArray ( ) ) . eql ( Array ( 10 ) . fill ( [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ) ;
197+ line . resize ( 7 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , false ) ;
198+ chai . expect ( line . toArray ( ) ) . eql ( Array ( 10 ) . fill ( [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ) ;
199+ line . resize ( 7 , [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] , true ) ;
200+ chai . expect ( line . toArray ( ) ) . eql ( Array ( 7 ) . fill ( [ 1 , 'a' , 0 , 'a' . charCodeAt ( 0 ) ] ) ) ;
201+ } ) ;
162202 } ) ;
163203} ) ;
0 commit comments