@@ -23,7 +23,13 @@ class TestNSRange : XCTestCase {
23
23
return [
24
24
// currently disabled due to pending requirements for NSString
25
25
// ("test_NSRangeFromString", test_NSRangeFromString ),
26
- ( " test_NSRangeBridging " , test_NSRangeBridging)
26
+ ( " test_NSRangeBridging " , test_NSRangeBridging) ,
27
+ ( " test_NSMaxRange " , test_NSMaxRange) ,
28
+ ( " test_NSLocationInRange " , test_NSLocationInRange) ,
29
+ ( " test_NSEqualRanges " , test_NSEqualRanges) ,
30
+ ( " test_NSUnionRange " , test_NSUnionRange) ,
31
+ ( " test_NSIntersectionRange " , test_NSIntersectionRange) ,
32
+ ( " test_NSStringFromRange " , test_NSStringFromRange) ,
27
33
]
28
34
}
29
35
@@ -66,4 +72,69 @@ class TestNSRange : XCTestCase {
66
72
let swiftRange2 = range. toRange ( )
67
73
XCTAssertEqual ( swiftRange, swiftRange2)
68
74
}
75
+
76
+ func test_NSMaxRange( ) {
77
+ let ranges = [ ( NSMakeRange ( 0 , 3 ) , 3 ) ,
78
+ ( NSMakeRange ( 7 , 8 ) , 15 ) ,
79
+ ( NSMakeRange ( 56 , 1 ) , 57 ) ]
80
+ for (range, result) in ranges {
81
+ XCTAssertEqual ( NSMaxRange ( range) , result)
82
+ }
83
+ }
84
+
85
+ func test_NSLocationInRange( ) {
86
+ let ranges = [ ( 3 , NSMakeRange ( 0 , 5 ) , true ) ,
87
+ ( 10 , NSMakeRange ( 2 , 9 ) , true ) ,
88
+ ( 7 , NSMakeRange ( 2 , 5 ) , false ) ,
89
+ ( 5 , NSMakeRange ( 5 , 1 ) , true ) ] ;
90
+ for (location, range, result) in ranges {
91
+ XCTAssertEqual ( NSLocationInRange ( location, range) , result) ;
92
+ }
93
+ }
94
+
95
+ func test_NSEqualRanges( ) {
96
+ let ranges = [ ( NSMakeRange ( 0 , 3 ) , NSMakeRange ( 0 , 3 ) , true ) ,
97
+ ( NSMakeRange ( 0 , 4 ) , NSMakeRange ( 0 , 8 ) , false ) ,
98
+ ( NSMakeRange ( 3 , 6 ) , NSMakeRange ( 3 , 10 ) , false ) ,
99
+ ( NSMakeRange ( 0 , 5 ) , NSMakeRange ( 7 , 8 ) , false ) ]
100
+ for (first, second, result) in ranges {
101
+ XCTAssertEqual ( NSEqualRanges ( first, second) , result)
102
+ }
103
+ }
104
+
105
+
106
+ func test_NSUnionRange( ) {
107
+ let ranges = [ ( NSMakeRange ( 0 , 5 ) , NSMakeRange ( 3 , 8 ) , NSMakeRange ( 0 , 11 ) ) ,
108
+ ( NSMakeRange ( 6 , 10 ) , NSMakeRange ( 3 , 8 ) , NSMakeRange ( 3 , 13 ) ) ,
109
+ ( NSMakeRange ( 3 , 8 ) , NSMakeRange ( 6 , 10 ) , NSMakeRange ( 3 , 13 ) ) ,
110
+ ( NSMakeRange ( 0 , 5 ) , NSMakeRange ( 7 , 8 ) , NSMakeRange ( 0 , 15 ) ) ,
111
+ ( NSMakeRange ( 0 , 3 ) , NSMakeRange ( 1 , 2 ) , NSMakeRange ( 0 , 3 ) ) ]
112
+ for (first, second, result) in ranges {
113
+ XCTAssert ( NSEqualRanges ( NSUnionRange ( first, second) , result) )
114
+ }
115
+ }
116
+
117
+ func test_NSIntersectionRange( ) {
118
+ let ranges = [ ( NSMakeRange ( 0 , 5 ) , NSMakeRange ( 3 , 8 ) , NSMakeRange ( 3 , 2 ) ) ,
119
+ ( NSMakeRange ( 6 , 10 ) , NSMakeRange ( 3 , 8 ) , NSMakeRange ( 6 , 5 ) ) ,
120
+ ( NSMakeRange ( 3 , 8 ) , NSMakeRange ( 6 , 10 ) , NSMakeRange ( 6 , 5 ) ) ,
121
+ ( NSMakeRange ( 0 , 5 ) , NSMakeRange ( 7 , 8 ) , NSMakeRange ( 0 , 0 ) ) ,
122
+ ( NSMakeRange ( 0 , 3 ) , NSMakeRange ( 1 , 2 ) , NSMakeRange ( 1 , 2 ) ) ]
123
+ for (first, second, result) in ranges {
124
+ XCTAssert ( NSEqualRanges ( NSIntersectionRange ( first, second) , result) )
125
+ }
126
+ }
127
+
128
+ func test_NSStringFromRange( ) {
129
+ let ranges = [ " {0, 0} " : NSMakeRange ( 0 , 0 ) ,
130
+ " {6, 4} " : NSMakeRange ( 6 , 4 ) ,
131
+ " {0, 10} " : NSMakeRange ( 0 , 10 ) ,
132
+ " {10, 200} " : NSMakeRange ( 10 , 200 ) ,
133
+ " {100, 10} " : NSMakeRange ( 100 , 10 ) ,
134
+ " {1000, 100000} " : NSMakeRange ( 1000 , 100_000 ) ] ;
135
+
136
+ for (string, range) in ranges {
137
+ XCTAssertEqual ( NSStringFromRange ( range) , string)
138
+ }
139
+ }
69
140
}
0 commit comments