Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .swiftlint.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
disabled_rules:
- trailing_comma
- todo
excluded:
- .build
- .git
Expand Down
2 changes: 1 addition & 1 deletion Sources/SwiftH3/H3Coordinate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public struct H3Coordinate {
}

extension H3Coordinate: Equatable {

public static func == (lhs: H3Coordinate, rhs: H3Coordinate) -> Bool {
lhs.lat == rhs.lat && lhs.lon == rhs.lon
}
Expand Down
11 changes: 4 additions & 7 deletions Sources/SwiftH3/H3Index.swift
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,7 @@ extension H3Index {
gridDiskError = gridDisk(value, ringK, ptr.baseAddress)
}
if gridDiskError.code != .success {
// TODO: throw
return []
throw gridDiskError.code
}

return indices.map { H3Index($0) }
Expand Down Expand Up @@ -161,12 +160,11 @@ extension H3Index {
/// - Parameter resolution: The resolution for the parent
/// - Returns: The parent index at that resolution.
/// Can be nil if invalid
public func children(at resolution: Int) -> [H3Index] {
public func children(at resolution: Int) throws -> [H3Index] {
var maxChildren: Int64 = 0
let maxChildrenError = cellToChildrenSize(value, Int32(resolution), &maxChildren)
if maxChildrenError.code != .success {
// TODO: Throw
return []
throw maxChildrenError.code
}

var error: H3Error
Expand All @@ -176,8 +174,7 @@ extension H3Index {
)
error = cellToChildren(value, Int32(resolution), &children)
if error.code != .success {
// TODO: throw
return []
throw error.code
}

return children
Expand Down
22 changes: 18 additions & 4 deletions Tests/SwiftH3Tests/H3IndexTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -91,13 +91,13 @@ final class H3IndexTests: XCTestCase {

func testChildren() {
let index = H3Index(0x8a2a10766d87fff)
XCTAssertEqual(index.children(at: 9), [])
XCTAssertThrowsError(try index.children(at: 9), "Resolution is lower than index resolution")

let expectedRes11 = [
0x8b2a10766d80fff, 0x8b2a10766d81fff, 0x8b2a10766d82fff, 0x8b2a10766d83fff,
0x8b2a10766d84fff, 0x8b2a10766d85fff, 0x8b2a10766d86fff
].map { H3Index($0) }
XCTAssertEqual(index.children(at: 11), expectedRes11)
XCTAssertEqual(try index.children(at: 11), expectedRes11)

let expectedRes12 = [
0x8c2a10766d801ff, 0x8c2a10766d803ff, 0x8c2a10766d805ff, 0x8c2a10766d807ff,
Expand All @@ -114,7 +114,7 @@ final class H3IndexTests: XCTestCase {
0x8c2a10766d865ff, 0x8c2a10766d867ff, 0x8c2a10766d869ff, 0x8c2a10766d86bff,
0x8c2a10766d86dff
].map { H3Index($0) }
XCTAssertEqual(index.children(at: 12), expectedRes12)
XCTAssertEqual(try index.children(at: 12), expectedRes12)
}

func testCenterChild() {
Expand Down Expand Up @@ -142,7 +142,21 @@ final class H3IndexTests: XCTestCase {
])

let cells = H3Index.polygonToCells(polygon: polygon, resolution: 9)
XCTAssertEqual(cells, [0x892a100da4bffff, 0x892a1072d2fffff, 0x892a1072993ffff, 0x892a100da4fffff, 0x892a100da7bffff, 0x892a1072997ffff, 0x892a1072987ffff, 0x892a10729b3ffff, 0x892a100da43ffff, 0x892a1072d27ffff, 0x892a100da5bffff, 0x892a10729b7ffff, 0x892a10729a3ffff].map(H3Index.init))
XCTAssertEqual(cells, [
0x892a100da4bffff,
0x892a1072d2fffff,
0x892a1072993ffff,
0x892a100da4fffff,
0x892a100da7bffff,
0x892a1072997ffff,
0x892a1072987ffff,
0x892a10729b3ffff,
0x892a100da43ffff,
0x892a1072d27ffff,
0x892a100da5bffff,
0x892a10729b7ffff,
0x892a10729a3ffff
].map(H3Index.init))
}

static var allTests = [
Expand Down