@@ -15,48 +15,78 @@ import Algorithms
1515final class PartialSortTests : XCTestCase {
1616 func testEmpty( ) {
1717 let array = [ Int] ( )
18-
1918 XCTAssertEqual ( array. partiallySorted ( 0 ) , [ ] )
2019 }
2120
22- func testPartialSortComparable ( ) {
21+ func testPartialSortWithPriority ( ) {
2322 let array : [ Int ] = [ 20 , 1 , 4 , 70 , 100 , 2 , 3 , 7 , 90 ]
2423
25- XCTAssertEqual ( array. partiallySorted ( 0 ) , array)
24+ XCTAssertEqual ( array. partiallySorted ( 0 , by: > ) , array)
25+ XCTAssertEqual (
26+ array. partiallySorted ( 1 , by: > ) ,
27+ [ 100 , 1 , 4 , 3 , 7 , 20 , 70 , 90 , 2 ]
28+ )
2629
2730 XCTAssertEqual (
28- array. partiallySorted ( 1 ) ,
29- [ 1 , 90 , 4 , 70 , 100 , 7 , 3 , 2 , 20 ]
31+ array. partiallySorted ( 5 , by : > ) ,
32+ [ 100 , 90 , 70 , 20 , 7 , 2 , 4 , 3 , 1 ]
3033 )
3134
3235 XCTAssertEqual (
33- array. partiallySorted ( 5 ) ,
36+ array. partiallySorted ( 9 , by: > ) ,
37+ [ 100 , 90 , 70 , 20 , 7 , 4 , 3 , 2 , 1 ]
38+ )
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 ] )
50+
51+ XCTAssertEqual (
52+ [ 1 , 2 , 3 , 4 , 7 , 20 , 70 , 90 , 100 ] . partiallySorted ( 5 , by: < ) ,
3453 [ 1 , 2 , 3 , 4 , 7 , 90 , 70 , 20 , 100 ]
3554 )
3655
3756 XCTAssertEqual (
38- array. partiallySorted ( 9 ) ,
39- [ 1 , 2 , 3 , 4 , 7 , 20 , 70 , 90 , 100 ]
57+ [ 1 , 2 , 3 , 4 , 7 , 20 , 70 , 90 , 100 ] . partiallySorted ( 5 , by: > ) ,
58+ [ 100 , 90 , 70 , 20 , 7 , 2 , 4 , 3 , 1 ]
59+ )
60+
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 ]
64+ )
65+
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 ]
4069 )
4170 }
4271
43- func testPartialSortComparableWithCustomPriority ( ) {
72+ func testPartialSortComparable ( ) {
4473 let array : [ Int ] = [ 20 , 1 , 4 , 70 , 100 , 2 , 3 , 7 , 90 ]
4574
46- XCTAssertEqual ( array. partiallySorted ( 0 , by: > ) , array)
75+ XCTAssertEqual ( array. partiallySorted ( 0 ) , array)
76+
4777 XCTAssertEqual (
48- array. partiallySorted ( 1 , by : > ) ,
49- [ 100 , 1 , 4 , 3 , 7 , 20 , 70 , 90 , 2 ]
78+ array. partiallySorted ( 1 ) ,
79+ [ 1 , 90 , 4 , 70 , 100 , 7 , 3 , 2 , 20 ]
5080 )
5181
5282 XCTAssertEqual (
53- array. partiallySorted ( 5 , by : > ) ,
54- [ 100 , 90 , 70 , 20 , 7 , 2 , 4 , 3 , 1 ]
83+ array. partiallySorted ( 5 ) ,
84+ [ 1 , 2 , 3 , 4 , 7 , 90 , 70 , 20 , 100 ]
5585 )
5686
5787 XCTAssertEqual (
58- array. partiallySorted ( 9 , by : > ) ,
59- [ 100 , 90 , 70 , 20 , 7 , 4 , 3 , 2 , 1 ]
88+ array. partiallySorted ( 9 ) ,
89+ [ 1 , 2 , 3 , 4 , 7 , 20 , 70 , 90 , 100 ]
6090 )
6191 }
6292
@@ -91,16 +121,4 @@ final class PartialSortTests: XCTestCase {
91121 [ 1 , 2 , 3 , 4 , 7 , 20 , 70 , 90 , 100 ]
92122 )
93123 }
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- }
106124}
0 commit comments