Skip to content

Commit 6a63444

Browse files
committed
Add unit tests for reverse functions
1 parent aca840d commit 6a63444

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

Tests/SwiftAlgorithmsTests/RotateTests.swift

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,29 @@
1010
//===----------------------------------------------------------------------===//
1111

1212
import XCTest
13-
import Algorithms
13+
@testable import Algorithms
1414

1515
final class RotateTests: XCTestCase {
16+
func testUnderscoreReverse() {
17+
var input = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p"]
18+
let limit: Int = 4
19+
let (lower, upper) = input._reverse(subrange: input.startIndex..<input.endIndex, until: input.startIndex.advanced(by: limit))
20+
let expected = ["p", "o", "n", "m", "e", "f", "g", "h", "i", "j", "k", "l", "d", "c", "b", "a"]
21+
XCTAssertEqual(input, expected)
22+
XCTAssertEqual(lower, input.startIndex.advanced(by: limit))
23+
XCTAssertEqual(upper, input.endIndex.advanced(by: -limit))
24+
25+
var numbers = [10, 20, 30, 40, 50, 60, 70, 80]
26+
numbers.reverse(subrange: 0..<4)
27+
XCTAssertEqual(numbers, [40, 30, 20, 10, 50, 60, 70, 80])
28+
}
29+
30+
func testReverse() {
31+
var numbers = [10, 20, 30, 40, 50, 60, 70, 80]
32+
numbers.reverse(subrange: 0..<4)
33+
XCTAssertEqual(numbers, [40, 30, 20, 10, 50, 60, 70, 80])
34+
}
35+
1636
func testRotateSubrangeExample() {
1737
var numbers = [10, 20, 30, 40, 50, 60, 70, 80]
1838
let oldStart = numbers.rotate(subrange: 0..<4, toStartAt: 2)

0 commit comments

Comments
 (0)