@@ -580,7 +580,7 @@ fn test_drain_inclusive_out_of_bounds() {
580
580
}
581
581
582
582
#[ test]
583
- fn splice ( ) {
583
+ fn test_splice ( ) {
584
584
let mut v = vec ! [ 1 , 2 , 3 , 4 , 5 ] ;
585
585
let a = [ 10 , 11 , 12 ] ;
586
586
v. splice ( 2 ..4 , a. iter ( ) . cloned ( ) ) ;
@@ -589,6 +589,51 @@ fn splice() {
589
589
assert_eq ! ( v, & [ 1 , 20 , 11 , 12 , 5 ] ) ;
590
590
}
591
591
592
+ #[ test]
593
+ fn test_splice_inclusive_range ( ) {
594
+ let mut v = vec ! [ 1 , 2 , 3 , 4 , 5 ] ;
595
+ let a = [ 10 , 11 , 12 ] ;
596
+ let t1: Vec < _ > = v. splice ( 2 ...3 , a. iter ( ) . cloned ( ) ) . collect ( ) ;
597
+ assert_eq ! ( v, & [ 1 , 2 , 10 , 11 , 12 , 5 ] ) ;
598
+ assert_eq ! ( t1, & [ 3 , 4 ] ) ;
599
+ let t2: Vec < _ > = v. splice ( 1 ...2 , Some ( 20 ) ) . collect ( ) ;
600
+ assert_eq ! ( v, & [ 1 , 20 , 11 , 12 , 5 ] ) ;
601
+ assert_eq ! ( t2, & [ 2 , 10 ] ) ;
602
+ }
603
+
604
+ #[ test]
605
+ #[ should_panic]
606
+ fn test_splice_out_of_bounds ( ) {
607
+ let mut v = vec ! [ 1 , 2 , 3 , 4 , 5 ] ;
608
+ let a = [ 10 , 11 , 12 ] ;
609
+ v. splice ( 5 ..6 , a. iter ( ) . cloned ( ) ) ;
610
+ }
611
+
612
+ #[ test]
613
+ #[ should_panic]
614
+ fn test_splice_inclusive_out_of_bounds ( ) {
615
+ let mut v = vec ! [ 1 , 2 , 3 , 4 , 5 ] ;
616
+ let a = [ 10 , 11 , 12 ] ;
617
+ v. splice ( 5 ...5 , a. iter ( ) . cloned ( ) ) ;
618
+ }
619
+
620
+ #[ test]
621
+ fn test_splice_items_zero_sized ( ) {
622
+ let mut vec = vec ! [ ( ) , ( ) , ( ) ] ;
623
+ let vec2 = vec ! [ ] ;
624
+ let t: Vec < _ > = vec. splice ( 1 ..2 , vec2. iter ( ) . cloned ( ) ) . collect ( ) ;
625
+ assert_eq ! ( vec, & [ ( ) , ( ) ] ) ;
626
+ assert_eq ! ( t, & [ ( ) ] ) ;
627
+ }
628
+
629
+ #[ test]
630
+ fn test_splice_unbounded ( ) {
631
+ let mut vec = vec ! [ 1 , 2 , 3 , 4 , 5 ] ;
632
+ let t: Vec < _ > = vec. splice ( .., None ) . collect ( ) ;
633
+ assert_eq ! ( vec, & [ ] ) ;
634
+ assert_eq ! ( t, & [ 1 , 2 , 3 , 4 , 5 ] ) ;
635
+ }
636
+
592
637
#[ test]
593
638
fn test_into_boxed_slice ( ) {
594
639
let xs = vec ! [ 1 , 2 , 3 ] ;
0 commit comments