h3 3.6.2 → 3.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +23 -0
  3. data/Gemfile.lock +6 -6
  4. data/README.md +1 -1
  5. data/ext/h3/src/.github/workflows/test-linux.yml +118 -0
  6. data/ext/h3/src/.github/workflows/test-macos.yml +42 -0
  7. data/ext/h3/src/.github/workflows/test-website.yml +32 -0
  8. data/ext/h3/src/.github/workflows/test-windows.yml +44 -0
  9. data/ext/h3/src/.gitignore +5 -0
  10. data/ext/h3/src/.travis.yml +16 -46
  11. data/ext/h3/src/CHANGELOG.md +43 -0
  12. data/ext/h3/src/CMakeLists.txt +133 -33
  13. data/ext/h3/src/CONTRIBUTING.md +1 -1
  14. data/ext/h3/src/README.md +60 -10
  15. data/ext/h3/src/RELEASE.md +3 -1
  16. data/ext/h3/src/VERSION +1 -1
  17. data/ext/h3/src/dev-docs/RFCs/rfc-template.md +21 -0
  18. data/ext/h3/src/dev-docs/RFCs/v4.0.0/error-handling-rfc.md +21 -0
  19. data/ext/h3/src/dev-docs/RFCs/v4.0.0/names_for_concepts_types_functions.md +276 -0
  20. data/ext/h3/src/dev-docs/RFCs/v4.0.0/overrideable-allocators-rfc.md +141 -0
  21. data/ext/h3/src/dev-docs/RFCs/v4.0.0/polyfill-modes-rfc.md +21 -0
  22. data/ext/h3/src/dev-docs/RFCs/v4.0.0/vertex-mode-rfc.md +50 -0
  23. data/ext/h3/src/dev-docs/build_windows.md +6 -1
  24. data/ext/h3/src/dev-docs/creating_bindings.md +3 -3
  25. data/ext/h3/src/dev-docs/custom_alloc.md +27 -0
  26. data/ext/h3/src/docs/{overview/mainpage.md → README.md} +2 -3
  27. data/ext/h3/src/docs/api/misc.md +76 -0
  28. data/ext/h3/src/docs/community/applications.md +1 -0
  29. data/ext/h3/src/docs/community/bindings.md +7 -1
  30. data/ext/h3/src/docs/community/tutorials.md +8 -3
  31. data/ext/h3/src/docs/core-library/coordsystems.md +5 -4
  32. data/ext/h3/src/docs/core-library/filters.md +8 -9
  33. data/ext/h3/src/docs/core-library/geoToH3desc.md +2 -3
  34. data/ext/h3/src/docs/core-library/h3ToGeoBoundaryDesc.md +4 -5
  35. data/ext/h3/src/docs/core-library/h3ToGeoDesc.md +3 -4
  36. data/ext/h3/src/docs/core-library/h3indexing.md +26 -17
  37. data/ext/h3/src/docs/core-library/overview.md +2 -3
  38. data/ext/h3/src/docs/core-library/restable.md +1 -2
  39. data/ext/h3/src/docs/core-library/usage.md +1 -2
  40. data/ext/h3/src/docs/table-of-contents.json +47 -0
  41. data/ext/h3/src/docs/{overview/usecases.md → usecases.md} +6 -11
  42. data/ext/h3/src/scripts/binding_functions.sh +1 -1
  43. data/ext/h3/src/scripts/coverage.sh.in +1 -1
  44. data/ext/h3/src/scripts/update_version.sh +2 -2
  45. data/ext/h3/src/src/apps/applib/include/args.h +1 -0
  46. data/ext/h3/src/src/apps/applib/include/test.h +1 -0
  47. data/ext/h3/src/src/apps/applib/include/utility.h +7 -1
  48. data/ext/h3/src/src/apps/applib/lib/args.c +2 -0
  49. data/ext/h3/src/src/apps/applib/lib/kml.c +2 -0
  50. data/ext/h3/src/src/apps/applib/lib/test.c +1 -0
  51. data/ext/h3/src/src/apps/applib/lib/utility.c +133 -2
  52. data/ext/h3/src/src/apps/benchmarks/benchmarkH3Api.c +1 -1
  53. data/ext/h3/src/{website/html.config.js → src/apps/benchmarks/benchmarkH3UniEdge.c} +15 -12
  54. data/ext/h3/src/src/apps/filters/h3ToComponents.c +1 -0
  55. data/ext/h3/src/src/apps/filters/h3ToGeo.c +1 -0
  56. data/ext/h3/src/src/apps/filters/h3ToGeoBoundary.c +1 -0
  57. data/ext/h3/src/src/apps/filters/h3ToLocalIj.c +1 -0
  58. data/ext/h3/src/src/apps/filters/hexRange.c +1 -0
  59. data/ext/h3/src/src/apps/filters/kRing.c +1 -0
  60. data/ext/h3/src/src/apps/filters/localIjToH3.c +1 -0
  61. data/ext/h3/src/src/apps/miscapps/generateFaceCenterPoint.c +1 -0
  62. data/ext/h3/src/src/apps/miscapps/generateNumHexagons.c +1 -0
  63. data/ext/h3/src/src/apps/miscapps/generatePentagonDirectionFaces.c +67 -0
  64. data/ext/h3/src/src/apps/miscapps/h3ToGeoBoundaryHier.c +1 -0
  65. data/ext/h3/src/src/apps/miscapps/h3ToGeoHier.c +1 -0
  66. data/ext/h3/src/src/apps/miscapps/h3ToHier.c +1 -0
  67. data/ext/h3/src/src/apps/testapps/mkRandGeo.c +1 -0
  68. data/ext/h3/src/src/apps/testapps/mkRandGeoBoundary.c +1 -0
  69. data/ext/h3/src/src/apps/testapps/testBBox.c +1 -0
  70. data/ext/h3/src/src/apps/testapps/testBaseCells.c +15 -1
  71. data/ext/h3/src/src/apps/testapps/testCompact.c +75 -0
  72. data/ext/h3/src/src/apps/testapps/testCoordIj.c +1 -0
  73. data/ext/h3/src/src/apps/testapps/testGeoCoord.c +40 -13
  74. data/ext/h3/src/src/apps/testapps/testGeoToH3.c +1 -0
  75. data/ext/h3/src/src/apps/testapps/testH3Api.c +1 -0
  76. data/ext/h3/src/src/apps/testapps/testH3CellArea.c +47 -0
  77. data/ext/h3/src/src/apps/testapps/testH3CellAreaExhaustive.c +180 -0
  78. data/ext/h3/src/src/apps/testapps/testH3Distance.c +1 -0
  79. data/ext/h3/src/src/apps/testapps/testH3DistanceExhaustive.c +1 -0
  80. data/ext/h3/src/src/apps/testapps/testH3GetFaces.c +1 -0
  81. data/ext/h3/src/src/apps/testapps/testH3Index.c +33 -3
  82. data/ext/h3/src/src/apps/testapps/testH3Line.c +1 -0
  83. data/ext/h3/src/src/apps/testapps/testH3LineExhaustive.c +1 -0
  84. data/ext/h3/src/src/apps/testapps/testH3Memory.c +175 -0
  85. data/ext/h3/src/src/apps/testapps/testH3NeighborRotations.c +1 -0
  86. data/ext/h3/src/src/apps/testapps/testH3SetToLinkedGeo.c +1 -0
  87. data/ext/h3/src/src/apps/testapps/testH3SetToVertexGraph.c +1 -0
  88. data/ext/h3/src/src/apps/testapps/testH3ToCenterChild.c +1 -0
  89. data/ext/h3/src/src/apps/testapps/testH3ToChildren.c +1 -0
  90. data/ext/h3/src/src/apps/testapps/testH3ToGeo.c +1 -0
  91. data/ext/h3/src/src/apps/testapps/testH3ToGeoBoundary.c +1 -0
  92. data/ext/h3/src/src/apps/testapps/testH3ToLocalIj.c +9 -5
  93. data/ext/h3/src/src/apps/testapps/testH3ToLocalIjExhaustive.c +1 -0
  94. data/ext/h3/src/src/apps/testapps/testH3ToParent.c +1 -0
  95. data/ext/h3/src/src/apps/testapps/testH3UniEdge.c +45 -16
  96. data/ext/h3/src/src/apps/testapps/testH3UniEdgeExhaustive.c +111 -0
  97. data/ext/h3/src/src/apps/testapps/testHexRanges.c +1 -0
  98. data/ext/h3/src/src/apps/testapps/testHexRing.c +1 -0
  99. data/ext/h3/src/src/apps/testapps/testKRing.c +1 -0
  100. data/ext/h3/src/src/apps/testapps/testLinkedGeo.c +1 -0
  101. data/ext/h3/src/src/apps/testapps/testMaxH3ToChildrenSize.c +1 -0
  102. data/ext/h3/src/src/apps/testapps/testPentagonIndexes.c +1 -0
  103. data/ext/h3/src/src/apps/testapps/testPolyfill.c +72 -9
  104. data/ext/h3/src/src/apps/testapps/testPolyfillReported.c +157 -0
  105. data/ext/h3/src/src/apps/testapps/testPolygon.c +1 -0
  106. data/ext/h3/src/src/apps/testapps/testVec2d.c +1 -0
  107. data/ext/h3/src/src/apps/testapps/testVec3d.c +1 -0
  108. data/ext/h3/src/src/apps/testapps/testVertex.c +66 -0
  109. data/ext/h3/src/src/apps/testapps/testVertexGraph.c +1 -0
  110. data/ext/h3/src/src/h3lib/include/algos.h +8 -0
  111. data/ext/h3/src/src/h3lib/include/alloc.h +40 -0
  112. data/ext/h3/src/src/h3lib/include/baseCells.h +4 -0
  113. data/ext/h3/src/src/h3lib/include/bbox.h +4 -1
  114. data/ext/h3/src/src/h3lib/include/faceijk.h +3 -2
  115. data/ext/h3/src/src/h3lib/include/geoCoord.h +2 -3
  116. data/ext/h3/src/src/h3lib/include/h3Index.h +37 -4
  117. data/ext/h3/src/src/h3lib/include/h3api.h.in +65 -17
  118. data/ext/h3/src/src/h3lib/include/linkedGeo.h +1 -0
  119. data/ext/h3/src/src/h3lib/include/polygon.h +1 -0
  120. data/ext/h3/src/src/h3lib/include/polygonAlgos.h +1 -0
  121. data/ext/h3/src/src/h3lib/include/vertex.h +44 -0
  122. data/ext/h3/src/src/h3lib/include/vertexGraph.h +1 -0
  123. data/ext/h3/src/src/h3lib/lib/algos.c +300 -75
  124. data/ext/h3/src/src/h3lib/lib/baseCells.c +26 -4
  125. data/ext/h3/src/src/h3lib/lib/bbox.c +56 -31
  126. data/ext/h3/src/src/h3lib/lib/coordijk.c +2 -0
  127. data/ext/h3/src/src/h3lib/lib/faceijk.c +32 -21
  128. data/ext/h3/src/src/h3lib/lib/geoCoord.c +162 -44
  129. data/ext/h3/src/src/h3lib/lib/h3Index.c +81 -43
  130. data/ext/h3/src/src/h3lib/lib/h3UniEdge.c +42 -57
  131. data/ext/h3/src/src/h3lib/lib/linkedGeo.c +20 -15
  132. data/ext/h3/src/src/h3lib/lib/localij.c +1 -1
  133. data/ext/h3/src/src/h3lib/lib/polygon.c +2 -0
  134. data/ext/h3/src/src/h3lib/lib/vec2d.c +1 -0
  135. data/ext/h3/src/src/h3lib/lib/vec3d.c +1 -0
  136. data/ext/h3/src/src/h3lib/lib/vertex.c +134 -0
  137. data/ext/h3/src/src/h3lib/lib/vertexGraph.c +8 -5
  138. data/ext/h3/src/website/.eslintignore +2 -0
  139. data/ext/h3/src/website/.gitignore +57 -0
  140. data/ext/h3/src/website/.nvmrc +1 -0
  141. data/ext/h3/src/website/README.md +8 -6
  142. data/ext/h3/src/website/gatsby-config.js +83 -0
  143. data/ext/h3/src/website/package.json +20 -12
  144. data/ext/h3/src/website/scripts/build-to-gh-pages.sh +7 -5
  145. data/ext/h3/src/website/src/.gitkeep +0 -0
  146. data/ext/h3/src/website/templates/documentation.jsx +129 -0
  147. data/ext/h3/src/website/yarn.lock +13723 -0
  148. data/lib/h3/bindings/private.rb +3 -0
  149. data/lib/h3/miscellaneous.rb +123 -0
  150. data/lib/h3/version.rb +1 -1
  151. data/spec/miscellaneous_spec.rb +117 -0
  152. data/spec/regions_spec.rb +1 -1
  153. metadata +35 -14
  154. data/ext/h3/src/.ycm_extra_conf.py +0 -92
  155. data/ext/h3/src/appveyor.yml +0 -50
  156. data/ext/h3/src/src/apps/testapps/testPolyfill_GH136.c +0 -58
  157. data/ext/h3/src/website/src/config.js +0 -46
  158. data/ext/h3/src/website/src/mdRoutes.js +0 -151
  159. data/ext/h3/src/website/src/styles/_variables.scss +0 -16
  160. data/ext/h3/src/website/src/styles/index.scss +0 -3
  161. data/ext/h3/src/website/static/index.html +0 -15
@@ -52,6 +52,9 @@ module H3
52
52
  [GeoPolygon, Resolution],
53
53
  :int
54
54
  attach_function :max_uncompact_size, :maxUncompactSize, [H3IndexesIn, :size_t, Resolution], :int
55
+ attach_function :point_distance_rads, :pointDistRads, [GeoCoord, GeoCoord], :double
56
+ attach_function :point_distance_km, :pointDistKm, [GeoCoord, GeoCoord], :double
57
+ attach_function :point_distance_m, :pointDistM, [GeoCoord, GeoCoord], :double
55
58
  attach_function :polyfill, [GeoPolygon, Resolution, H3IndexesOut], :void
56
59
  attach_function :res_0_indexes, :getRes0Indexes, [H3IndexesOut], :void
57
60
  attach_function :uncompact, [H3IndexesIn, :size_t, H3IndexesOut, :size_t, Resolution], :bool
@@ -119,6 +119,105 @@ module H3
119
119
  # @return [Integer] The number of pentagons per resolution.
120
120
  attach_function :pentagon_count, :pentagonIndexCount, [], :int
121
121
 
122
+ # @!method cell_area_rads2
123
+ #
124
+ # Area of a given cell expressed in radians squared
125
+ #
126
+ # @example Return the area of the cell
127
+ # H3.cell_area_rads2(617700169958293503)
128
+ # 2.6952182709835757e-09
129
+ #
130
+ # @return [Double] Area of cell in rads2
131
+ attach_function :cell_area_rads2, :cellAreaRads2, %i[h3_index], :double
132
+
133
+ # @!method cell_area_km2
134
+ #
135
+ # Area of a given cell expressed in km squared
136
+ #
137
+ # @example Return the area of the cell
138
+ # H3.cell_area_km2(617700169958293503)
139
+ # 0.10939818864648902
140
+ #
141
+ # @return [Double] Area of cell in km2
142
+ attach_function :cell_area_km2, :cellAreaKm2, %i[h3_index], :double
143
+
144
+ # @!method cell_area_m2
145
+ #
146
+ # Area of a given cell expressed in metres squared
147
+ #
148
+ # @example Return the area of the cell
149
+ # H3.cell_area_m2(617700169958293503)
150
+ # 109398.18864648901
151
+ #
152
+ # @return [Double] Area of cell in metres squared
153
+ attach_function :cell_area_m2, :cellAreaM2, %i[h3_index], :double
154
+
155
+ # @!method exact_edge_length_rads
156
+ #
157
+ # Exact length of edge in rads
158
+ #
159
+ # @example Return the edge length
160
+ # H3.exact_edge_length_rads(1266218516299644927)
161
+ # 3.287684056071637e-05
162
+ #
163
+ # @return [Double] Edge length in rads
164
+ attach_function :exact_edge_length_rads, :exactEdgeLengthRads, %i[h3_index], :double
165
+
166
+ # @!method exact_edge_length_km
167
+ #
168
+ # Exact length of edge in kilometres
169
+ #
170
+ # @example Return the edge length
171
+ # H3.exact_edge_length_km(1266218516299644927)
172
+ # 3.287684056071637e-05
173
+ #
174
+ # @return [Double] Edge length in kilometres
175
+ attach_function :exact_edge_length_km, :exactEdgeLengthKm, %i[h3_index], :double
176
+
177
+ # @!method exact_edge_length_m
178
+ #
179
+ # Exact length of edge in metres
180
+ #
181
+ # @example Return the edge length
182
+ # H3.exact_edge_length_m(1266218516299644927)
183
+ # 3.287684056071637e-05
184
+ #
185
+ # @return [Double] Edge length in metres
186
+ attach_function :exact_edge_length_m, :exactEdgeLengthM, %i[h3_index], :double
187
+
188
+ # Returns the radians distance between two points.
189
+ #
190
+ # @example Return radians distance.
191
+ # H3.point_distance_rads([41.3964809, 2.160444], [41.3870609, 2.164917])
192
+ # 0.00017453024784008713
193
+ #
194
+ # @return [Double] Radians distance between two points.
195
+ def point_distance_rads(origin, destination)
196
+ Bindings::Private.point_distance_rads(*build_geocoords(origin, destination))
197
+ end
198
+
199
+ # Returns the kilometres distance between two points.
200
+ #
201
+ # @example Return km distance.
202
+ # H3.point_distance_km([41.3964809, 2.160444], [41.3870609, 2.164917])
203
+ # 1.1119334622766763
204
+ #
205
+ # @return [Double] KM distance between two points.
206
+ def point_distance_km(origin, destination)
207
+ Bindings::Private.point_distance_km(*build_geocoords(origin, destination))
208
+ end
209
+
210
+ # Returns the metre distance between two points.
211
+ #
212
+ # @example Return metre distance.
213
+ # H3.point_distance_m([41.3964809, 2.160444], [41.3870609, 2.164917])
214
+ # 1111.9334622766764
215
+ #
216
+ # @return [Double] Metre distance between two points.
217
+ def point_distance_m(origin, destination)
218
+ Bindings::Private.point_distance_m(*build_geocoords(origin, destination))
219
+ end
220
+
122
221
  # Returns all resolution 0 hexagons (base cells).
123
222
  #
124
223
  # @example Return all base cells.
@@ -144,5 +243,29 @@ module H3
144
243
  Bindings::Private.get_pentagon_indexes(resolution, out)
145
244
  out.read
146
245
  end
246
+
247
+ private
248
+
249
+ def build_geocoords(origin, destination)
250
+ [origin, destination].inject([]) do |acc, coords|
251
+ validate_coordinate(coords)
252
+
253
+ geo_coord = GeoCoord.new
254
+ lat, lon = coords
255
+ geo_coord[:lat] = degs_to_rads(lat)
256
+ geo_coord[:lon] = degs_to_rads(lon)
257
+ acc << geo_coord
258
+ end
259
+ end
260
+
261
+ def validate_coordinate(coords)
262
+ raise ArgumentError unless coords.is_a?(Array) && coords.count == 2
263
+
264
+ lat, lon = coords
265
+
266
+ if lat > 90 || lat < -90 || lon > 180 || lon < -180
267
+ raise(ArgumentError, "Invalid coordinates")
268
+ end
269
+ end
147
270
  end
148
271
  end
@@ -1,3 +1,3 @@
1
1
  module H3
2
- VERSION = "3.6.2".freeze
2
+ VERSION = "3.7.1".freeze
3
3
  end
@@ -109,4 +109,121 @@ RSpec.describe H3 do
109
109
  expect(pentagons).to eq(expected)
110
110
  end
111
111
  end
112
+
113
+ describe ".cell_area_rads2" do
114
+ let(:cell) { "8928308280fffff".to_i(16) }
115
+ let(:expected) { 2.6952182709835757e-09 }
116
+ subject(:cell_area_rads2) { H3.cell_area_rads2(cell) }
117
+
118
+ it "returns cell area in rads2" do
119
+ expect(cell_area_rads2).to be_within(0.0001).of(expected)
120
+ end
121
+ end
122
+
123
+ describe ".cell_area_km2" do
124
+ let(:cell) { "8928308280fffff".to_i(16) }
125
+ let(:expected) { 0.10939818864648902 }
126
+ subject(:cell_area_km2) { H3.cell_area_km2(cell) }
127
+
128
+ it "returns cell area in km2" do
129
+ expect(cell_area_km2).to be_within(0.0001).of(expected)
130
+ end
131
+ end
132
+
133
+ describe ".cell_area_m2" do
134
+ let(:cell) { "8928308280fffff".to_i(16) }
135
+ let(:expected) { 109398.18864648901 }
136
+ subject(:cell_area_m2) { H3.cell_area_m2(cell) }
137
+
138
+ it "returns cell area in m2" do
139
+ expect(cell_area_m2).to be_within(0.0001).of(expected)
140
+ end
141
+ end
142
+
143
+ describe ".exact_edge_length_rads" do
144
+ let(:cell) { "11928308280fffff".to_i(16) }
145
+ let(:expected) { 3.287684056071637e-05 }
146
+ subject(:exact_edge_length_rads) { H3.exact_edge_length_rads(cell) }
147
+
148
+ it "returns edge length in rads" do
149
+ expect(exact_edge_length_rads).to be_within(0.0001).of(expected)
150
+ end
151
+ end
152
+
153
+ describe ".exact_edge_length_km" do
154
+ let(:cell) { "11928308280fffff".to_i(16) }
155
+ let(:expected) { 0.20945858729823577 }
156
+ subject(:exact_edge_length_km) { H3.exact_edge_length_km(cell) }
157
+
158
+ it "returns edge length in km" do
159
+ expect(exact_edge_length_km).to be_within(0.0001).of(expected)
160
+ end
161
+ end
162
+
163
+ describe ".exact_edge_length_m" do
164
+ let(:cell) { "11928308280fffff".to_i(16) }
165
+ let(:expected) { 209.45858729823578 }
166
+ subject(:exact_edge_length_m) { H3.exact_edge_length_m(cell) }
167
+
168
+ it "returns edge length in m" do
169
+ expect(exact_edge_length_m).to be_within(0.0001).of(expected)
170
+ end
171
+ end
172
+
173
+ describe ".point_distance_rads" do
174
+ let(:a) { [41.3964809, 2.160444] }
175
+ let(:b) { [41.3870609, 2.164917] }
176
+ let(:expected) { 0.00017453024784008713 }
177
+ subject(:point_distance_rads) { H3.point_distance_rads(a, b) }
178
+
179
+ it "returns distance between points in rads" do
180
+ expect(point_distance_rads).to be_within(0.0001).of(expected)
181
+ end
182
+
183
+ context "when the coordinates are invalid" do
184
+ let(:a) { [91, -18] }
185
+
186
+ it "raises an argument error" do
187
+ expect { point_distance_rads }.to raise_error(ArgumentError)
188
+ end
189
+ end
190
+ end
191
+
192
+ describe ".point_distance_km" do
193
+ let(:a) { [41.3964809, 2.160444] }
194
+ let(:b) { [41.3870609, 2.164917] }
195
+ let(:expected) { 1.1119334622766763 }
196
+ subject(:point_distance_km) { H3.point_distance_km(a, b) }
197
+
198
+ it "returns distance between points in km" do
199
+ expect(point_distance_km).to be_within(0.0001).of(expected)
200
+ end
201
+
202
+ context "when the coordinates are invalid" do
203
+ let(:a) { [89, -181] }
204
+
205
+ it "raises an argument error" do
206
+ expect { point_distance_km }.to raise_error(ArgumentError)
207
+ end
208
+ end
209
+ end
210
+
211
+ describe ".point_distance_m" do
212
+ let(:a) { [41.3964809, 2.160444] }
213
+ let(:b) { [41.3870609, 2.164917] }
214
+ let(:expected) { 1111.9334622766764 }
215
+ subject(:point_distance_m) { H3.point_distance_m(a, b) }
216
+
217
+ it "returns distance between points in m" do
218
+ expect(point_distance_m).to be_within(0.0001).of(expected)
219
+ end
220
+
221
+ context "when the coordinates are invalid" do
222
+ let(:a) { "boom" }
223
+
224
+ it "raises an argument error" do
225
+ expect { point_distance_m }.to raise_error(ArgumentError)
226
+ end
227
+ end
228
+ end
112
229
  end
@@ -42,7 +42,7 @@ RSpec.describe H3 do
42
42
  File.read(File.join(File.dirname(__FILE__), "support/fixtures/banbury.json"))
43
43
  end
44
44
  let(:resolution) { 9 }
45
- let(:expected_count) { 75_367 }
45
+ let(:expected_count) { 47_018 }
46
46
 
47
47
  subject(:max_polyfill_size) { H3.max_polyfill_size(geojson, resolution) }
48
48
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: h3
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.2
4
+ version: 3.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lachlan Laycock
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-01-08 00:00:00.000000000 Z
12
+ date: 2020-10-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ffi
@@ -133,9 +133,12 @@ files:
133
133
  - ext/h3/extconf.rb
134
134
  - ext/h3/src/.clang-format
135
135
  - ext/h3/src/.clang-tidy
136
+ - ext/h3/src/.github/workflows/test-linux.yml
137
+ - ext/h3/src/.github/workflows/test-macos.yml
138
+ - ext/h3/src/.github/workflows/test-website.yml
139
+ - ext/h3/src/.github/workflows/test-windows.yml
136
140
  - ext/h3/src/.gitignore
137
141
  - ext/h3/src/.travis.yml
138
- - ext/h3/src/.ycm_extra_conf.py
139
142
  - ext/h3/src/CHANGELOG.md
140
143
  - ext/h3/src/CMakeLists.txt
141
144
  - ext/h3/src/CONTRIBUTING.md
@@ -144,13 +147,20 @@ files:
144
147
  - ext/h3/src/README.md
145
148
  - ext/h3/src/RELEASE.md
146
149
  - ext/h3/src/VERSION
147
- - ext/h3/src/appveyor.yml
148
150
  - ext/h3/src/cmake/Config.cmake.in
149
151
  - ext/h3/src/cmake/TestWrapValgrind.cmake
150
152
  - ext/h3/src/cmake/toolchain.cmake
151
153
  - ext/h3/src/dev-docs/Doxyfile.in
154
+ - ext/h3/src/dev-docs/RFCs/rfc-template.md
155
+ - ext/h3/src/dev-docs/RFCs/v4.0.0/error-handling-rfc.md
156
+ - ext/h3/src/dev-docs/RFCs/v4.0.0/names_for_concepts_types_functions.md
157
+ - ext/h3/src/dev-docs/RFCs/v4.0.0/overrideable-allocators-rfc.md
158
+ - ext/h3/src/dev-docs/RFCs/v4.0.0/polyfill-modes-rfc.md
159
+ - ext/h3/src/dev-docs/RFCs/v4.0.0/vertex-mode-rfc.md
152
160
  - ext/h3/src/dev-docs/build_windows.md
153
161
  - ext/h3/src/dev-docs/creating_bindings.md
162
+ - ext/h3/src/dev-docs/custom_alloc.md
163
+ - ext/h3/src/docs/README.md
154
164
  - ext/h3/src/docs/api/hierarchy.md
155
165
  - ext/h3/src/docs/api/indexing.md
156
166
  - ext/h3/src/docs/api/inspection.md
@@ -171,8 +181,8 @@ files:
171
181
  - ext/h3/src/docs/core-library/overview.md
172
182
  - ext/h3/src/docs/core-library/restable.md
173
183
  - ext/h3/src/docs/core-library/usage.md
174
- - ext/h3/src/docs/overview/mainpage.md
175
- - ext/h3/src/docs/overview/usecases.md
184
+ - ext/h3/src/docs/table-of-contents.json
185
+ - ext/h3/src/docs/usecases.md
176
186
  - ext/h3/src/examples/CMakeLists.txt
177
187
  - ext/h3/src/examples/compact.c
178
188
  - ext/h3/src/examples/distance.c
@@ -196,6 +206,7 @@ files:
196
206
  - ext/h3/src/src/apps/benchmarks/benchmarkH3Api.c
197
207
  - ext/h3/src/src/apps/benchmarks/benchmarkH3Line.c
198
208
  - ext/h3/src/src/apps/benchmarks/benchmarkH3SetToLinkedGeo.c
209
+ - ext/h3/src/src/apps/benchmarks/benchmarkH3UniEdge.c
199
210
  - ext/h3/src/src/apps/benchmarks/benchmarkKRing.c
200
211
  - ext/h3/src/src/apps/benchmarks/benchmarkPolyfill.c
201
212
  - ext/h3/src/src/apps/benchmarks/benchmarkPolygon.c
@@ -210,6 +221,7 @@ files:
210
221
  - ext/h3/src/src/apps/miscapps/generateBaseCellNeighbors.c
211
222
  - ext/h3/src/src/apps/miscapps/generateFaceCenterPoint.c
212
223
  - ext/h3/src/src/apps/miscapps/generateNumHexagons.c
224
+ - ext/h3/src/src/apps/miscapps/generatePentagonDirectionFaces.c
213
225
  - ext/h3/src/src/apps/miscapps/h3ToGeoBoundaryHier.c
214
226
  - ext/h3/src/src/apps/miscapps/h3ToGeoHier.c
215
227
  - ext/h3/src/src/apps/miscapps/h3ToHier.c
@@ -224,12 +236,15 @@ files:
224
236
  - ext/h3/src/src/apps/testapps/testGeoCoord.c
225
237
  - ext/h3/src/src/apps/testapps/testGeoToH3.c
226
238
  - ext/h3/src/src/apps/testapps/testH3Api.c
239
+ - ext/h3/src/src/apps/testapps/testH3CellArea.c
240
+ - ext/h3/src/src/apps/testapps/testH3CellAreaExhaustive.c
227
241
  - ext/h3/src/src/apps/testapps/testH3Distance.c
228
242
  - ext/h3/src/src/apps/testapps/testH3DistanceExhaustive.c
229
243
  - ext/h3/src/src/apps/testapps/testH3GetFaces.c
230
244
  - ext/h3/src/src/apps/testapps/testH3Index.c
231
245
  - ext/h3/src/src/apps/testapps/testH3Line.c
232
246
  - ext/h3/src/src/apps/testapps/testH3LineExhaustive.c
247
+ - ext/h3/src/src/apps/testapps/testH3Memory.c
233
248
  - ext/h3/src/src/apps/testapps/testH3NeighborRotations.c
234
249
  - ext/h3/src/src/apps/testapps/testH3SetToLinkedGeo.c
235
250
  - ext/h3/src/src/apps/testapps/testH3SetToVertexGraph.c
@@ -241,6 +256,7 @@ files:
241
256
  - ext/h3/src/src/apps/testapps/testH3ToLocalIjExhaustive.c
242
257
  - ext/h3/src/src/apps/testapps/testH3ToParent.c
243
258
  - ext/h3/src/src/apps/testapps/testH3UniEdge.c
259
+ - ext/h3/src/src/apps/testapps/testH3UniEdgeExhaustive.c
244
260
  - ext/h3/src/src/apps/testapps/testHexRanges.c
245
261
  - ext/h3/src/src/apps/testapps/testHexRing.c
246
262
  - ext/h3/src/src/apps/testapps/testKRing.c
@@ -248,12 +264,14 @@ files:
248
264
  - ext/h3/src/src/apps/testapps/testMaxH3ToChildrenSize.c
249
265
  - ext/h3/src/src/apps/testapps/testPentagonIndexes.c
250
266
  - ext/h3/src/src/apps/testapps/testPolyfill.c
251
- - ext/h3/src/src/apps/testapps/testPolyfill_GH136.c
267
+ - ext/h3/src/src/apps/testapps/testPolyfillReported.c
252
268
  - ext/h3/src/src/apps/testapps/testPolygon.c
253
269
  - ext/h3/src/src/apps/testapps/testVec2d.c
254
270
  - ext/h3/src/src/apps/testapps/testVec3d.c
271
+ - ext/h3/src/src/apps/testapps/testVertex.c
255
272
  - ext/h3/src/src/apps/testapps/testVertexGraph.c
256
273
  - ext/h3/src/src/h3lib/include/algos.h
274
+ - ext/h3/src/src/h3lib/include/alloc.h
257
275
  - ext/h3/src/src/h3lib/include/baseCells.h
258
276
  - ext/h3/src/src/h3lib/include/bbox.h
259
277
  - ext/h3/src/src/h3lib/include/constants.h
@@ -270,6 +288,7 @@ files:
270
288
  - ext/h3/src/src/h3lib/include/polygonAlgos.h
271
289
  - ext/h3/src/src/h3lib/include/vec2d.h
272
290
  - ext/h3/src/src/h3lib/include/vec3d.h
291
+ - ext/h3/src/src/h3lib/include/vertex.h
273
292
  - ext/h3/src/src/h3lib/include/vertexGraph.h
274
293
  - ext/h3/src/src/h3lib/lib/algos.c
275
294
  - ext/h3/src/src/h3lib/lib/baseCells.c
@@ -285,6 +304,7 @@ files:
285
304
  - ext/h3/src/src/h3lib/lib/polygon.c
286
305
  - ext/h3/src/src/h3lib/lib/vec2d.c
287
306
  - ext/h3/src/src/h3lib/lib/vec3d.c
307
+ - ext/h3/src/src/h3lib/lib/vertex.c
288
308
  - ext/h3/src/src/h3lib/lib/vertexGraph.c
289
309
  - ext/h3/src/tests/inputfiles/bc05r08cells.txt
290
310
  - ext/h3/src/tests/inputfiles/bc05r08centers.txt
@@ -365,14 +385,14 @@ files:
365
385
  - ext/h3/src/tests/inputfiles/res03cells.txt
366
386
  - ext/h3/src/tests/inputfiles/res03ic.txt
367
387
  - ext/h3/src/tests/inputfiles/res04ic.txt
388
+ - ext/h3/src/website/.eslintignore
389
+ - ext/h3/src/website/.gitignore
390
+ - ext/h3/src/website/.nvmrc
368
391
  - ext/h3/src/website/README.md
369
- - ext/h3/src/website/html.config.js
392
+ - ext/h3/src/website/gatsby-config.js
370
393
  - ext/h3/src/website/package.json
371
394
  - ext/h3/src/website/scripts/build-to-gh-pages.sh
372
- - ext/h3/src/website/src/config.js
373
- - ext/h3/src/website/src/mdRoutes.js
374
- - ext/h3/src/website/src/styles/_variables.scss
375
- - ext/h3/src/website/src/styles/index.scss
395
+ - ext/h3/src/website/src/.gitkeep
376
396
  - ext/h3/src/website/static/favicon.ico
377
397
  - ext/h3/src/website/static/images/ca_compact_6_901.png
378
398
  - ext/h3/src/website/static/images/ca_uncompact_6_10633.png
@@ -391,7 +411,8 @@ files:
391
411
  - ext/h3/src/website/static/images/substrate3.png
392
412
  - ext/h3/src/website/static/images/triEdge.png
393
413
  - ext/h3/src/website/static/images/uber-logo.png
394
- - ext/h3/src/website/static/index.html
414
+ - ext/h3/src/website/templates/documentation.jsx
415
+ - ext/h3/src/website/yarn.lock
395
416
  - h3.gemspec
396
417
  - lib/h3.rb
397
418
  - lib/h3/bindings/base.rb
@@ -443,7 +464,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
443
464
  version: '0'
444
465
  requirements: []
445
466
  rubyforge_project:
446
- rubygems_version: 2.7.3
467
+ rubygems_version: 2.6.14.3
447
468
  signing_key:
448
469
  specification_version: 4
449
470
  summary: C Bindings for Uber's H3 library