ffi-geos 2.1.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|