@@ -793,10 +793,47 @@ void main() {
793
793
expect ([3 , 4 , 5 ].union ([4 , 10 , 20 ]), [3 , 4 , 5 , 10 , 20 ]);
794
794
});
795
795
796
- test ('.zip()' , () {
797
- expect ([].zip ([], (e1, e2) => null ), []);
798
- expect ([1 , 2 , 3 ].zip ([2 , 4 , 6 ], (e1, e2) => e1 / e2), [0.5 , 0.5 , 0.5 ]);
799
- expect ([2 , 4 , 6 ].zip ([1 , 2 , 3 ], (e1, e2) => e1 / e2), [2.0 , 2.0 , 2.0 ]);
796
+ group ('.zip()' , () {
797
+ test ('with same types' , () {
798
+ expect ([].zip ([], (e1, e2) => null ), []);
799
+ expect (
800
+ [1 , 2 , 3 ].zip ([2 , 4 , 6 ], (e1, int e2) => e1 / e2),
801
+ [0.5 , 0.5 , 0.5 ],
802
+ );
803
+ expect (
804
+ [2 , 4 , 6 ].zip ([1 , 2 , 3 ], (e1, int e2) => e1 / e2),
805
+ [2.0 , 2.0 , 2.0 ],
806
+ );
807
+
808
+ // with type definitions
809
+ expect (
810
+ [1 , 2 , 3 ].zip ([2 , 4 , 6 ], (int e1, int e2) => e1 / e2),
811
+ [0.5 , 0.5 , 0.5 ],
812
+ );
813
+ });
814
+
815
+ test ('with same types and different length' , () {
816
+ expect ([1 , 2 , 3 ].zip ([2 , 4 ], (e1, int e2) => e1 / e2), [0.5 , 0.5 ]);
817
+ expect ([2 , 4 ].zip ([2 , 2 , 2 ], (e1, int e2) => e1 / e2), [1.0 , 2.0 ]);
818
+ });
819
+
820
+ test ('with different types' , () {
821
+ final amounts = [2 , 3 , 4 ];
822
+ final animals = ['dogs' , 'birds' , 'cats' ];
823
+ expect (
824
+ amounts.zip (animals, (amount, String animal) => '$amount $animal ' ),
825
+ ['2 dogs' , '3 birds' , '4 cats' ],
826
+ );
827
+ });
828
+
829
+ test ('with different types and different lengths' , () {
830
+ final amounts = [2 , 3 ];
831
+ final animals = ['dogs' , 'birds' , 'cats' ];
832
+ expect (
833
+ amounts.zip (animals, (amount, String animal) => '$amount $animal ' ),
834
+ ['2 dogs' , '3 birds' ],
835
+ );
836
+ });
800
837
});
801
838
802
839
test ('.toIterable()' , () {
0 commit comments