@@ -615,53 +615,33 @@ fn equality() {
615615 assert_eq ! ( g, g2) ;
616616}
617617
618- /// Test that `iter()` and `into_iter()` produce the same elements in the same order
619- /// for both dense and sparse grids.
620- #[ test]
621- fn iter_and_into_iter_same_order ( ) {
622- // Sparse grid (few vertices)
623- let mut g = Grid :: new ( 4 , 4 ) ;
624- g. add_vertex ( ( 0 , 0 ) ) ;
625- g. add_vertex ( ( 2 , 1 ) ) ;
626- g. add_vertex ( ( 1 , 3 ) ) ;
627- let via_iter: Vec < _ > = g. iter ( ) . collect ( ) ;
628- let via_into_iter: Vec < _ > = g. into_iter ( ) . collect ( ) ;
629- assert_eq ! ( via_iter, via_into_iter) ;
630-
631- // Dense grid (many vertices, few exclusions)
632- let mut g = Grid :: new ( 4 , 4 ) ;
633- g. fill ( ) ;
634- g. remove_vertex ( ( 0 , 0 ) ) ;
635- g. remove_vertex ( ( 2 , 1 ) ) ;
636- g. remove_vertex ( ( 1 , 3 ) ) ;
637- let via_iter: Vec < _ > = g. iter ( ) . collect ( ) ;
638- let via_into_iter: Vec < _ > = g. into_iter ( ) . collect ( ) ;
639- assert_eq ! ( via_iter, via_into_iter) ;
640- }
641-
642- /// Test that iterating a sparse grid yields exactly the added vertices in
643- /// insertion order.
618+ /// Test that `iter()` and `into_iter()` on a sparse grid yield exactly the
619+ /// added vertices (regardless of order).
644620#[ test]
645621fn iter_sparse_grid_yields_exact_vertices ( ) {
646622 let mut g = Grid :: new ( 5 , 5 ) ;
647623 g. add_vertex ( ( 3 , 1 ) ) ;
648624 g. add_vertex ( ( 0 , 4 ) ) ;
649625 g. add_vertex ( ( 2 , 2 ) ) ;
650- let expected = vec ! [ ( 3 , 1 ) , ( 0 , 4 ) , ( 2 , 2 ) ] ;
651- assert_eq ! ( g. iter( ) . collect:: <Vec <_>>( ) , expected) ;
652- assert_eq ! ( g. into_iter( ) . collect:: <Vec <_>>( ) , expected) ;
626+ let mut expected = vec ! [ ( 3 , 1 ) , ( 0 , 4 ) , ( 2 , 2 ) ] ;
627+ expected. sort_unstable ( ) ;
628+ let mut via_iter = g. iter ( ) . collect :: < Vec < _ > > ( ) ;
629+ via_iter. sort_unstable ( ) ;
630+ assert_eq ! ( via_iter, expected) ;
631+ let mut via_into_iter = g. into_iter ( ) . collect :: < Vec < _ > > ( ) ;
632+ via_into_iter. sort_unstable ( ) ;
633+ assert_eq ! ( via_into_iter, expected) ;
653634}
654635
655- /// Test that iterating a dense grid yields exactly the expected vertices in
656- /// scan order (x-first within each row), excluding removed vertices .
636+ /// Test that `iter()` and `into_iter()` on a dense grid yield exactly the
637+ /// expected vertices (all positions minus removed ones, regardless of order) .
657638#[ test]
658639fn iter_dense_grid_yields_exact_vertices ( ) {
659640 let mut g = Grid :: new ( 3 , 3 ) ;
660641 g. fill ( ) ;
661642 g. remove_vertex ( ( 1 , 0 ) ) ;
662643 g. remove_vertex ( ( 0 , 2 ) ) ;
663- // Scan order: x varies fastest; (1,0) and (0,2) are absent.
664- let expected = vec ! [
644+ let mut expected = vec ! [
665645 ( 0 , 0 ) ,
666646 ( 2 , 0 ) ,
667647 ( 0 , 1 ) ,
@@ -670,17 +650,27 @@ fn iter_dense_grid_yields_exact_vertices() {
670650 ( 1 , 2 ) ,
671651 ( 2 , 2 ) ,
672652 ] ;
673- assert_eq ! ( g. iter( ) . collect:: <Vec <_>>( ) , expected) ;
674- assert_eq ! ( g. into_iter( ) . collect:: <Vec <_>>( ) , expected) ;
653+ expected. sort_unstable ( ) ;
654+ let mut via_iter = g. iter ( ) . collect :: < Vec < _ > > ( ) ;
655+ via_iter. sort_unstable ( ) ;
656+ assert_eq ! ( via_iter, expected) ;
657+ let mut via_into_iter = g. into_iter ( ) . collect :: < Vec < _ > > ( ) ;
658+ via_into_iter. sort_unstable ( ) ;
659+ assert_eq ! ( via_into_iter, expected) ;
675660}
676661
677- /// Test that iterating a completely filled grid yields all vertices in
678- /// scan order (x-first within each row ).
662+ /// Test that `iter()` and `into_iter()` on a fully filled grid yield all
663+ /// vertices (regardless of order ).
679664#[ test]
680- fn iter_full_grid_yields_all_vertices_in_order ( ) {
665+ fn iter_full_grid_yields_all_vertices ( ) {
681666 let mut g = Grid :: new ( 3 , 2 ) ;
682667 g. fill ( ) ;
683- let expected = vec ! [ ( 0 , 0 ) , ( 1 , 0 ) , ( 2 , 0 ) , ( 0 , 1 ) , ( 1 , 1 ) , ( 2 , 1 ) ] ;
684- assert_eq ! ( g. iter( ) . collect:: <Vec <_>>( ) , expected) ;
685- assert_eq ! ( g. into_iter( ) . collect:: <Vec <_>>( ) , expected) ;
668+ let mut expected = vec ! [ ( 0 , 0 ) , ( 1 , 0 ) , ( 2 , 0 ) , ( 0 , 1 ) , ( 1 , 1 ) , ( 2 , 1 ) ] ;
669+ expected. sort_unstable ( ) ;
670+ let mut via_iter = g. iter ( ) . collect :: < Vec < _ > > ( ) ;
671+ via_iter. sort_unstable ( ) ;
672+ assert_eq ! ( via_iter, expected) ;
673+ let mut via_into_iter = g. into_iter ( ) . collect :: < Vec < _ > > ( ) ;
674+ via_into_iter. sort_unstable ( ) ;
675+ assert_eq ! ( via_into_iter, expected) ;
686676}
0 commit comments