-
Notifications
You must be signed in to change notification settings - Fork 6
/
BooleanOverlapTests.swift
64 lines (46 loc) · 3.36 KB
/
BooleanOverlapTests.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
@testable import GISTools
import XCTest
final class BooleanOverlapTests: XCTestCase {
func testFalse() {
let lineString1 = TestData.lineString(package: "BooleanOverlap", name: "OverlapFalse1_1")
let lineString2 = TestData.lineString(package: "BooleanOverlap", name: "OverlapFalse1_2")
let lineString3 = TestData.lineString(package: "BooleanOverlap", name: "OverlapFalse2_1")
let lineString4 = TestData.lineString(package: "BooleanOverlap", name: "OverlapFalse2_2")
let lineString5 = TestData.lineString(package: "BooleanOverlap", name: "OverlapFalse3_1")
let lineString6 = TestData.lineString(package: "BooleanOverlap", name: "OverlapFalse3_2")
let multiPoint1 = TestData.multiPoint(package: "BooleanOverlap", name: "OverlapFalse4_1")
let multiPoint2 = TestData.multiPoint(package: "BooleanOverlap", name: "OverlapFalse4_2")
let multiPoint3 = TestData.multiPoint(package: "BooleanOverlap", name: "OverlapFalse6_1")
let multiPoint4 = TestData.multiPoint(package: "BooleanOverlap", name: "OverlapFalse6_2")
// let polygon1 = TestData.polygon(package: "BooleanOverlap", name: "OverlapFalse5_1")
// let polygon2 = TestData.polygon(package: "BooleanOverlap", name: "OverlapFalse5_2")
let polygon3 = TestData.polygon(package: "BooleanOverlap", name: "OverlapFalse7_1")
let polygon4 = TestData.polygon(package: "BooleanOverlap", name: "OverlapFalse7_2")
XCTAssertFalse(lineString1.isOverlapping(with: lineString2))
XCTAssertFalse(lineString3.isOverlapping(with: lineString4))
XCTAssertFalse(lineString5.isOverlapping(with: lineString6))
XCTAssertFalse(multiPoint1.isOverlapping(with: multiPoint2))
XCTAssertFalse(multiPoint3.isOverlapping(with: multiPoint4))
// TODO: This test will fail because the coordinates are shifted. The Polygon equality check has to
// be updated first (see the TODO there)
// XCTAssertFalse(polygon1.isOverlapping(with: polygon2))
XCTAssertFalse(polygon3.isOverlapping(with: polygon4))
}
func testTrue() {
let lineString1 = TestData.lineString(package: "BooleanOverlap", name: "OverlapTrue1_1")
let lineString2 = TestData.lineString(package: "BooleanOverlap", name: "OverlapTrue1_2")
let lineString3 = TestData.lineString(package: "BooleanOverlap", name: "OverlapTrue2_1")
let lineString4 = TestData.lineString(package: "BooleanOverlap", name: "OverlapTrue2_2")
let lineString5 = TestData.lineString(package: "BooleanOverlap", name: "OverlapTrue5_1")
let lineString6 = TestData.lineString(package: "BooleanOverlap", name: "OverlapTrue5_2")
let multiPoint1 = TestData.multiPoint(package: "BooleanOverlap", name: "OverlapTrue3_1")
let multiPoint2 = TestData.multiPoint(package: "BooleanOverlap", name: "OverlapTrue3_2")
let polygon1 = TestData.polygon(package: "BooleanOverlap", name: "OverlapTrue4_1")
let polygon2 = TestData.polygon(package: "BooleanOverlap", name: "OverlapTrue4_2")
XCTAssertTrue(lineString1.isOverlapping(with: lineString2))
XCTAssertTrue(lineString3.isOverlapping(with: lineString4))
XCTAssertTrue(lineString5.isOverlapping(with: lineString6))
XCTAssertTrue(multiPoint1.isOverlapping(with: multiPoint2))
XCTAssertTrue(polygon1.isOverlapping(with: polygon2))
}
}