@@ -542,6 +542,53 @@ public void MoveToImmutableAfterClear()
542542 Assert . Throws ( typeof ( InvalidOperationException ) , ( ) => builder . MoveToImmutable ( ) ) ;
543543 }
544544
545+ [ Fact ]
546+ public void MoveToImmutableAddToCapacity ( )
547+ {
548+ var builder = ImmutableArray . CreateBuilder < int > ( initialCapacity : 3 ) ;
549+ for ( int i = 0 ; i < builder . Capacity ; i ++ )
550+ {
551+ builder . Add ( i ) ;
552+ }
553+
554+ Assert . Equal ( new [ ] { 0 , 1 , 2 } , builder . MoveToImmutable ( ) ) ;
555+ }
556+
557+ [ Fact ]
558+ public void MoveToImmutableInsertToCapacity ( )
559+ {
560+ var builder = ImmutableArray . CreateBuilder < int > ( initialCapacity : 3 ) ;
561+ for ( int i = 0 ; i < builder . Capacity ; i ++ )
562+ {
563+ builder . Insert ( i , i ) ;
564+ }
565+
566+ Assert . Equal ( new [ ] { 0 , 1 , 2 } , builder . MoveToImmutable ( ) ) ;
567+ }
568+
569+ [ Fact ]
570+ public void MoveToImmutableAddRangeToCapcity ( )
571+ {
572+ var array = new [ ] { 1 , 2 , 3 , 4 , 5 } ;
573+ var builder = ImmutableArray . CreateBuilder < int > ( initialCapacity : array . Length ) ;
574+ builder . AddRange ( array ) ;
575+ Assert . Equal ( array , builder . MoveToImmutable ( ) ) ;
576+ }
577+
578+ [ Fact ]
579+ public void MoveToImmutableAddRemoveAddToCapacity ( )
580+ {
581+ var builder = ImmutableArray . CreateBuilder < int > ( initialCapacity : 3 ) ;
582+ for ( int i = 0 ; i < builder . Capacity ; i ++ )
583+ {
584+ builder . Add ( i ) ;
585+ builder . RemoveAt ( i ) ;
586+ builder . Add ( i ) ;
587+ }
588+
589+ Assert . Equal ( new [ ] { 0 , 1 , 2 } , builder . MoveToImmutable ( ) ) ;
590+ }
591+
545592 [ Fact ]
546593 public void CapacitySetToZero ( )
547594 {
0 commit comments