@@ -78,6 +78,33 @@ public struct ElementsEqualTest {
78
78
}
79
79
}
80
80
81
+ public struct ElementsEqualWithPredicateTest {
82
+ public let expected : Bool
83
+ public let sequence : [ Int ]
84
+ public let other : [ String ]
85
+ public let predicate : ( Int , String ) -> Bool
86
+ public let expectedLeftoverSequence : [ Int ]
87
+ public let expectedLeftoverOther : [ String ]
88
+ public let loc : SourceLoc
89
+
90
+ public init (
91
+ _ expected: Bool , _ sequence: [ Int ] , _ other: [ String ] ,
92
+ _ predicate: @escaping ( Int , String ) -> Bool ,
93
+ _ expectedLeftoverSequence: [ Int ] ,
94
+ _ expectedLeftoverOther: [ String ] ,
95
+ file: String = #file, line: UInt = #line,
96
+ comment: String = " "
97
+ ) {
98
+ self . expected = expected
99
+ self . sequence = sequence
100
+ self . other = other
101
+ self . predicate = predicate
102
+ self . expectedLeftoverSequence = expectedLeftoverSequence
103
+ self . expectedLeftoverOther = expectedLeftoverOther
104
+ self . loc = SourceLoc ( file, line, comment: " test data " + comment)
105
+ }
106
+ }
107
+
81
108
public struct EnumerateTest {
82
109
public let expected : [ ( Int , Int ) ]
83
110
public let sequence : [ Int ]
@@ -450,6 +477,30 @@ public let elementsEqualTests: [ElementsEqualTest] = [
450
477
ElementsEqualTest ( false , [ 1 , 2 ] , [ 1 , 2 , 3 , 4 ] , [ ] , [ 4 ] ) ,
451
478
] . flatMap { [ $0, $0. flip ( ) ] }
452
479
480
+ func elementsEqualPredicate( _ x: Int , y: String ) -> Bool {
481
+ if let intVal = Int ( y) {
482
+ return x == intVal
483
+ } else {
484
+ return false
485
+ }
486
+ }
487
+
488
+ public let elementsEqualWithPredicateTests : [ ElementsEqualWithPredicateTest ] = [
489
+ ElementsEqualWithPredicateTest ( true , [ ] , [ ] , elementsEqualPredicate, [ ] , [ ] ) ,
490
+
491
+ ElementsEqualWithPredicateTest ( false , [ 1 ] , [ ] , elementsEqualPredicate, [ 1 ] , [ ] ) ,
492
+ ElementsEqualWithPredicateTest ( false , [ ] , [ " 1 " ] , elementsEqualPredicate, [ ] , [ " 1 " ] ) ,
493
+
494
+ ElementsEqualWithPredicateTest ( false , [ 1 , 2 ] , [ ] , elementsEqualPredicate, [ 1 , 2 ] , [ ] ) ,
495
+ ElementsEqualWithPredicateTest ( false , [ ] , [ " 1 " , " 2 " ] , elementsEqualPredicate, [ ] , [ " 1 " , " 2 " ] ) ,
496
+
497
+ ElementsEqualWithPredicateTest ( false , [ 1 , 2 , 3 , 4 ] , [ " 1 " , " 2 " ] , elementsEqualPredicate, [ 3 , 4 ] , [ ] ) ,
498
+ ElementsEqualWithPredicateTest ( false , [ 1 , 2 ] , [ " 1 " , " 2 " , " 3 " , " 4 " ] , elementsEqualPredicate, [ ] , [ " 3 " , " 4 " ] ) ,
499
+
500
+ ElementsEqualWithPredicateTest ( true , [ 1 , 2 , 3 , 4 ] , [ " 1 " , " 2 " , " 3 " , " 4 " ] , elementsEqualPredicate, [ ] , [ ] ) ,
501
+ ElementsEqualWithPredicateTest ( true , [ 1 , 2 ] , [ " 1 " , " 2 " ] , elementsEqualPredicate, [ ] , [ ] ) ,
502
+ ]
503
+
453
504
public let enumerateTests = [
454
505
EnumerateTest ( [ ] , [ ] ) ,
455
506
EnumerateTest ( [ ( 0 , 10 ) ] , [ 10 ] ) ,
0 commit comments