diff --git a/Sources/SortedArray.swift b/Sources/SortedArray.swift index 9194bf6..3414d59 100644 --- a/Sources/SortedArray.swift +++ b/Sources/SortedArray.swift @@ -313,3 +313,11 @@ extension SortedArray { return .notFound(insertAt: left) } } + +public func == (lhs: SortedArray, rhs: SortedArray) -> Bool { + return lhs._elements == rhs._elements +} + +public func != (lhs: SortedArray, rhs: SortedArray) -> Bool { + return lhs._elements != rhs._elements +} diff --git a/Tests/SortedArrayTests/SortedArrayTests.swift b/Tests/SortedArrayTests/SortedArrayTests.swift index 9385dba..2da293b 100644 --- a/Tests/SortedArrayTests/SortedArrayTests.swift +++ b/Tests/SortedArrayTests/SortedArrayTests.swift @@ -219,6 +219,18 @@ class SortedArrayTests: XCTestCase { sut.remove(3) assertElementsEqual(sut, [1,2]) } + + func testIsEqual() { + let sut = SortedArray(unsorted: 1...3) + + XCTAssertTrue(sut == SortedArray(unsorted: 1...3)) + } + + func testIsNotEqual() { + let sut = SortedArray(unsorted: 1...3) + + XCTAssertTrue(sut != SortedArray(unsorted: 1...4)) + } } extension SortedArrayTests { @@ -258,6 +270,8 @@ extension SortedArrayTests { ("testRemoveElementAtBeginningPreservesSortOrder", testRemoveElementAtBeginningPreservesSortOrder), ("testRemoveElementInMiddlePreservesSortOrder", testRemoveElementInMiddlePreservesSortOrder), ("testRemoveElementAtEndPreservesSortOrder", testRemoveElementAtEndPreservesSortOrder), + ("testImplements==", testIsEqual), + ("testImplements!=", testIsNotEqual), ] } }