@@ -418,3 +418,64 @@ fn from_array() {
418418
419419 assert_eq ! ( map, expected)
420420}
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