ffi-geos 2.1.0 → 2.2.0
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +1015 -134
- data/.travis.yml +3 -4
- data/FUNDING.yml +2 -0
- data/Gemfile +2 -2
- data/MIT-LICENSE +1 -1
- data/lib/ffi-geos.rb +37 -4
- data/lib/ffi-geos/geometry.rb +46 -10
- data/lib/ffi-geos/strtree.rb +25 -25
- data/lib/ffi-geos/utils.rb +12 -11
- data/lib/ffi-geos/version.rb +1 -1
- data/lib/ffi-geos/wkt_writer.rb +1 -4
- data/test/coordinate_sequence_tests.rb +2 -2
- data/test/geometry_collection_tests.rb +3 -2
- data/test/geometry_tests.rb +209 -22
- data/test/strtree_tests.rb +1 -0
- data/test/test_helper.rb +33 -25
- metadata +7 -6
data/test/strtree_tests.rb
CHANGED
@@ -313,6 +313,7 @@ class STRtreeTests < Minitest::Test
|
|
313
313
|
|
314
314
|
def test_nearest_with_only_empty_geometries
|
315
315
|
skip unless ENV['FORCE_TESTS'] || defined?(Geos::STRtree) && Geos::STRtree.method_defined?(:nearest)
|
316
|
+
skip if Geos::GEOS_VERSION > '3.9.0'
|
316
317
|
|
317
318
|
geom_1 = read('LINESTRING EMPTY')
|
318
319
|
geom_2 = read('POINT (2 7)')
|
data/test/test_helper.rb
CHANGED
@@ -40,6 +40,10 @@ module TestHelper
|
|
40
40
|
'GEOMETRYCOLLECTION EMPTY'
|
41
41
|
end
|
42
42
|
|
43
|
+
EMPTY_BLOCK = proc do
|
44
|
+
nil
|
45
|
+
end
|
46
|
+
|
43
47
|
def self.included(base)
|
44
48
|
base.class_eval do
|
45
49
|
attr_reader :reader, :reader_hex, :writer
|
@@ -53,16 +57,16 @@ module TestHelper
|
|
53
57
|
@writer = Geos::WktWriter.new
|
54
58
|
end
|
55
59
|
|
56
|
-
def read(*args)
|
57
|
-
if args[0][0]
|
58
|
-
|
60
|
+
def read(*args, **options)
|
61
|
+
if args[0][0] == '0'
|
62
|
+
reader_hex.read_hex(*args, **options)
|
59
63
|
else
|
60
|
-
|
64
|
+
reader.read(*args, **options)
|
61
65
|
end
|
62
66
|
end
|
63
67
|
|
64
|
-
def write(*args)
|
65
|
-
writer.write(*args)
|
68
|
+
def write(*args, **options)
|
69
|
+
writer.write(*args, **options)
|
66
70
|
end
|
67
71
|
|
68
72
|
def geom_from_geom_or_wkt(geom_or_wkt)
|
@@ -73,11 +77,11 @@ module TestHelper
|
|
73
77
|
end
|
74
78
|
end
|
75
79
|
|
76
|
-
def srid_copy_tester(method, expected, expected_srid, srid_policy, wkt, *args)
|
80
|
+
def srid_copy_tester(method, expected, expected_srid, srid_policy, wkt, *args, **options)
|
77
81
|
geom = read(wkt)
|
78
82
|
geom.srid = 4326
|
79
83
|
Geos.srid_copy_policy = srid_policy
|
80
|
-
geom_b = geom.send(method, *args)
|
84
|
+
geom_b = geom.send(method, *args, **options)
|
81
85
|
assert_equal(4326, geom.srid)
|
82
86
|
assert_equal(expected_srid, geom_b.srid)
|
83
87
|
assert_equal(expected, write(geom_b))
|
@@ -108,44 +112,48 @@ module TestHelper
|
|
108
112
|
assert(geom.eql_exact?(result, tolerance), "Expected geom.eql_exact? to be within #{tolerance}")
|
109
113
|
end
|
110
114
|
|
111
|
-
def snapped_tester(method, expected, geom, *args)
|
115
|
+
def snapped_tester(method, expected, geom, *args, **options)
|
112
116
|
geom = geom_from_geom_or_wkt(geom)
|
113
117
|
|
114
|
-
result = geom.send(method, *args)
|
118
|
+
result = geom.send(method, *args, **options)
|
115
119
|
assert_equal(expected, write(result.snap_to_grid(1)))
|
116
120
|
end
|
117
121
|
|
118
|
-
def simple_tester(method, expected, geom, *args)
|
122
|
+
def simple_tester(method, expected, geom, *args, **options)
|
119
123
|
geom = geom_from_geom_or_wkt(geom)
|
120
|
-
result = geom.send(method, *args)
|
124
|
+
result = geom.send(method, *args, **options)
|
121
125
|
result = write(result) if result.is_a?(Geos::Geometry)
|
122
126
|
|
123
|
-
|
127
|
+
if expected.nil?
|
128
|
+
assert_nil(result)
|
129
|
+
else
|
130
|
+
assert_equal(expected, result)
|
131
|
+
end
|
124
132
|
end
|
125
133
|
|
126
|
-
def simple_bang_tester(method, expected, wkt, *args)
|
134
|
+
def simple_bang_tester(method, expected, wkt, *args, **options)
|
127
135
|
geom = read(wkt)
|
128
|
-
result = geom.send(method, *args)
|
136
|
+
result = geom.send(method, *args, **options)
|
129
137
|
|
130
138
|
assert_equal(wkt, write(geom))
|
131
139
|
assert_equal(expected, write(result))
|
132
140
|
|
133
141
|
geom = read(wkt)
|
134
|
-
geom.send("#{method}!", *args)
|
142
|
+
geom.send("#{method}!", *args, **options)
|
135
143
|
|
136
144
|
assert_equal(expected, write(geom))
|
137
145
|
end
|
138
146
|
|
139
|
-
def comparison_tester(method, expected, geom_a, geom_b, *args)
|
140
|
-
geom_a = geom_from_geom_or_wkt(geom_a)
|
141
|
-
geom_b = geom_from_geom_or_wkt(geom_b)
|
147
|
+
def comparison_tester(method, expected, geom_a, geom_b, *args, **options)
|
148
|
+
geom_a = geom_from_geom_or_wkt(geom_a).normalize
|
149
|
+
geom_b = geom_from_geom_or_wkt(geom_b).normalize
|
142
150
|
|
143
|
-
simple_tester(method, expected, geom_a, geom_b, *args)
|
151
|
+
simple_tester(method, expected, geom_a, geom_b, *args, **options)
|
144
152
|
end
|
145
153
|
|
146
|
-
def array_tester(method, expected, geom, *args)
|
154
|
+
def array_tester(method, expected, geom, *args, **options)
|
147
155
|
geom = geom_from_geom_or_wkt(geom)
|
148
|
-
result = geom.send(method, *args)
|
156
|
+
result = geom.send(method, *args, **options)
|
149
157
|
|
150
158
|
case result
|
151
159
|
when Geos::Geometry
|
@@ -159,16 +167,16 @@ module TestHelper
|
|
159
167
|
assert_equal(expected, result)
|
160
168
|
end
|
161
169
|
|
162
|
-
def affine_tester(method, expected, wkt, *args)
|
170
|
+
def affine_tester(method, expected, wkt, *args, **options)
|
163
171
|
writer.trim = true
|
164
172
|
|
165
173
|
geom = read(wkt)
|
166
|
-
geom.send("#{method}!", *args).snap_to_grid!(0.1)
|
174
|
+
geom.send("#{method}!", *args, **options).snap_to_grid!(0.1)
|
167
175
|
|
168
176
|
assert_equal(expected, write(geom))
|
169
177
|
|
170
178
|
geom = read(wkt)
|
171
|
-
geom_2 = geom.send(method, *args).snap_to_grid(0.1)
|
179
|
+
geom_2 = geom.send(method, *args, **options).snap_to_grid(0.1)
|
172
180
|
|
173
181
|
assert_equal(wkt, write(geom))
|
174
182
|
assert_equal(expected, write(geom_2, trim: true))
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffi-geos
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- J Smith
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -34,6 +34,7 @@ files:
|
|
34
34
|
- ".gitignore"
|
35
35
|
- ".rubocop.yml"
|
36
36
|
- ".travis.yml"
|
37
|
+
- FUNDING.yml
|
37
38
|
- Gemfile
|
38
39
|
- Guardfile
|
39
40
|
- MIT-LICENSE
|
@@ -87,7 +88,7 @@ homepage: http://github.com/dark-panda/ffi-geos
|
|
87
88
|
licenses:
|
88
89
|
- MIT
|
89
90
|
metadata: {}
|
90
|
-
post_install_message:
|
91
|
+
post_install_message:
|
91
92
|
rdoc_options: []
|
92
93
|
require_paths:
|
93
94
|
- lib
|
@@ -102,8 +103,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
102
103
|
- !ruby/object:Gem::Version
|
103
104
|
version: '0'
|
104
105
|
requirements: []
|
105
|
-
rubygems_version: 3.
|
106
|
-
signing_key:
|
106
|
+
rubygems_version: 3.2.16
|
107
|
+
signing_key:
|
107
108
|
specification_version: 4
|
108
109
|
summary: An ffi wrapper for GEOS, a C++ port of the Java Topology Suite (JTS).
|
109
110
|
test_files:
|