@@ -332,6 +332,24 @@ class SortedArrayTests: XCTestCase {
332332 assertElementsEqual ( sut, [ 1 , 2 ] )
333333 }
334334
335+ func testIsEquatableInSwift4_1AndHigher( ) {
336+ #if swift(>=4.1)
337+ let array1 = SortedArray ( unsorted: [ 3 , 2 , 1 ] )
338+ let array2 = SortedArray ( unsorted: 1 ... 3 )
339+ XCTAssertEqual ( array1, array2)
340+ #endif
341+ }
342+
343+ func testComparatorFunctionIsNotRelevantForEquatable( ) {
344+ #if swift(>=4.1)
345+ let array1 = SortedArray ( unsorted: [ 1 , 1 , 1 ] , areInIncreasingOrder: < )
346+ let array2 = SortedArray ( unsorted: [ 1 , 1 , 1 ] , areInIncreasingOrder: > )
347+ let array3 = SortedArray ( unsorted: [ 3 , 2 , 1 , 4 ] )
348+ XCTAssertEqual ( array1, array2)
349+ XCTAssertNotEqual ( array1, array3)
350+ #endif
351+ }
352+
335353 func testImplementsEqual( ) {
336354 let sut = SortedArray ( unsorted: [ 3 , 2 , 1 ] )
337355 XCTAssertTrue ( sut == SortedArray ( unsorted: 1 ... 3 ) )
@@ -341,6 +359,16 @@ class SortedArrayTests: XCTestCase {
341359 let sut = SortedArray ( unsorted: 1 ... 3 )
342360 XCTAssertTrue ( sut != SortedArray ( unsorted: 1 ... 4 ) )
343361 }
362+
363+ func testIsHashableInSwift4_2AndHigher( ) {
364+ #if swift(>=4.1.50)
365+ let array1 = SortedArray ( unsorted: [ 3 , 2 , 1 ] )
366+ let array2 = SortedArray ( unsorted: 1 ... 3 )
367+ let array3 = SortedArray ( unsorted: [ 3 , 2 , 1 , 4 ] )
368+ XCTAssertEqual ( array1. hashValue, array2. hashValue)
369+ XCTAssertNotEqual ( array1. hashValue, array3. hashValue)
370+ #endif
371+ }
344372}
345373
346374extension SortedArrayTests {
@@ -398,8 +426,11 @@ extension SortedArrayTests {
398426 ( " testRemoveElementAtBeginningPreservesSortOrder " , testRemoveElementAtBeginningPreservesSortOrder) ,
399427 ( " testRemoveElementInMiddlePreservesSortOrder " , testRemoveElementInMiddlePreservesSortOrder) ,
400428 ( " testRemoveElementAtEndPreservesSortOrder " , testRemoveElementAtEndPreservesSortOrder) ,
429+ ( " testIsEquatableInSwift4_1AndHigher " , testIsEquatableInSwift4_1AndHigher) ,
430+ ( " testComparatorFunctionIsNotRelevantForEquatable " , testComparatorFunctionIsNotRelevantForEquatable) ,
401431 ( " testImplementsEqual " , testImplementsEqual) ,
402432 ( " testImplementsNotEqual " , testImplementsNotEqual) ,
433+ ( " testIsHashableInSwift4_2AndHigher " , testIsHashableInSwift4_2AndHigher) ,
403434 ]
404435 }
405436}
0 commit comments