@@ -418,3 +418,64 @@ fn from_array() {
418
418
419
419
assert_eq ! ( map, expected)
420
420
}
421
+
422
+ #[ test]
423
+ fn many_mut_empty ( ) {
424
+ let mut map: IndexMap < u32 , u32 > = IndexMap :: default ( ) ;
425
+ assert ! ( map. get_many_mut( [ & 0 , & 1 , & 2 , & 3 ] ) . is_none( ) ) ;
426
+ }
427
+
428
+ #[ test]
429
+ fn many_mut_single_fail ( ) {
430
+ let mut map: IndexMap < u32 , u32 > = IndexMap :: default ( ) ;
431
+ map. insert ( 1 , 10 ) ;
432
+ assert ! ( map. get_many_mut( [ & 0 ] ) . is_none( ) ) ;
433
+ }
434
+
435
+ #[ test]
436
+ fn many_mut_single_success ( ) {
437
+ let mut map: IndexMap < u32 , u32 > = IndexMap :: default ( ) ;
438
+ map. insert ( 1 , 10 ) ;
439
+ assert_eq ! ( map. get_many_mut( [ & 1 ] ) , Some ( [ & mut 10 ] ) ) ;
440
+ }
441
+
442
+ #[ test]
443
+ fn many_mut_multi_success ( ) {
444
+ let mut map: IndexMap < u32 , u32 > = IndexMap :: default ( ) ;
445
+ map. insert ( 1 , 10 ) ;
446
+ map. insert ( 1123 , 100 ) ;
447
+ map. insert ( 321 , 20 ) ;
448
+ map. insert ( 1337 , 30 ) ;
449
+ assert_eq ! ( map. get_many_mut( [ & 1 , & 1123 ] ) , Some ( [ & mut 10 , & mut 100 ] ) ) ;
450
+ assert_eq ! ( map. get_many_mut( [ & 1 , & 1337 ] ) , Some ( [ & mut 10 , & mut 30 ] ) ) ;
451
+ assert_eq ! (
452
+ map. get_many_mut( [ & 1337 , & 321 , & 1 , & 1123 ] ) ,
453
+ Some ( [ & mut 30 , & mut 20 , & mut 10 , & mut 100 ] )
454
+ ) ;
455
+ }
456
+
457
+ #[ test]
458
+ fn many_mut_multi_fail_missing ( ) {
459
+ let mut map: IndexMap < u32 , u32 > = IndexMap :: default ( ) ;
460
+ map. insert ( 1 , 10 ) ;
461
+ map. insert ( 1123 , 100 ) ;
462
+ map. insert ( 321 , 20 ) ;
463
+ map. insert ( 1337 , 30 ) ;
464
+ assert_eq ! ( map. get_many_mut( [ & 121 , & 1123 ] ) , None ) ;
465
+ assert_eq ! ( map. get_many_mut( [ & 1 , & 1337 , & 56 ] ) , None ) ;
466
+ assert_eq ! ( map. get_many_mut( [ & 1337 , & 123 , & 321 , & 1 , & 1123 ] ) , None ) ;
467
+ }
468
+
469
+ #[ test]
470
+ fn many_mut_multi_fail_duplicate ( ) {
471
+ let mut map: IndexMap < u32 , u32 > = IndexMap :: default ( ) ;
472
+ map. insert ( 1 , 10 ) ;
473
+ map. insert ( 1123 , 100 ) ;
474
+ map. insert ( 321 , 20 ) ;
475
+ map. insert ( 1337 , 30 ) ;
476
+ assert_eq ! ( map. get_many_mut( [ & 1 , & 1 ] ) , None ) ;
477
+ assert_eq ! (
478
+ map. get_many_mut( [ & 1337 , & 123 , & 321 , & 1337 , & 1 , & 1123 ] ) ,
479
+ None
480
+ ) ;
481
+ }
0 commit comments