Skip to content

Commit 0055ab0

Browse files
committed
Added if check for Swift 4
1 parent 0a73a14 commit 0055ab0

File tree

1 file changed

+88
-80
lines changed

1 file changed

+88
-80
lines changed

Hashed Heap/Tests/HashedHeapTests.swift

Lines changed: 88 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -2,87 +2,95 @@ import Foundation
22
import XCTest
33

44
private struct Message: Hashable {
5-
let text: String
6-
let priority: Int
7-
8-
var hashValue: Int {
9-
return text.hashValue
10-
}
11-
12-
static func == (lhs: Message, rhs: Message) -> Bool {
13-
return lhs.text == rhs.text
14-
}
15-
16-
static func < (m1: Message, m2: Message) -> Bool {
17-
return m1.priority < m2.priority
18-
}
5+
let text: String
6+
let priority: Int
7+
8+
var hashValue: Int {
9+
return text.hashValue
10+
}
11+
12+
static func == (lhs: Message, rhs: Message) -> Bool {
13+
return lhs.text == rhs.text
14+
}
15+
16+
static func < (m1: Message, m2: Message) -> Bool {
17+
return m1.priority < m2.priority
18+
}
1919
}
2020

2121
class HashedHeapTest: XCTestCase {
22-
func testEmpty() {
23-
var queue = HashedHeap<Message>(sort: <)
24-
XCTAssertTrue(queue.isEmpty)
25-
XCTAssertEqual(queue.count, 0)
26-
XCTAssertNil(queue.peek())
27-
XCTAssertNil(queue.remove())
28-
}
29-
30-
func testOneElement() {
31-
var queue = HashedHeap<Message>(sort: <)
32-
33-
queue.insert(Message(text: "hello", priority: 100))
34-
XCTAssertFalse(queue.isEmpty)
35-
XCTAssertEqual(queue.count, 1)
36-
XCTAssertEqual(queue.peek()!.priority, 100)
37-
38-
let result = queue.remove()
39-
XCTAssertEqual(result!.priority, 100)
40-
XCTAssertTrue(queue.isEmpty)
41-
XCTAssertEqual(queue.count, 0)
42-
XCTAssertNil(queue.peek())
43-
}
44-
45-
func testTwoElementsInOrder() {
46-
var queue = HashedHeap<Message>(sort: <)
47-
48-
queue.insert(Message(text: "hello", priority: 100))
49-
queue.insert(Message(text: "world", priority: 200))
50-
XCTAssertFalse(queue.isEmpty)
51-
XCTAssertEqual(queue.count, 2)
52-
XCTAssertEqual(queue.peek()!.priority, 100)
53-
54-
let result1 = queue.remove()
55-
XCTAssertEqual(result1!.priority, 100)
56-
XCTAssertFalse(queue.isEmpty)
57-
XCTAssertEqual(queue.count, 1)
58-
XCTAssertEqual(queue.peek()!.priority, 200)
59-
60-
let result2 = queue.remove()
61-
XCTAssertEqual(result2!.priority, 200)
62-
XCTAssertTrue(queue.isEmpty)
63-
XCTAssertEqual(queue.count, 0)
64-
XCTAssertNil(queue.peek())
65-
}
66-
67-
func testTwoElementsOutOfOrder() {
68-
var queue = HashedHeap<Message>(sort: <)
69-
70-
queue.insert(Message(text: "world", priority: 200))
71-
queue.insert(Message(text: "hello", priority: 100))
72-
XCTAssertFalse(queue.isEmpty)
73-
XCTAssertEqual(queue.count, 2)
74-
XCTAssertEqual(queue.peek()!.priority, 100)
75-
76-
let result1 = queue.remove()
77-
XCTAssertEqual(result1!.priority, 100)
78-
XCTAssertFalse(queue.isEmpty)
79-
XCTAssertEqual(queue.count, 1)
80-
XCTAssertEqual(queue.peek()!.priority, 200)
81-
82-
let result2 = queue.remove()
83-
XCTAssertEqual(result2!.priority, 200)
84-
XCTAssertTrue(queue.isEmpty)
85-
XCTAssertEqual(queue.count, 0)
86-
XCTAssertNil(queue.peek())
87-
}
22+
override func setUp() {
23+
super.setUp()
24+
// last checked with Xcode 9.0b4
25+
#if swift(>=4.0)
26+
print("Hello, Swift 4!")
27+
#endif
28+
}
29+
30+
func testEmpty() {
31+
var queue = HashedHeap<Message>(sort: <)
32+
XCTAssertTrue(queue.isEmpty)
33+
XCTAssertEqual(queue.count, 0)
34+
XCTAssertNil(queue.peek())
35+
XCTAssertNil(queue.remove())
36+
}
37+
38+
func testOneElement() {
39+
var queue = HashedHeap<Message>(sort: <)
40+
41+
queue.insert(Message(text: "hello", priority: 100))
42+
XCTAssertFalse(queue.isEmpty)
43+
XCTAssertEqual(queue.count, 1)
44+
XCTAssertEqual(queue.peek()!.priority, 100)
45+
46+
let result = queue.remove()
47+
XCTAssertEqual(result!.priority, 100)
48+
XCTAssertTrue(queue.isEmpty)
49+
XCTAssertEqual(queue.count, 0)
50+
XCTAssertNil(queue.peek())
51+
}
52+
53+
func testTwoElementsInOrder() {
54+
var queue = HashedHeap<Message>(sort: <)
55+
56+
queue.insert(Message(text: "hello", priority: 100))
57+
queue.insert(Message(text: "world", priority: 200))
58+
XCTAssertFalse(queue.isEmpty)
59+
XCTAssertEqual(queue.count, 2)
60+
XCTAssertEqual(queue.peek()!.priority, 100)
61+
62+
let result1 = queue.remove()
63+
XCTAssertEqual(result1!.priority, 100)
64+
XCTAssertFalse(queue.isEmpty)
65+
XCTAssertEqual(queue.count, 1)
66+
XCTAssertEqual(queue.peek()!.priority, 200)
67+
68+
let result2 = queue.remove()
69+
XCTAssertEqual(result2!.priority, 200)
70+
XCTAssertTrue(queue.isEmpty)
71+
XCTAssertEqual(queue.count, 0)
72+
XCTAssertNil(queue.peek())
73+
}
74+
75+
func testTwoElementsOutOfOrder() {
76+
var queue = HashedHeap<Message>(sort: <)
77+
78+
queue.insert(Message(text: "world", priority: 200))
79+
queue.insert(Message(text: "hello", priority: 100))
80+
XCTAssertFalse(queue.isEmpty)
81+
XCTAssertEqual(queue.count, 2)
82+
XCTAssertEqual(queue.peek()!.priority, 100)
83+
84+
let result1 = queue.remove()
85+
XCTAssertEqual(result1!.priority, 100)
86+
XCTAssertFalse(queue.isEmpty)
87+
XCTAssertEqual(queue.count, 1)
88+
XCTAssertEqual(queue.peek()!.priority, 200)
89+
90+
let result2 = queue.remove()
91+
XCTAssertEqual(result2!.priority, 200)
92+
XCTAssertTrue(queue.isEmpty)
93+
XCTAssertEqual(queue.count, 0)
94+
XCTAssertNil(queue.peek())
95+
}
8896
}

0 commit comments

Comments
 (0)