@@ -15,109 +15,77 @@ import Algorithms
15
15
final class PartialSortTests : XCTestCase {
16
16
func testEmpty( ) {
17
17
let array = [ Int] ( )
18
- XCTAssertEqual ( array. partiallySorted ( 0 ) , [ ] )
18
+ XCTAssertEqual ( array. sortedPrefix ( 0 ) , [ ] )
19
19
}
20
20
21
- func testPartialSortWithPriority ( ) {
21
+ func testSortedPrefixWithOrdering ( ) {
22
22
let array : [ Int ] = [ 20 , 1 , 4 , 70 , 100 , 2 , 3 , 7 , 90 ]
23
23
24
- XCTAssertEqual ( array. partiallySorted ( 0 , by: > ) , array )
24
+ XCTAssertEqual ( array. sortedPrefix ( 0 , by: > ) , [ ] )
25
25
XCTAssertEqual (
26
- array. partiallySorted ( 1 , by: > ) ,
27
- [ 100 , 1 , 4 , 3 , 7 , 20 , 70 , 90 , 2 ]
26
+ array. sortedPrefix ( 1 , by: > ) ,
27
+ [ 100 ]
28
28
)
29
29
30
30
XCTAssertEqual (
31
- array. partiallySorted ( 5 , by: > ) ,
32
- [ 100 , 90 , 70 , 20 , 7 , 2 , 4 , 3 , 1 ]
31
+ array. sortedPrefix ( 5 , by: > ) ,
32
+ [ 100 , 90 , 70 , 20 , 7 ]
33
33
)
34
34
35
35
XCTAssertEqual (
36
- array. partiallySorted ( 9 , by: > ) ,
36
+ array. sortedPrefix ( 9 , by: > ) ,
37
37
[ 100 , 90 , 70 , 20 , 7 , 4 , 3 , 2 , 1 ]
38
38
)
39
39
40
- XCTAssertEqual ( [ 1 ] . partiallySorted ( 0 , by: < ) , [ 1 ] )
41
- XCTAssertEqual ( [ 1 ] . partiallySorted ( 0 , by: > ) , [ 1 ] )
42
- XCTAssertEqual ( [ 1 ] . partiallySorted ( 1 , by: < ) , [ 1 ] )
43
- XCTAssertEqual ( [ 1 ] . partiallySorted ( 1 , by: > ) , [ 1 ] )
44
- XCTAssertEqual ( [ 0 , 1 ] . partiallySorted ( 1 , by: < ) , [ 0 , 1 ] )
45
- XCTAssertEqual ( [ 1 , 0 ] . partiallySorted ( 1 , by: < ) , [ 0 , 1 ] )
46
- XCTAssertEqual ( [ 1 , 0 ] . partiallySorted ( 2 , by: < ) , [ 0 , 1 ] )
47
- XCTAssertEqual ( [ 0 , 1 ] . partiallySorted ( 1 , by: > ) , [ 1 , 0 ] )
48
- XCTAssertEqual ( [ 1 , 0 ] . partiallySorted ( 1 , by: > ) , [ 1 , 0 ] )
49
- XCTAssertEqual ( [ 1 , 0 ] . partiallySorted ( 2 , by: > ) , [ 1 , 0 ] )
40
+ XCTAssertEqual ( [ 1 ] . sortedPrefix ( 0 , by: < ) , [ ] )
41
+ XCTAssertEqual ( [ 1 ] . sortedPrefix ( 0 , by: > ) , [ ] )
42
+ XCTAssertEqual ( [ 1 ] . sortedPrefix ( 1 , by: < ) , [ 1 ] )
43
+ XCTAssertEqual ( [ 1 ] . sortedPrefix ( 1 , by: > ) , [ 1 ] )
44
+ XCTAssertEqual ( [ 0 , 1 ] . sortedPrefix ( 1 , by: < ) , [ 0 ] )
45
+ XCTAssertEqual ( [ 1 , 0 ] . sortedPrefix ( 1 , by: < ) , [ 0 ] )
46
+ XCTAssertEqual ( [ 1 , 0 ] . sortedPrefix ( 2 , by: < ) , [ 0 , 1 ] )
47
+ XCTAssertEqual ( [ 0 , 1 ] . sortedPrefix ( 1 , by: > ) , [ 1 ] )
48
+ XCTAssertEqual ( [ 1 , 0 ] . sortedPrefix ( 1 , by: > ) , [ 1 ] )
49
+ XCTAssertEqual ( [ 1 , 0 ] . sortedPrefix ( 2 , by: > ) , [ 1 , 0 ] )
50
50
51
51
XCTAssertEqual (
52
- [ 1 , 2 , 3 , 4 , 7 , 20 , 70 , 90 , 100 ] . partiallySorted ( 5 , by: < ) ,
53
- [ 1 , 2 , 3 , 4 , 7 , 90 , 70 , 20 , 100 ]
52
+ [ 1 , 2 , 3 , 4 , 7 , 20 , 70 , 90 , 100 ] . sortedPrefix ( 5 , by: < ) ,
53
+ [ 1 , 2 , 3 , 4 , 7 ]
54
54
)
55
55
56
56
XCTAssertEqual (
57
- [ 1 , 2 , 3 , 4 , 7 , 20 , 70 , 90 , 100 ] . partiallySorted ( 5 , by: > ) ,
58
- [ 100 , 90 , 70 , 20 , 7 , 2 , 4 , 3 , 1 ]
57
+ [ 1 , 2 , 3 , 4 , 7 , 20 , 70 , 90 , 100 ] . sortedPrefix ( 5 , by: > ) ,
58
+ [ 100 , 90 , 70 , 20 , 7 ]
59
59
)
60
60
61
61
XCTAssertEqual (
62
- [ 1 , 2 , 3 , 4 , 7 , 20 , 70 , 90 , 100 ] . partiallySorted ( 5 , by: > ) ,
63
- [ 100 , 90 , 70 , 20 , 7 , 2 , 4 , 3 , 1 ]
62
+ [ 1 , 2 , 3 , 4 , 7 , 20 , 70 , 90 , 100 ] . sortedPrefix ( 5 , by: > ) ,
63
+ [ 100 , 90 , 70 , 20 , 7 ]
64
64
)
65
65
66
66
XCTAssertEqual (
67
- [ 1 , 2 , 3 , 4 , 7 , 20 , 70 , 90 , 100 ] . partiallySorted ( 5 , by: < ) ,
68
- [ 1 , 2 , 3 , 4 , 7 , 90 , 70 , 20 , 100 ]
67
+ [ 1 , 2 , 3 , 4 , 7 , 20 , 70 , 90 , 100 ] . sortedPrefix ( 5 , by: < ) ,
68
+ [ 1 , 2 , 3 , 4 , 7 ]
69
69
)
70
70
}
71
71
72
- func testPartialSortComparable ( ) {
72
+ func testSortedPrefixComparable ( ) {
73
73
let array : [ Int ] = [ 20 , 1 , 4 , 70 , 100 , 2 , 3 , 7 , 90 ]
74
74
75
- XCTAssertEqual ( array. partiallySorted ( 0 ) , array )
75
+ XCTAssertEqual ( array. sortedPrefix ( 0 ) , [ ] )
76
76
77
77
XCTAssertEqual (
78
- array. partiallySorted ( 1 ) ,
79
- [ 1 , 90 , 4 , 70 , 100 , 7 , 3 , 2 , 20 ]
78
+ array. sortedPrefix ( 1 ) ,
79
+ [ 1 ]
80
80
)
81
81
82
82
XCTAssertEqual (
83
- array. partiallySorted ( 5 ) ,
84
- [ 1 , 2 , 3 , 4 , 7 , 90 , 70 , 20 , 100 ]
83
+ array. sortedPrefix ( 5 ) ,
84
+ [ 1 , 2 , 3 , 4 , 7 ]
85
85
)
86
86
87
87
XCTAssertEqual (
88
- array. partiallySorted ( 9 ) ,
89
- [ 1 , 2 , 3 , 4 , 7 , 20 , 70 , 90 , 100 ]
90
- )
91
- }
92
-
93
- func testPartialSortInPlaceComparable( ) {
94
- let originalArray : [ Int ] = [ 20 , 1 , 4 , 70 , 100 , 2 , 3 , 7 , 90 ]
95
- var array = originalArray
96
-
97
- array. partiallySort ( 0 )
98
- XCTAssertEqual ( array, originalArray)
99
-
100
- array = originalArray
101
-
102
- array. partiallySort ( 1 )
103
- XCTAssertEqual (
104
- array,
105
- [ 1 , 90 , 4 , 70 , 100 , 7 , 3 , 2 , 20 ]
106
- )
107
-
108
- array = originalArray
109
-
110
- array. partiallySort ( 5 )
111
- XCTAssertEqual (
112
- array,
113
- [ 1 , 2 , 3 , 4 , 7 , 90 , 70 , 20 , 100 ]
114
- )
115
-
116
- array = originalArray
117
-
118
- array. partiallySort ( 9 )
119
- XCTAssertEqual (
120
- array,
88
+ array. sortedPrefix ( 9 ) ,
121
89
[ 1 , 2 , 3 , 4 , 7 , 20 , 70 , 90 , 100 ]
122
90
)
123
91
}
0 commit comments