Skip to content

Commit 07f177c

Browse files
committed
Implement equality operators
Make SortedArray appear Equatable by implementing == and != for SortedArrays where the elements are Equatable.
1 parent 78ab4fb commit 07f177c

2 files changed

Lines changed: 22 additions & 0 deletions

File tree

Sources/SortedArray.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,3 +313,11 @@ extension SortedArray {
313313
return .notFound(insertAt: left)
314314
}
315315
}
316+
317+
public func ==<Element: Equatable> (lhs: SortedArray<Element>, rhs: SortedArray<Element>) -> Bool {
318+
return lhs._elements == rhs._elements
319+
}
320+
321+
public func !=<Element: Equatable> (lhs: SortedArray<Element>, rhs: SortedArray<Element>) -> Bool {
322+
return lhs._elements != rhs._elements
323+
}

Tests/SortedArrayTests/SortedArrayTests.swift

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,18 @@ class SortedArrayTests: XCTestCase {
219219
sut.remove(3)
220220
assertElementsEqual(sut, [1,2])
221221
}
222+
223+
func testIsEqual() {
224+
let sut = SortedArray(unsorted: 1...3)
225+
226+
XCTAssertTrue(sut == SortedArray(unsorted: 1...3))
227+
}
228+
229+
func testIsNotEqual() {
230+
let sut = SortedArray(unsorted: 1...3)
231+
232+
XCTAssertTrue(sut != SortedArray(unsorted: 1...4))
233+
}
222234
}
223235

224236
extension SortedArrayTests {
@@ -258,6 +270,8 @@ extension SortedArrayTests {
258270
("testRemoveElementAtBeginningPreservesSortOrder", testRemoveElementAtBeginningPreservesSortOrder),
259271
("testRemoveElementInMiddlePreservesSortOrder", testRemoveElementInMiddlePreservesSortOrder),
260272
("testRemoveElementAtEndPreservesSortOrder", testRemoveElementAtEndPreservesSortOrder),
273+
("testImplements==", testIsEqual),
274+
("testImplements!=", testIsNotEqual),
261275
]
262276
}
263277
}

0 commit comments

Comments
 (0)