Skip to content

Commit f1ddd0c

Browse files
authored
Merge pull request #926 from rxwei/master
2 parents 168df62 + 996ccfe commit f1ddd0c

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

Foundation/NSOrderedSet.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ extension NSOrderedSet {
148148
open func objects(at indexes: IndexSet) -> [Any] {
149149
var entries = [Any]()
150150
for idx in indexes {
151-
if idx >= count && idx < 0 {
151+
guard idx < count && idx >= 0 else {
152152
fatalError("\(self): Index out of bounds")
153153
}
154154
entries.append(object(at: idx))
@@ -338,12 +338,12 @@ extension NSOrderedSet {
338338
open class NSMutableOrderedSet : NSOrderedSet {
339339

340340
open func insert(_ object: Any, at idx: Int) {
341-
guard idx < count && idx >= 0 else {
341+
guard idx <= count && idx >= 0 else {
342342
fatalError("\(self): Index out of bounds")
343343
}
344344

345345
let value = _SwiftValue.store(object)
346-
346+
347347
if contains(value) {
348348
return
349349
}

TestFoundation/TestNSOrderedSet.swift

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ class TestNSOrderedSet : XCTestCase {
4343
("test_ReplaceObject", test_ReplaceObject),
4444
("test_ExchangeObjects", test_ExchangeObjects),
4545
("test_MoveObjects", test_MoveObjects),
46-
("test_InserObjects", test_InsertObjects),
46+
("test_InsertObjects", test_InsertObjects),
47+
("test_Insert", test_Insert),
4748
("test_SetObjectAtIndex", test_SetObjectAtIndex),
4849
("test_RemoveObjectsInRange", test_RemoveObjectsInRange),
4950
("test_ReplaceObjectsAtIndexes", test_ReplaceObjectsAtIndexes),
@@ -252,6 +253,16 @@ class TestNSOrderedSet : XCTestCase {
252253
XCTAssertEqual(set[4] as? String, "baz")
253254
}
254255

256+
func test_Insert() {
257+
let set = NSMutableOrderedSet()
258+
set.insert("foo", at: 0)
259+
XCTAssertEqual(set.count, 1)
260+
XCTAssertEqual(set[0] as? String, "foo")
261+
set.insert("bar", at: 1)
262+
XCTAssertEqual(set.count, 2)
263+
XCTAssertEqual(set[1] as? String, "bar")
264+
}
265+
255266
func test_SetObjectAtIndex() {
256267
let set = NSMutableOrderedSet(arrayLiteral: "foo", "bar", "baz")
257268
set.setObject("123", at: 1)

0 commit comments

Comments
 (0)