Skip to content

Commit 88216e1

Browse files
committed
Add partial sort tests
1 parent 63b2dd0 commit 88216e1

File tree

1 file changed

+106
-0
lines changed

1 file changed

+106
-0
lines changed
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
//===----------------------------------------------------------------------===//
2+
//
3+
// This source file is part of the Swift Algorithms open source project
4+
//
5+
// Copyright (c) 2020 Apple Inc. and the Swift project authors
6+
// Licensed under Apache License v2.0 with Runtime Library Exception
7+
//
8+
// See https://swift.org/LICENSE.txt for license information
9+
//
10+
//===----------------------------------------------------------------------===//
11+
12+
import XCTest
13+
import Algorithms
14+
15+
final class PartialSortTests: XCTestCase {
16+
func testEmpty() {
17+
let array = [Int]()
18+
19+
XCTAssertEqual(array.partiallySorted(0), [])
20+
}
21+
22+
func testPartialSortComparable() {
23+
let array: [Int] = [20, 1, 4, 70, 100, 2, 3, 7, 90]
24+
25+
XCTAssertEqual(array.partiallySorted(0), array)
26+
27+
XCTAssertEqual(
28+
array.partiallySorted(1),
29+
[1, 90, 4, 70, 100, 7, 3, 2, 20]
30+
)
31+
32+
XCTAssertEqual(
33+
array.partiallySorted(5),
34+
[1, 2, 3, 4, 7, 90, 70, 20, 100]
35+
)
36+
37+
XCTAssertEqual(
38+
array.partiallySorted(9),
39+
[1, 2, 3, 4, 7, 20, 70, 90, 100]
40+
)
41+
}
42+
43+
func testPartialSortComparableWithCustomPriority() {
44+
let array: [Int] = [20, 1, 4, 70, 100, 2, 3, 7, 90]
45+
46+
XCTAssertEqual(array.partiallySorted(0, by: >), array)
47+
XCTAssertEqual(
48+
array.partiallySorted(1, by: >),
49+
[100, 1, 4, 3, 7, 20, 70, 90, 2]
50+
)
51+
52+
XCTAssertEqual(
53+
array.partiallySorted(5, by: >),
54+
[100, 90, 70, 20, 7, 2, 4, 3, 1]
55+
)
56+
57+
XCTAssertEqual(
58+
array.partiallySorted(9, by: >),
59+
[100, 90, 70, 20, 7, 4, 3, 2, 1]
60+
)
61+
}
62+
63+
func testPartialSortInPlaceComparable() {
64+
let originalArray: [Int] = [20, 1, 4, 70, 100, 2, 3, 7, 90]
65+
var array = originalArray
66+
67+
array.partiallySort(0)
68+
XCTAssertEqual(array, originalArray)
69+
70+
array = originalArray
71+
72+
array.partiallySort(1)
73+
XCTAssertEqual(
74+
array,
75+
[1, 90, 4, 70, 100, 7, 3, 2, 20]
76+
)
77+
78+
array = originalArray
79+
80+
array.partiallySort(5)
81+
XCTAssertEqual(
82+
array,
83+
[1, 2, 3, 4, 7, 90, 70, 20, 100]
84+
)
85+
86+
array = originalArray
87+
88+
array.partiallySort(9)
89+
XCTAssertEqual(
90+
array,
91+
[1, 2, 3, 4, 7, 20, 70, 90, 100]
92+
)
93+
}
94+
95+
func testPartialSortDescendingArray() {
96+
let array: [Int] = [100, 90, 70, 20, 7, 4, 3, 2, 1]
97+
98+
XCTAssertEqual(array.partiallySorted(9, by: >), array)
99+
}
100+
101+
func testPartialSortAscendingArray() {
102+
let array: [Int] = [1, 2, 3, 4, 7, 20, 70, 90, 100]
103+
104+
XCTAssertEqual(array.partiallySorted(9, by: <), array)
105+
}
106+
}

0 commit comments

Comments
 (0)