@@ -662,6 +662,7 @@ void Zip3_RunOnce() {
662
662
void testZip () {
663
663
IEnumerable <String > e1 = Linq .of (Arrays .asList ("a" , "b" , "c" ));
664
664
IEnumerable <String > e2 = Linq .of (Arrays .asList ("1" , "2" , "3" ));
665
+ IEnumerable <String > e3 = Linq .of (Arrays .asList ("h" , "i" , "j" ));
665
666
666
667
IEnumerable <String > zipped = e1 .zip (e2 , (v0 , v1 ) -> v0 + v1 );
667
668
assertEquals (3 , zipped .count ());
@@ -675,19 +676,37 @@ void testZip() {
675
676
assertEquals (Empty + (char ) ('1' + i ), zipped2 .elementAt (i ).getItem2 ());
676
677
}
677
678
679
+ IEnumerable <Tuple3 <String , String , String >> zipped3 = e1 .zip (e2 , e3 );
680
+ assertEquals (3 , zipped3 .count ());
681
+ for (int i = 0 ; i < 3 ; i ++) {
682
+ assertEquals (Empty + (char ) ('a' + i ), zipped3 .elementAt (i ).getItem1 ());
683
+ assertEquals (Empty + (char ) ('1' + i ), zipped3 .elementAt (i ).getItem2 ());
684
+ assertEquals (Empty + (char ) ('h' + i ), zipped3 .elementAt (i ).getItem3 ());
685
+ }
686
+
687
+ //
678
688
IEnumerable <Tuple2 <String , String >> source = e1 .zip (e2 );
679
689
try (IEnumerator <Tuple2 <String , String >> e = source .enumerator ()) {
680
690
for (int i = 0 ; i < 3 ; i ++)
681
691
assertTrue (e .moveNext ());
682
692
assertFalse (e .moveNext ());
683
693
assertFalse (e .moveNext ());
684
694
}
695
+
696
+ IEnumerable <Tuple3 <String , String , String >> source2 = e1 .zip (e2 , e3 );
697
+ try (IEnumerator <Tuple3 <String , String , String >> e = source2 .enumerator ()) {
698
+ for (int i = 0 ; i < 3 ; i ++)
699
+ assertTrue (e .moveNext ());
700
+ assertFalse (e .moveNext ());
701
+ assertFalse (e .moveNext ());
702
+ }
685
703
}
686
704
687
705
@ Test
688
706
void testZipLengthNotMatch () {
689
707
IEnumerable <String > e1 = Linq .of (Arrays .asList ("a" , "b" ));
690
708
IEnumerable <String > e2 = Linq .of (Arrays .asList ("1" , "2" , "3" ));
709
+ IEnumerable <String > e3 = Linq .of (Arrays .asList ("h" , "i" ));
691
710
692
711
IEnumerable <String > zipped1 = e1 .zip (e2 , (v0 , v1 ) -> v0 + v1 );
693
712
assertEquals (2 , zipped1 .count ());
@@ -699,6 +718,7 @@ void testZipLengthNotMatch() {
699
718
for (int i = 0 ; i < 2 ; i ++)
700
719
assertEquals (Empty + (char ) ('1' + i ) + (char ) ('a' + i ), zipped2 .elementAt (i ));
701
720
721
+ //
702
722
IEnumerable <Tuple2 <String , String >> zipped3 = e1 .zip (e2 );
703
723
assertEquals (2 , zipped3 .count ());
704
724
for (int i = 0 ; i < 2 ; i ++) {
@@ -712,5 +732,22 @@ void testZipLengthNotMatch() {
712
732
assertEquals (Empty + (char ) ('1' + i ), zipped4 .elementAt (i ).getItem1 ());
713
733
assertEquals (Empty + (char ) ('a' + i ), zipped4 .elementAt (i ).getItem2 ());
714
734
}
735
+
736
+ //
737
+ IEnumerable <Tuple3 <String , String , String >> zipped5 = e1 .zip (e2 , e3 );
738
+ assertEquals (2 , zipped5 .count ());
739
+ for (int i = 0 ; i < 2 ; i ++) {
740
+ assertEquals (Empty + (char ) ('a' + i ), zipped5 .elementAt (i ).getItem1 ());
741
+ assertEquals (Empty + (char ) ('1' + i ), zipped5 .elementAt (i ).getItem2 ());
742
+ assertEquals (Empty + (char ) ('h' + i ), zipped5 .elementAt (i ).getItem3 ());
743
+ }
744
+
745
+ IEnumerable <Tuple3 <String , String , String >> zipped6 = e2 .zip (e1 , e3 );
746
+ assertEquals (2 , zipped6 .count ());
747
+ for (int i = 0 ; i < 2 ; i ++) {
748
+ assertEquals (Empty + (char ) ('1' + i ), zipped6 .elementAt (i ).getItem1 ());
749
+ assertEquals (Empty + (char ) ('a' + i ), zipped6 .elementAt (i ).getItem2 ());
750
+ assertEquals (Empty + (char ) ('h' + i ), zipped6 .elementAt (i ).getItem3 ());
751
+ }
715
752
}
716
753
}
0 commit comments